PageSpeed светит wp-embed.min.js, и хочется вырубить всё со словом embed. Марина вела блог салона: по совету с форума отключила embed целиком — пропало превью YouTube, хотя ролики приносят заявки. Лишний скрипт в футере путают с видео, страх сломать блок «Встраивание» откладывает настройку. За вечер можно снять только host JS ядра, оставить YouTube и проверить через «Просмотреть код» — без PHP в голове.
wp-embed.min.js нужен не для YouTube, а чтобы чужие сайты красиво встраивали ваши записи WordPress. Видео с YouTube и Vimeo живёт в блоке «Встраивание» и другом механизме oEmbed. С версии 5.9 скрипт подключается только если на странице уже есть встроенная чужая запись WP. Два пути: точечно убрать host JS в дочерней теме или плагин Disable Embeds, если карточки чужих постов вам не нужны.
Честно говоря, владельцу сайта услуг важнее скорость статей и предсказуемый редактор, чем возможность вставить чужую статью WordPress iframe-ом. Ниже — как развести «убрать лишний файл» и «не трогать ролики», зафиксировать базовую линию до правок и откатиться одним выключением плагина.
- Разведите wp-embed и блок YouTube, чтобы не отрубить ролики
- Выберите путь: только скрипт или полное отключение embed
- Зафиксируйте базовую линию: тест YouTube до любых правок
- Отключите host JS в дочерней теме, если видео остаются в приоритете
- Поставьте Disable Embeds, если блок «Встраивание» не нужен
- Проверьте результат: код страницы, редактор и ссылка на чужой пост
- Когда embed лучше не трогать
- Частые вопросы
- Можно ли отключить embed в WordPress без плагина?
- Влияет ли отключение wp-embed на Gutenberg?
- Что будет со старыми встроенными постами на сайте?
- Чем embed отличается от шорткода видео?
- Безопасно ли для SEO убирать wp-embed?
- Почему PageSpeed всё ещё видит embed после правок?
- Нужно ли трогать REST oEmbed в head?
Разведите wp-embed и блок YouTube, чтобы не отрубить ролики

Типичная ошибка: считать, что один переключатель отвечает и за скорость, и за все iframe на сайте. На практике это два разных сценария.
Host JS (wp-embed.min.js) — небольшой файл ядра (в обзорах Kinsta фигурирует порядка 1,7 KB), который дорабатывает встроенные записи WordPress на чужих сайтах: подгоняет размер iframe, обрабатывает клики. Он не подменяет плеер YouTube.
Consumer oEmbed — когда вы вставляете ссылку на ролик или соцсеть, WordPress по официальной схеме Embeds запрашивает превью и показывает блок «Встраивание» в редакторе. Это штатная функция ядра, обновляемая вместе с WordPress (справка Embeds обновлялась в 2026 году).
С WordPress 5.9 wp_maybe_enqueue_oembed_host_js подключает wp-embed только при разметке wp-embedded-content. На лендинге без чужих карточек скрипт может не грузиться — но отчёт скорости всё равно цепляется к старым тестам или другим URL.
Выберите путь: только скрипт или полное отключение embed

Боль «не знаю, что нажать в админке» решается выбором цели, а не набором галочек наугад.
| Цель | Что делать | YouTube в редакторе | Чужая запись WP по ссылке |
|---|---|---|---|
| Убрать wp-embed.min.js, видео нужны | Код в дочерней теме: remove_action host JS | Да | Остаётся обычная ссылка или старый iframe в контенте |
| Embed чужих сайтов не нужен вообще | Плагин Disable Embeds с wordpress.org | Нет — блок «Встраивание» пропадает | Не превращается в карточку |
| Только снять тег script с фронта | wp_dequeue_script в footer (слабее, community-паттерн) | Чаще да | Зависит от контента |
Вердикт: если в статьях есть обучающие ролики — берите путь B (точечный код в дочерней теме). Плагин Disable Embeds уместен для витрины без видео и без встраивания вашего блога на чужих ресурсах — но осознанно: он снимает блок embed в Gutenberg, как видно из исходников плагина на GitHub.
Зафиксируйте базовую линию: тест YouTube до любых правок

Без этой проверки потом спорят, что «сломалось из-за embed», хотя виноват кеш или другой плагин.
- Сделайте резервную копию: снимок хостинга или плагин бэкапа — перед правками functions.php это обязательный шаг.
- Откройте черновик записи, вставьте URL ролика YouTube, дождитесь превью в блоке «Встраивание» или «YouTube», сохраните.
- На опубликованной странице убедитесь, что ролик открывается для посетителя.
- Откройте главную сайта, Ctrl+U (исходный код) и поиском найдите wp-embed — зафиксируйте, есть ли строка сейчас.
- Вставьте в черновик ссылку на чужую запись WordPress (чужой блог) — посмотрите, появляется ли карточка-iframe. Это и есть сценарий host JS.
Например, после шага 4 wp-embed нашли только на подборках чужих статей, а на лендинге услуг — нет. Так видно, ради чего оптимизация.
Отключите host JS в дочерней теме, если видео остаются в приоритете
Боль «не хочу править ядро» закрывается одним фрагментом в functions.php дочерней темы — ядро WordPress не трогаем.
Шаг 1: Внешний вид → Редактор файлов темы → выберите дочернюю тему → functions.php.
Шаг 2: В конец файла добавьте хук (без тегов pre/code, скопируйте строки вручную):
add_action( ‘init’, function () { remove_action( ‘wp_head’, ‘wp_oembed_add_host_js’ ); } );
Шаг 3: Сохраните файл. Если редактор темы закрыт хостингом — тот же код через FTP или файловый менеджер.
Тот же приём в Developer Reference и embed.php на GitHub. Consumer-вставки для YouTube и Vimeo по справке Embeds остаются. Код — только в дочерней теме, не в родительской.
Поставьте Disable Embeds, если блок «Встраивание» не нужен
Когда embed-функции не входят в маркетинг (нет видео в статьях, не хотите, чтобы другие встраивали ваши посты), плагин быстрее кода.
Workflow: Плагины → Добавить новый → Disable Embeds (автор Pascal Birchler) → Установить → Активировать → очистить кеш → Ctrl+U на главной → тест YouTube в редакторе (ожидаемо: превью может пропасть) → при сюрпризе деактивировать плагин
- Найдите в каталоге wordpress.org плагин Disable Embeds (десятки тысяч установок, в карточке указана совместимость с актуальными версиями WP).
- После активации очистите кеш — кеширование WordPress часто прячет старый HTML со скриптом.
- В исходном коде страницы не должно быть wp-embed.min.js и id=»wp-embed-js».
- Откройте ту же тестовую запись: если блок видео исчез — это ожидаемое поведение плагина, не «поломка сайта».
- Откат: Плагины → Деактивировать Disable Embeds — функции редактора возвращаются без удаления плагина.
Старые embed на фронте могут жить в кеше — после сброса картина выравнивается.
Проверьте результат: код страницы, редактор и ссылка на чужой пост
Критерии успеха из чеклиста — до FAQ вы должны увидеть их руками.
- В исходном коде (Ctrl+U) любой проверяемой страницы нет wp-embed.min.js и нет id=»wp-embed-js».
- В записи с YouTube блок «YouTube» или «Встраивание» показывает превью (для пути с remove_action).
- Вставка только URL чужой записи WordPress больше не раздувается в карточку-iframe — остаётся ссылка, если вы целенаправленно убирали provider-embed.
- Редактор Gutenberg открывается без ошибок; блоки из гайда по блокам Gutenberg на месте.
Отложенная загрузка картинок (lazy load) и wp-embed — разные вещи; с тяжёлым медиа на сайте помогает порядок в медиабиблиотеке WordPress. Не путайте отложенный iframe и host JS.
Когда embed лучше не трогать
На лендинге с одним объясняющим роликом и без чужих WP-карточек иногда достаточно оставить всё как есть: скрипт может не грузиться на каждой странице после 5.9. Имеет смысл трогать настройку, когда PageSpeed стабильно ругается, вы точно не встраиваете чужие посты и готовы пройти чеклист выше.
Если после правок остаются сомнения по скорости и структуре статей — можно обсудить аудит через форму на сайте (мессенджер, без звонка) или в Telegram-канале. Создание и ускорение сайтов на WordPress — на странице услуг, похожие инструкции — в разделе статей.
Материал проверен: Андрей Дикий (создаёт сайты и продвигает их статьями, SEO/GEO).
Достоверность данных: справка WordPress Embeds и Embed block, Developer Reference wp_maybe_enqueue_oembed_host_js (обновление 2026-08-20), плагин Disable Embeds на wordpress.org, Kinsta How to Disable Embeds (2026-05-19), embed.php и disable-embeds на GitHub; частотность запросов — по Яндекс Вордстат на 2026-09-27 (точные показы не получены, MCP недоступен).
Частые вопросы
Можно ли отключить embed в WordPress без плагина?
Да. Достаточно remove_action для wp_oembed_add_host_js в functions.php дочерней темы или точечного wp_dequeue_script для handle wp-embed. Плагин нужен только если хотите одной кнопкой снять и JS, и блок в редакторе, и REST-маршруты provider.
Влияет ли отключение wp-embed на Gutenberg?
Точечное снятие host JS — обычно нет, блок «Встраивание» остаётся. Полный Disable Embeds убирает блок embed в редакторе — это главный конфликт в обсуждениях на wordpress.org и в issue Gutenberg про unregisterBlockType.
Что будет со старыми встроенными постами на сайте?
Уже сохранённый HTML с iframe может отображаться, пока не пересохраните запись или не сбросите кеш. Новые вставки ссылки на чужой WP-пост перестанут превращаться в карточку, если отключён provider.
Чем embed отличается от шорткода видео?
Шорткод — явная команда в тексте. Embed по URL — автоматическое превью через oEmbed. YouTube можно и так, и так; wp-embed.min.js относится к встраиванию записей WordPress, а не к каждому шорткоду.
Безопасно ли для SEO убирать wp-embed?
Для типичного сайта услуг с собственными статьями и YouTube — да, если контент и разметка статей в порядке. Вы убираете лишний запрос и iframe чужих блогов, а не индексацию своих страниц.
Почему PageSpeed всё ещё видит embed после правок?
Чаще всего виноват кеш страницы, CDN или тест не той URL, где раньше был встроенный пост. Очистите кеш, проверьте чистую страницу услуг и снова Ctrl+U.
Нужно ли трогать REST oEmbed в head?
Чтобы убрать wp-embed.min.js и сохранить YouTube, хватает host JS. Discovery снимает Disable Embeds — когда встраивание вашего сайта на чужих площадках не нужно.
