Как отключить эмодзи в WordPress без поломки редактора и кеширования

Встроенная поддержка эмодзи в WordPress редко нужна на большинстве сайтов, но она всё равно добавляет лишние запросы к wp-emoji-release.min.js и фильтры в <head>. На небольшом проекте это не критично, а на сайте с жёсткой оптимизацией фронтенда и кешированием — уже лишний шум. Если задача именно убрать emoji-скрипты и не затронуть работу редактора, проще сделать это точечно, чем вырезать что-то вручную из ядра или темы.

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

Отключать встроенную поддержку стоит не «потому что так делают все», а если вы видите конкретную причину:

  • в отчёте Lighthouse или WebPageTest есть лишний запрос к wp-emoji-release.min.js;
  • вы собираете фронтенд в минимальный набор скриптов и не хотите тащить код, который не используется;
  • на сайте строгая политика по сторонним ресурсам и вы хотите оставить только нужные зависимости;
  • нужно уменьшить количество фильтров и действий в wp_head и admin_print_scripts.

Если сайт активно использует комментарии, редактор Gutenberg и пользовательский контент с emoji, отключение всё равно обычно безопасно: современные браузеры и так умеют отображать символы Unicode. Но важно понимать, что мы убираем именно встроенную подмену и детектирование старых браузеров, а не «запрещаем эмодзи» как символы.

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

Перед правкой проверьте, что проблема действительно в emoji-скриптах. Откройте исходный код страницы и найдите строки, связанные с emoji. Обычно это:

  • wp-emoji-release.min.js;
  • inline-скрипт с проверкой поддержки emoji;
  • фильтры, которые WordPress добавляет в wp_head и admin_print_scripts.

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

Что проверить до изменений

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

Рабочее решение через functions.php или mu-plugin

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

<?php
/**
 * Отключаем встроенные emoji-скрипты WordPress.
 */
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' );
} );

Этот вариант отключает и фронтенд, и админку. Если вам нужно убрать emoji только на сайте, но оставить в панели управления, не трогайте admin_print_scripts и admin_print_styles.

Если нужен только фронтенд

<?php
add_action( 'init', function () {
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'wp_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' );
} );

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

Альтернатива через плагин: когда код трогать не хочется

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

Подход Плюсы Минусы
Код в functions.php / mu-plugin Прозрачно, быстро, без лишних зависимостей Нужно не забыть про обновления темы и контроль версий
Оптимизационный плагин Удобно для редактора и нескольких мелких правок сразу Есть риск конфликтов с кешем и минификацией
Правка ядра Не нужна Сломается при обновлении WordPress

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

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

После добавления кода или настройки плагина проверьте результат не «на глаз», а по шагам:

  1. очистите кеш сайта, CDN и браузера;
  2. откройте исходный код страницы;
  3. поиск по странице должен не находить wp-emoji-release.min.js;
  4. проверьте, что в <head> не осталось emoji-скрипта и связанных inline-блоков;
  5. зайдите в админку и убедитесь, что редактор постов открывается без ошибок JavaScript;
  6. если есть комментарии или RSS, проверьте, что они продолжают работать штатно.

Для быстрой проверки можно использовать DevTools в браузере: вкладка Network покажет, грузится ли файл wp-emoji-release.min.js. Если файла нет, а страница и редактор работают, задача выполнена.

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

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

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

Отключили не тот хук

Иногда пытаются убрать только wp_head, но забывают про стили или фильтры для RSS и писем. В результате emoji-скрипт исчезает с сайта, но продолжает попадать в письма или ленты. Если задача — полное отключение, используйте полный набор remove_action() и remove_filter().

Кеш не очищен

Это самая частая причина ложного вывода «не работает». После правки нужно сбросить не только плагин кеша, но и серверный кеш, если он есть. На CDN тоже может висеть старая версия HTML.

Сломали совместимость с плагином оптимизации

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

Безопасность и производительность: что важно не забыть

Отключение emoji само по себе безопасно, если вы не меняете ядро и не удаляете системные файлы. Но есть несколько практических правил:

  • не редактируйте файлы ядра WordPress;
  • храните сниппет в дочерней теме или mu-plugin;
  • если используете плагин, проверьте его обновления и совместимость с вашей версией WordPress;
  • после правки прогоните страницу через валидный кеш и DevTools, чтобы убедиться, что лишний скрипт исчез именно там, где нужно.

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

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

Как отключить индексацию архивов авторов и дат в WordPress
14.08.2026
Как создать свой плагин для WooCommerce: пошаговое руководство
23.09.2026
Как создать автоматический импорт данных в WordPress с помощью REST API
11.09.2026
Как отладить проблемы с отправкой писем в WordPress
09.09.2026
Как добавить поддержку JSON-LD в WordPress
09.09.2026