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

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

Задача здесь не в том, чтобы «вырубить всё подряд», а в том, чтобы убрать только то, что реально не используется. Особенно это важно, если сайт работает на кастомной теме, а контент в основном состоит из текста, изображений и внутренних блоков.

Когда отключение emoji и oEmbed действительно имеет смысл

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

Отключать это имеет смысл, если:

  • на сайте нет необходимости в автоматических embed-вставках по URL;
  • редакторы вставляют видео и карты вручную через блоки или iframe;
  • вы хотите сократить количество запросов в <head> и упростить кэширование;
  • сайт проходит техническую оптимизацию и вы убираете всё лишнее из ядра.

Не стоит отключать oEmbed, если редакция регулярно вставляет материалы с YouTube, X, Instagram или других сервисов просто ссылкой. В таком случае сначала проверьте, как именно контент добавляется в записи.

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

Перед изменениями посмотрите исходный код страницы и список подключаемых ресурсов. В большинстве тем emoji-скрипт и oEmbed-ресурсы видны прямо в <head>. Если у вас включён кэш, проверяйте не только главную, но и одиночную запись без кэша или в режиме инкогнито.

На что смотреть:

  • wp-emoji-release.min.js;
  • wp-embed.min.js;
  • ссылки на wp-json/oembed/1.0/embed;
  • лишние DNS-запросы к внешним доменам, если они появляются из-за встраиваний.

Если вы используете инструменты вроде Query Monitor, можно быстро увидеть, какие скрипты и стили подключает ядро и тема. Это полезно, чтобы не отключить что-то, что потом придётся возвращать вручную.

Что проверить в редакторе

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

  • в редакторе Gutenberg не ломается вставка видео;
  • визуальный редактор не теряет поддержку символов emoji, если они вам нужны в тексте;
  • внутренние embed-блоки не завязаны на автоподстановку по URL.

Пошаговое решение через functions.php или мини-плагин

Самый предсказуемый вариант — вынести изменения в маленький mu-plugin или в отдельный плагин сайта. Так вы не потеряете настройки после обновления темы. Если нужно быстро проверить гипотезу, можно временно добавить код в functions.php, но для постоянной эксплуатации это хуже.

Ниже рабочий пример: отключаем emoji-скрипты и стили, а также убираем oEmbed-подключения на фронтенде.

<?php
/**
 * Plugin Name: Site Cleanup: Emoji and oEmbed
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

add_action( 'init', function () {
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
    remove_action( 'admin_print_styles', 'print_emoji_styles' );
    remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
    remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
    remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

    remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
    remove_action( 'wp_head', 'wp_oembed_add_host_js' );
}, 20 );

add_filter( 'embed_oembed_discover', '__return_false' );
add_filter( 'tiny_mce_plugins', function ( $plugins ) {
    if ( is_array( $plugins ) ) {
        return array_diff( $plugins, array( 'wpembed' ) );
    }

    return $plugins;
} );

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

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

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

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

<?php
add_action( 'wp_enqueue_scripts', function () {
    if ( ! is_admin() ) {
        wp_deregister_script( 'wp-embed' );
        remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
        remove_action( 'wp_head', 'wp_oembed_add_host_js' );
        remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
        remove_action( 'wp_print_styles', 'print_emoji_styles' );
    }
}, 20 );

Плагин, код или настройка темы: что выбрать

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

ПодходПлюсыМинусыКогда брать
Код в mu-pluginКонтроль, переносимость, минимум зависимостейНужно уметь поддерживать кодПостоянная оптимизация на одном или нескольких сайтах
Плагин оптимизацииБыстро включить без разработкиЛишние функции, риск конфликтовЕсли нужен быстрый старт и есть доверие к плагину
Настройка темыПросто для текущего проектаСлетит при смене темыТолько для временной проверки

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

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

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

  • Откройте страницу в режиме инкогнито и посмотрите исходный код.
  • Убедитесь, что нет wp-emoji-release.min.js и wp-embed.min.js.
  • Проверьте, что в <head> не осталось oEmbed discovery links.
  • Откройте запись с видео или внешней ссылкой и проверьте, что контент отображается так, как вы ожидаете.
  • Проверьте редактор: вставка и сохранение записи должны работать без ошибок.

Если используете PageSpeed Insights или WebPageTest, сравните не только оценку, а список запросов и размер HTML. Важнее увидеть, что лишние ресурсы действительно исчезли, а не просто «оценка стала выше».

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

Отключили oEmbed, а редакторы вставляют ссылки на видео

В этом случае автоподстановка перестанет работать. Решение простое: либо вернуть oEmbed, либо перевести редакцию на явные embed-блоки и iframe. Сначала проверьте реальный рабочий процесс, а потом режьте функциональность.

Удалили скрипт в теме, а он вернулся после обновления

Это типичная ошибка, если правки делали в functions.php активной темы. Перенесите код в мини-плагин или mu-plugin, иначе обновление или смена темы всё сотрёт.

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

Чаще всего причина в слишком агрессивном удалении фильтров и скриптов без проверки контекста. Разделяйте фронтенд и админку, не снимайте всё глобально, если не уверены, что редактору это не нужно.

Проверяли только главную страницу

На главной может быть всё чисто, а на одиночной записи или странице с embed-блоком — уже конфликт. Тестируйте минимум три сценария: главная, одиночная запись, запись с внешним встраиванием.

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

Любая оптимизация ядра должна быть обратимой. Перед правками сохраните резервную копию файлов и базы, а если сайт продакшн — сначала проверьте изменения на staging-копии. Это особенно важно, если у вас кастомная тема или набор плагинов, которые могут зависеть от стандартных скриптов WordPress.

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

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

Как отключить emoji и oEmbed в WordPress без поломки редактора и встраиваний
24.09.2026
Создание набора иконок для WordPress с помощью ACF
16.09.2026
Как создать собственные шорткоды в WordPress: подробное руководство
23.09.2026
Как убрать дубли страниц WordPress из-за пагинации и архивов
08.10.2026