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

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

Отключать oEmbed можно безопасно, если вы не используете автоподстановку видео, постов и других внешних объектов по ссылке. Если же редакторы регулярно вставляют YouTube, X, Vimeo, Instagram и похожие сервисы именно через обычную вставку ссылки, сначала проверьте, не сломает ли это рабочий процесс.

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

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

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

Чаще всего отключение имеет смысл в таких случаях:

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

Самый надёжный способ: отключить oEmbed через код

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

Добавьте код в functions.php дочерней темы или в собственный мини-плагин. Перед изменениями сделайте резервную копию: ошибка в PHP-файле может временно сломать сайт.

add_action( 'init', function () {
    // Убирает oEmbed из контентной части WordPress.
    remove_action( 'rest_api_init', 'wp_oembed_register_route' );
    add_filter( 'embed_oembed_discover', '__return_false' );
    remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );
    remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
    remove_action( 'wp_head', 'wp_oembed_add_host_js' );
}, 9999 );

Этот набор отключает основные элементы oEmbed: discovery-ссылки в <head>, подключение host JS и часть механики, связанной с автопоиском embed-данных. Для большинства обычных сайтов этого достаточно.

Если после внедрения кода вы всё ещё видите wp-embed.min.js в исходном коде страницы, значит его подключает не ядро WordPress, а тема или плагин. Тогда нужно искать источник отдельно.

Как убрать скрипт wp-embed.min.js с фронтенда

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

Для этого достаточно снять регистрацию скрипта на фронтенде:

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

Этот способ не всегда равен полному отключению oEmbed. Он убирает именно загрузку скрипта wp-embed, но не отменяет все связанные механизмы WordPress. Если цель — сократить фронтенд и вы не используете встроенные объекты по ссылке, лучше применять полный вариант из предыдущего раздела.

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

Что изменится после отключения

После отключения oEmbed на странице обычно исчезают:

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

При этом обычные ссылки в тексте останутся обычными ссылками. WordPress не перестанет публиковать контент и не затронет стандартную работу редактора, если вы не полагались именно на автоматическое встраивание.

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

Как проверить, что лишние запросы действительно исчезли

Проверка занимает пару минут и не требует специальных инструментов. Откройте любую публичную страницу сайта и посмотрите исходный код или вкладку Network в браузере.

Что стоит проверить:

  • в <head> больше нет ссылок вида wp-json/oembed/1.0/embed;
  • в исходном коде страницы отсутствует подключение wp-embed.min.js;
  • в Network не загружается отдельный файл wp-embed.min.js;
  • страница не делает лишних запросов, связанных с oEmbed, при обычной загрузке.

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

Когда лучше не отключать oEmbed

Не стоит отключать функцию только ради формальной оптимизации, если редакторы реально используют её в работе. Например, на новостном или контентном сайте автоподстановка видео и постов может экономить время и снижать количество ручной верстки.

Также имеет смысл сначала проверить тему и плагины. Иногда лишние запросы появляются не из-за самого WordPress, а из-за:

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

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

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

Как отправлять Telegram уведомления из WordPress без плагинов
28.09.2026
Как отключить oEmbed в WordPress и убрать лишние запросы
22.10.2026
Как отключить комментарии в WordPress полностью
15.10.2026
Как использовать WP-Cron для масштабных задач в WordPress
27.09.2026
Как отключить emoji в WordPress и ускорить загрузку сайта
18.10.2026