Как отключить emoji в WordPress через код и плагин

Встроенная поддержка emoji в WordPress редко нужна на обычном сайте, но по умолчанию она добавляет лишние проверки и подключает скрипт в <head>. Это не катастрофа, но на проектах, где важна чистота фронтенда и контроль над лишними запросами, такой хвост лучше убрать.

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

Что именно делает emoji-скрипт в WordPress

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

Важно понимать: речь не о том, чтобы запретить пользователям вставлять emoji в контент. Речь о том, чтобы убрать фронтенд-обвязку WordPress, если она вам не нужна.

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

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

Диагностика: как понять, что emoji реально грузятся

Перед правкой проверьте, есть ли на странице подключение emoji-скрипта. Самый простой способ — открыть исходный код страницы и поискать wp-emoji-release.min.js. Если он есть, WordPress добавляет поддержку emoji на фронтенде.

Еще один вариант — DevTools в браузере. На вкладке Network отфильтруйте по emoji или wp-emoji. Если файл загружается, значит отключение имеет смысл.

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

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

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

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

<?php
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_resource_hints', 2 );
}, 1 );

add_filter( 'emoji_svg_url', '__return_false' );

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

Если хотите более точечный вариант, используйте только отключение emoji-обвязки без вмешательства в resource hints:

<?php
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' );
}, 1 );

add_filter( 'emoji_svg_url', '__return_false' );

Если удобнее через плагин

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

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

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

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

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

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

Если используете PageSpeed Insights или Lighthouse, не ждите чудес от одного этого изменения. Но в аудите станет на один лишний скрипт меньше, а фронтенд будет чище и предсказуемее.

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

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

Чаще всего причина в том, что код вставили не туда или он не выполняется. Проверьте, что правка лежит в активной дочерней теме или в mu-plugin, а не в теме, которую вы потом обновили.

Сломали resource hints или другие оптимизации

Ошибка возникает, когда пытаются удалить слишком много через remove_action и задевают не только emoji. Не убирайте wp_resource_hints целиком, если не понимаете, какие подсказки ресурсов использует сайт.

Поставили два решения одновременно

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

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

Если вы удалили фильтры для email или комментариев, а потом заметили некорректную обработку символов, верните только те части, которые реально нужны. Не обязательно отключать все блоки сразу.

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

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

Если вы ведете несколько правок по чистке WordPress, сначала составьте список того, что уже отключено: emoji, embeds, лишние dashicons для гостей, XML-RPC, REST-эндпоинты для неавторизованных пользователей — и только потом проверяйте влияние на скорость. Иначе легко потерять контроль над тем, что именно изменилось.

Для сайтов, где важна минимизация технического шума, логично держать такие настройки в одном месте. Это проще сопровождать, чем разбрасывать по functions.php, кастомному плагину и настройкам оптимизатора одновременно.

Как использовать WPRemark для автоматического сбора отзывов пользователей в WordPress
01.10.2026
Как удалить старые мета-поля в WordPress при удалении записи
20.09.2026
Успешная интеграция WooCommerce с Битрикс24 в WordPress
03.10.2026
Создание и использование Metabox в WordPress для комплексных форм
29.09.2026
Как использовать настройки пересылки электронной почты в WordPress
15.09.2026