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

Если на сайте не нужны автоматические встраивания WordPress, oEmbed часто остается лишним источником запросов и кода в <head>. Это не самая громкая оптимизация, но в реальных проектах она помогает убрать ненужный JavaScript, сократить число обращений к wp-json и снизить риск конфликтов с темами и плагинами, которые уже по-своему обрабатывают внешние видео и посты.

Речь не о полном запрете вставок ссылок в контенте. Задача проще: отключить именно механизм автоподстановки embed-объектов WordPress там, где он не нужен, и не сломать обычные ссылки в тексте.

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

Проблема обычно проявляется в одном из трех сценариев:

  • на сайте не используют встраивания из Twitter/X, YouTube, Vimeo, Instagram и других источников;
  • в <head> есть лишние подключения wp-embed.min.js и связанные с ним обработчики;
  • в отчетах по производительности видно, что WordPress тянет скрипт, который не дает пользы конкретному проекту.

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

Что именно можно отключить

У WordPress есть несколько связанных механизмов: автопреобразование ссылок в embed, REST-эндпоинт oEmbed и фронтенд-скрипт wp-embed. На практике чаще всего убирают все три части, если сайт не использует встраивания вообще.

Диагностика: как понять, что oEmbed можно убрать

Перед правкой кода проверьте сайт в браузере и в исходном HTML. Откройте главную страницу и любую запись, затем найдите:

  • wp-embed.min.js в подключенных скриптах;
  • ссылки на /wp-json/oembed/1.0/embed или /wp-json/oembed/1.0/proxy;
  • блоки, которые WordPress автоматически превращает в embed-карточки.

Если вы видите только обычные ссылки без автоподстановки, а встраивания не используются, отключение обычно безопасно. Но если редакторы вставляют YouTube-ролики через URL на отдельной строке, сначала проверьте, не завязан ли этот процесс на oEmbed.

Пошаговое решение без плагинов

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

1. Отключите oEmbed на фронтенде

add_action( 'init', function () {
    // Убираем автопреобразование ссылок в embed.
    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' );
} );

Этот набор отключает основные публичные части oEmbed. Для большинства сайтов этого достаточно, чтобы убрать лишние теги и запросы, связанные с embed.

2. Уберите подключение скрипта wp-embed

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

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

3. Ограничьте oEmbed в редакторе, если это нужно

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

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

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

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

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

После добавления кода откройте сайт в режиме инкогнито и проверьте исходный код страницы. В нем не должно быть:

  • wp-embed.min.js;
  • ссылок на oembed в <head>;
  • автоматических embed-карточек там, где раньше они появлялись без участия редактора.

Дополнительно проверьте:

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

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

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

Код добавили не туда

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

Отключили oEmbed, но скрипт остался

Так бывает, если убрали только discovery-ссылки, но не сняли регистрацию wp-embed. Проверьте оба участка: wp_head и wp_enqueue_scripts.

Сломались старые записи с встраиваниями

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

Появились ошибки в консоли

Это обычно означает, что тема или плагин ожидали wp-embed. В таком случае не отключайте скрипт глобально, а сначала найдите, кто его использует. Иногда достаточно оставить wp-embed, но убрать только REST-эндпоинт и discovery-ссылки.

Практические советы по безопасности и производительности

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

Для более широкой технической чистки имеет смысл смотреть на oEmbed вместе с другими лишними сущностями WordPress: emoji, XML-RPC, неиспользуемые скрипты и дубли в <head>. Но отключать все подряд не стоит — сначала измеряйте, потом убирайте.

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

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

Как создать адаптивный шрифт иконок в WordPress с поддержкой SVG
25.12.2025
Создать адаптивные иконки в WordPress с помощью SVG и плагинов
05.11.2025
Как добавить иконки в WordPress из ответственных источников с помощью PHP
08.01.2026
Как добавить иконки в комментарии WordPress
17.04.2026
Как найти и убрать дубли страниц в WordPress без плагинов
31.08.2026