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

Если на сайте с Elementor вы не используете автоподстановку видео, твитов и других встраиваний по URL, oEmbed часто остается лишним источником запросов и служебных скриптов. На небольшом сайте это не катастрофа, но на проекте с большим количеством страниц и шаблонов Elementor такие мелочи быстро накапливаются: лишние обращения к внешним доменам, дополнительные HTTP-запросы в админке и фронтенде, а иногда и неожиданные вставки iframe там, где их не ждали.

Ниже — рабочий сценарий: как отключить oEmbed аккуратно, что именно убрать, как не сломать уже вставленные видео и как проверить результат после правки.

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

oEmbed нужен для удобной вставки контента по ссылке: YouTube, Vimeo, X/Twitter и других сервисов, которые поддерживают этот формат. Проблема начинается тогда, когда:

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

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

Диагностика: что именно грузит WordPress

Перед правкой полезно понять, есть ли oEmbed на странице вообще. В исходном коде ищите:

  • wp-embed.min.js;
  • ссылки на https://www.youtube.com/oembed или аналогичные endpoints;
  • автоматически превращенные URL в iframe в записях и шаблонах Elementor;
  • мета-теги и служебные запросы в админке, если вы открываете редактор записей.

Проверка в браузере простая: откройте страницу, затем DevTools → Network и отфильтруйте по embed или oembed. Если скрипт wp-embed загружается, а встраивания не используются, это кандидат на отключение.

Как отключить oEmbed безопасно

Самый надежный путь — добавить небольшой код в дочернюю тему или в собственный мини-плагин. Так вы не зависите от обновления темы Elementor и не потеряете настройку после апдейта.

Вариант 1: убрать фронтенд-скрипт wp-embed

Если вам не нужна автоподдержка встраиваний на фронтенде, достаточно снять регистрацию скрипта. Это не удаляет уже вставленные iframe, но убирает служебный JS, который WordPress подключает для обработки ссылок.

add_action( 'wp_enqueue_scripts', function () {
    wp_deregister_script( 'wp-embed' );
}, 100 );

Этот вариант безопаснее, чем попытка грубо отключить все связанные механизмы. Он не ломает контент, где iframe уже вставлен вручную или через виджеты Elementor.

Вариант 2: отключить oEmbed в редакторе и REST

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

add_action( 'init', function () {
    remove_action( 'rest_api_init', 'wp_oembed_register_route' );
    add_filter( 'embed_oembed_discover', '__return_false' );
    add_filter( 'tiny_mce_plugins', function ( $plugins ) {
        if ( is_array( $plugins ) ) {
            $plugins = array_diff( $plugins, array( 'wpembed' ) );
        }
        return $plugins;
    } );
} );

Здесь мы убираем маршрут REST для oEmbed, отключаем автообнаружение встраиваний и вычищаем плагин из TinyMCE, если он присутствует в вашей конфигурации. На Gutenberg и Elementor это не всегда влияет одинаково, поэтому после внедрения обязательно проверьте реальные сценарии редактирования.

Если нужен только фронтенд, а в админке oEmbed оставить

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

add_action( 'wp_enqueue_scripts', function () {
    if ( ! is_admin() ) {
        wp_deregister_script( 'wp-embed' );
    }
}, 100 );

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

Сравнение подходов

ПодходЧто делаетКогда выбиратьКомпромисс
Плагин для оптимизацииОтключает часть служебных функций без кодаЕсли нужен быстрый результат без разработкиМеньше контроля, возможны лишние опции
Код в дочерней темеТочечно убирает oEmbed и скриптыЕсли нужен предсказуемый результатНужно аккуратно обновлять тему
Комбинированный вариантОставляет oEmbed в админке, убирает на фронтендеДля редакционных сайтов и ElementorТребует проверки после каждого изменения шаблонов

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

Пошаговая настройка без поломки контента

  1. Сделайте резервную копию файлов и базы.
  2. Добавьте код в functions.php дочерней темы или в свой мини-плагин.
  3. Очистите кэш страницы, если используется плагин кэширования или серверный кэш.
  4. Откройте несколько страниц с Elementor и проверьте исходный код.
  5. Проверьте записи, где раньше вставлялись ссылки на видео или посты из соцсетей.

Если на сайте есть старые записи с автоподстановкой, отключение oEmbed не удалит уже сохраненные iframe. Но новые ссылки перестанут автоматически превращаться в встраивания, и это нужно учитывать редакторам.

Как проверить, что решение сработало

Проверка должна быть не только визуальной. Смотрите на три вещи:

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

Дополнительно откройте страницу в режиме инкогнито и сравните загрузку до и после. Если используете инструмент проверки производительности, не ждите магического прироста: задача здесь не в «ускорении на десятки процентов», а в уменьшении лишней служебной нагрузки и в более предсказуемом поведении редактора.

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

Отключили скрипт, но iframe остались

Это нормально. wp-embed отвечает за поведение и автоподстановку, а не за удаление уже сохраненного HTML. Если нужно убрать старые встраивания, правьте контент вручную или через поиск и замену по базе с осторожностью.

Сломали предпросмотр в редакторе

Значит, вы отключили слишком много: не только фронтенд-скрипт, но и часть редакторских механизмов. Верните изменения и оставьте только wp_deregister_script( 'wp-embed' ) для публичной части сайта.

После правки ничего не изменилось

Чаще всего виноват кэш: плагин, CDN или серверный уровень. Очистите все слои кэширования и проверьте страницу без оптимизирующих расширений браузера.

Использовали два разных способа одновременно

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

Практика для Elementor: что учесть в шаблонах и виджетах

В Elementor oEmbed может проявляться не только в обычном редакторе записей. Проверьте:

  • текстовые виджеты, куда редакторы вставляют URL;
  • шаблоны Single Post и Archive, если там есть динамический контент;
  • глобальные блоки и шаблоны, которые переиспользуются на множестве страниц.

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

Что делать, если oEmbed нужен только для части контента

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

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

В итоге задача простая: убрать oEmbed там, где он не нужен, и не трогать то, что реально используется редакторами. На WordPress это лучше делать точечно, а не «выключить всё, что похоже на embed».

Как отключить XML sitemap в WordPress и оставить индексацию нужных страниц
23.08.2026
Как отключить Gutenberg в Elementor и оставить классический редактор для нужных ролей
01.09.2026
Как отключить emoji и дублирующиеся скрипты в WordPress без поломки темы
16.08.2026
Как отключить IndexNow в WordPress и убрать лишние запросы к поисковикам
05.09.2026
Как отключить отложенную загрузку изображений в Elementor для первого экрана без потери lazy load на сайте
12.09.2026