Как отключить oEmbed в WordPress без поломки встраивания контента

oEmbed в WordPress часто оставляют включённым по умолчанию, а потом удивляются лишним запросам, подключенным скриптам и тому, что в админке и на фронте грузится больше, чем нужно. Если сайт не использует автоподстановку превью из YouTube, X, WordPress.com и других источников, этот механизм можно отключить точечно, без вмешательства в обычные вставки HTML, iframe и блоки редактора.

Ниже разберём, что именно отключать, как проверить, что это не сломало контент, и где чаще всего ошибаются.

Когда oEmbed действительно мешает

Проблема обычно проявляется не как явная ошибка, а как набор мелких симптомов: лишние HTTP-запросы к wp-embed.min.js, дополнительные стили и скрипты на страницах, автоподтягивание внешних превью там, где оно не нужно, и лишняя нагрузка на фронт. На небольшом сайте это может быть незаметно, но в проектах с жёстким контролем производительности и CSP такие вещи лучше убирать осознанно.

Если у вас есть редакторы, которые вставляют ссылки на видео или посты и рассчитывают на красивое превью, отключать oEmbed целиком не стоит. В таком случае лучше убрать только лишние части, а не ломать весь механизм.

Что именно делает oEmbed

WordPress использует oEmbed для двух задач: автоматически превращает некоторые URL в встроенный контент и подгружает поддержку встраивания через отдельный скрипт. Для большинства обычных ссылок это не критично, но если сайт работает как статичный корпоративный ресурс, блог с ручной версткой или проект с ограниченным набором внешних интеграций, oEmbed часто оказывается лишним.

Диагностика: что отключать, а что оставить

Сначала проверьте, используется ли автоподстановка в реальных материалах. Откройте несколько записей и страниц, где редакторы вставляли ссылки на видео, посты или карты. Если там стоят обычные iframe-блоки или вручную вставленный HTML, oEmbed вам, скорее всего, не нужен.

Дальше посмотрите исходный код страницы и найдите подключение wp-embed.min.js. Если скрипт есть, но никакой функциональной пользы от него нет, его можно убрать. Ещё один признак — в админке или на фронте есть запросы к endpoint'ам oEmbed, хотя сайт не использует автоподстановку.

  • проверьте, есть ли в контенте ссылки, которые WordPress превращает в embed;
  • посмотрите исходный код на наличие wp-embed.min.js;
  • сравните список подключенных скриптов до и после изменений;
  • убедитесь, что редакторы не зависят от автоподстановки внешних ссылок.

Как отключить oEmbed кодом

Самый предсказуемый вариант — убрать автоподстановку и скрипт через functions.php дочерней темы или через небольшой mu-plugin. Так вы не зависите от настроек темы и не теряете контроль после обновлений.

<?php
// Отключаем oEmbed-скрипт на фронте.
add_action( 'wp_enqueue_scripts', function () {
    wp_deregister_script( 'wp-embed' );
}, 100 );

// Убираем oEmbed discovery links из <head>.
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );

// Отключаем автоконвертацию URL в embed.
remove_filter( 'the_content', [ $GLOBALS['wp_embed'], 'autoembed' ], 8 );
remove_filter( 'widget_text_content', [ $GLOBALS['wp_embed'], 'autoembed' ], 8 );
remove_filter( 'widget_block_content', [ $GLOBALS['wp_embed'], 'autoembed' ], 8 );

Этот вариант подходит, если вы хотите убрать именно автоматическую магию WordPress, но оставить обычные iframe и ручные вставки. На практике этого достаточно для большинства сайтов, где embed-контент вставляют вручную или вообще не используют.

Если нужен более мягкий вариант

Иногда достаточно убрать только скрипт wp-embed, а автоподстановку оставить. Это полезно, если редакторы вставляют ссылки на поддерживаемые сервисы и рассчитывают на preview, но вы хотите сократить фронтовую нагрузку. Однако такой компромисс стоит тестировать отдельно: в некоторых темах и конструкторах поведение может отличаться.

ПодходЧто убираетКомпромисс
Плагин оптимизацииЧасто скрывает oEmbed вместе с другими настройкамиУдобно, но меньше контроля
Код в теме / mu-pluginТолько нужные частиНужно следить за обновлениями и тестами
Ничего не делатьНичегоЛишние скрипты и автоподстановка остаются

Проверка результата после внедрения

После изменений не ограничивайтесь визуальной проверкой страницы. Откройте исходный код и убедитесь, что wp-embed.min.js больше не подключается. Затем проверьте несколько материалов с внешними ссылками: обычные ссылки должны остаться ссылками, а ручные iframe — продолжить работать.

Если у вас есть доступ к инструментам разработчика, посмотрите вкладку Network и обновите страницу. Запросов к oEmbed endpoint'ам быть не должно, если вы отключили автоподстановку полностью. Для дополнительной проверки можно сравнить HTML до и после через просмотр исходника или через сохранённую копию страницы.

  • скрипт wp-embed.min.js отсутствует в исходнике;
  • страницы открываются без ошибок в консоли;
  • ручные iframe и блоки вставки работают как раньше;
  • обычные ссылки не превращаются в embed-карточки.

Частые ошибки и как их исправить

Отключили не там, где нужно

Частая ошибка — править functions.php родительской темы. После обновления изменения исчезнут. Для кода такого уровня лучше использовать дочернюю тему или mu-plugin.

Сломали вставки в старых записях

Если в архиве есть материалы, где редакторы рассчитывали на автоподстановку, полное отключение oEmbed может изменить внешний вид страниц. В таком случае сначала найдите такие записи и переведите их на ручные iframe или блоки встраивания.

Удалили слишком много фильтров

Иногда пытаются «почистить» WordPress агрессивно и удаляют всё подряд, включая полезные механизмы. Не стоит отключать то, что вы не проверили на конкретном сайте. Если сомневаетесь, начните со скрипта и discovery links, а автоконвертацию убирайте только после теста.

Не проверили редактор и виджеты

На старых сайтах embed-контент может жить не только в записях, но и в текстовых виджетах, блоках шаблона или пользовательских полях. После отключения проверьте все места, где редакторы могли вставлять внешние ссылки.

Безопасность и производительность

С точки зрения безопасности отключение oEmbed само по себе не делает сайт «защищённее», но уменьшает поверхность лишних внешних интеграций и упрощает контроль над тем, что реально загружается на странице. С точки зрения производительности эффект обычно небольшой, но на страницах с жёстким бюджетом по скриптам даже один лишний файл может быть лишним.

Если вы уже используете плагин для технической чистки сайта, проверьте, нет ли в нём отдельной опции для oEmbed. Например, в Clearfy Pro такие вещи часто удобнее собирать в одном месте, чем размазывать по теме и нескольким сниппетам. Но если нужен точечный контроль, код остаётся самым прозрачным вариантом.

Что делать, если после отключения что-то сломалось

Сначала верните изменения и проверьте, какой именно элемент перестал работать: автоподстановка, iframe, блок вставки или скрипт темы. Затем отключайте по одному фрагменту, а не весь набор сразу. Такой подход быстрее, чем пытаться угадать, какой фильтр оказался лишним.

Если сайт активно редактируется несколькими людьми, зафиксируйте решение в короткой внутренней заметке: что отключено, где лежит код и какие типы вставок теперь разрешены. Это экономит время при следующем обновлении темы или миграции на новый шаблон.

Как удалить отменённые заказы WooCommerce по дате и статусу через код
29.09.2026
Автоматическое создание категорий при импорте записей в WordPress
03.10.2026
Как создать автоматический импорт продуктов из Excel в WordPress
29.09.2026
Как создать собственный виджет WordPress с использованием классов
20.09.2026
Автоматическое удаление отменённых и завершённых заказов WooCommerce по времени
03.10.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше