Если на сайте 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 — это не обязательная оптимизация, а точечная настройка. Она полезна там, где встроенные объекты по ссылке не используются, а лишние служебные ресурсы на фронтенде только мешают. Если сделать всё через код и после этого проверить исходник страницы, результат будет предсказуемым и безопасным для сайта.