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

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

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

Когда это действительно имеет смысл

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

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

  • откройте страницу сайта;
  • посмотрите вкладку Network и фильтр по emoji;
  • проверьте исходный HTML на наличие wp-emoji-release.min.js и inline-скрипта с проверкой canvas.

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

Обычно это не один файл, а связка из скрипта и фильтра, который подмешивает inline-проверку. Если сайт собирается минималистично, эти элементы лучше убрать на уровне functions.php дочерней темы или через mu-plugin.

Диагностика проблемы перед правкой

Сначала убедитесь, что вы не путаете emoji-скрипты с чем-то похожим от темы или плагина. Иногда в head есть собственные иконки, SVG-спрайты или аналитика, и их легко принять за системные подключения WordPress.

Минимальная проверка выглядит так:

  1. откройте исходный код страницы;
  2. найдите wp-emoji-release.min.js;
  3. проверьте, есть ли подключение в админке и на фронтенде;
  4. посмотрите, не завязаны ли на emoji какие-то пользовательские скрипты темы.

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

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

Самый предсказуемый способ — убрать стандартные действия WordPress через remove_action() и фильтр для TinyMCE. Код лучше добавлять в дочернюю тему или в отдельный mu-plugin, чтобы он не потерялся после обновления темы.

<?php
// Убираем emoji-скрипты и стили на фронтенде.
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' );

// Отключаем emoji в TinyMCE.
add_filter( 'tiny_mce_plugins', function( $plugins ) {
    if ( is_array( $plugins ) ) {
        return array_diff( $plugins, array( 'wpemoji' ) );
    }

    return array();
} );

// Убираем преобразование emoji в контенте и комментариях.
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' );

Если вы предпочитаете более аккуратный вариант для проекта с несколькими средами, вынесите это в mu-plugin, например wp-content/mu-plugins/disable-emoji.php. Так код будет работать независимо от активной темы.

Вариант через mu-plugin

<?php
/**
 * Plugin Name: Disable Emoji Support
 */

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' );
} );

add_filter( 'tiny_mce_plugins', function( $plugins ) {
    return is_array( $plugins ) ? array_diff( $plugins, array( 'wpemoji' ) ) : array();
} );

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

Если нужен готовый инструмент

На проектах, где вы одновременно чистите дубли, отключаете лишние мета-теги и приводите head к аккуратному виду, проще использовать один инструмент для технической гигиены. Например, Clearfy Pro умеет закрывать часть типовых «лишних» подключений без ручного кода. Но если задача точечная, код выше обычно прозрачнее и легче контролируется в git.

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

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

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

  • в исходнике страницы больше нет wp-emoji-release.min.js;
  • в Network не загружается emoji-скрипт;
  • в head исчезли связанные inline-фрагменты;
  • редактор записей открывается без ошибок;
  • комментарии и письма из WordPress отправляются как раньше.

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

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

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

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

Отключили только один хук

Иногда убирают только print_emoji_detection_script, но оставляют стили или фильтры для email. В результате часть следов остаётся, и аудит всё равно показывает emoji-обвязку.

Проверяли без очистки кэша

На сайтах с серверным или плагинным кэшем старый HTML может жить дольше, чем кажется. После изменения кода очистите кэш страницы, объектный кэш, если он есть, и CDN.

Сломали TinyMCE на старом проекте

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

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

Не пытайтесь править ядро WordPress ради такой задачи. Обновление всё равно перезапишет изменения, а ручные правки в core — это лишний риск.

Если вы ведёте несколько сайтов, держите такие технические отключения в отдельном mu-plugin или в общем репозитории проекта. Тогда можно быстро понять, что именно влияет на head и какие изменения уже внесены.

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

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

Как отключить emoji-скрипты в WordPress и сократить лишние запросы
13.09.2026
Как убрать 404 на страницах пагинации архива в WordPress
25.08.2026
Как отключить XML-RPC в WordPress и не сломать внешние сервисы
30.08.2026
Как найти и убрать дубликаты страниц в WordPress из-за нескольких archive URL
06.09.2026
Как закрыть от индексации страницы автора в WordPress через noindex и robots.txt
22.08.2026