В WordPress emoji-поддержка включена по умолчанию уже много лет, и на небольшом сайте это часто незаметно. Но на проектах, где важны чистый фронтенд, контроль над запросами и минимизация лишних подключений, скрипт wp-emoji-release.min.js и связанные стили становятся лишними. Обычно их отключают не ради «магии скорости», а чтобы убрать один ненужный HTTP-запрос, сократить DOM-«мусор» и не держать код, который не используется по факту.
Ниже — рабочий сценарий: как понять, что emoji-скрипты действительно грузятся, как отключить их безопасно, чем отличается решение через код от плагина и как проверить, что ничего не сломалось в редакторе и админке.
Когда Emojicons действительно стоит отключать
Отключение имеет смысл, если вы видите, что WordPress добавляет emoji-обработку на всех страницах, а проекту это не нужно. Чаще всего это актуально для:
- контентных сайтов с жесткими требованиями к чистоте фронтенда;
- проектов, где уже есть собственная типографика и emoji не используются;
- сайтов, которые проходят ручной аудит подключаемых ресурсов;
- сборок, где лишние inline-скрипты мешают политике CSP или просто засоряют HTML.
Если у вас активно используются комментарии, пользовательский контент или интеграции, где emoji могут понадобиться, отключать всё без проверки не стоит. В WordPress это не критичная функция, но лучше понимать, где именно она используется.
Диагностика: как понять, что emoji-скрипты подключены
Самый простой способ — открыть исходный код страницы и найти упоминание wp-emoji-release.min.js или inline-скрипта, который подготавливает emoji-обработку. Иногда это видно и в DevTools на вкладке Network.
Что искать в HTML
На фронтенде обычно встречаются:
- подключение
wp-emoji-release.min.jsиз/wp-includes/js/wp-emoji-release.min.js; - inline-скрипт в
<head>, который добавляет классы и проверяет поддержку emoji; - иногда — стили, связанные с отображением emoji в старых браузерах.
Если вы видите эти элементы на каждой странице, отключение имеет смысл. Если нет — возможно, тема или плагин уже убрали их, и дополнительная правка не нужна.
Пошаговое решение через код
Надежнее всего отключать emoji через functions.php дочерней темы или через собственный мини-плагин. Так вы не потеряете изменения при обновлении темы.
Ниже — стандартный и рабочий вариант, который убирает 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' );
} );Этот код не трогает саму возможность вставлять emoji в контент. Он отключает именно служебную обвязку WordPress, которая подгружается для совместимости со старыми браузерами.
Если нужно убрать только фронтенд
Иногда админку лучше оставить без изменений, особенно если редакторы привыкли к стандартному поведению. Тогда можно отключить только публичную часть:
<?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 реально используются или сайт не требует оптимизации |
Если у вас уже стоит плагин для технической чистки, например Clearfy Pro, проверьте, не отключена ли emoji-поддержка там. Дублировать одно и то же в плагине и в теме не нужно: потом сложнее понять, что именно сработало.
Проверка результата после внедрения
После добавления кода не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что отключение действительно применилось и не задело другие части сайта.
- Откройте исходный код страницы и проверьте, что
wp-emoji-release.min.jsбольше не подключается. - Посмотрите вкладку Network в DevTools: лишний запрос должен исчезнуть.
- Проверьте админку: редактор записей, экран комментариев, медиа-библиотеку.
- Если на сайте есть RSS-лента или email-уведомления, убедитесь, что они не потеряли корректное отображение символов.
Для быстрой проверки можно открыть главную страницу и выполнить поиск по исходнику на строку wp-emoji. Если совпадений нет, отключение сработало.
Частые ошибки и как их исправить
Код добавили не туда
Если вставить фрагмент в файл, который не загружается на сайте, ничего не изменится. Самая частая ошибка — правка неактивной темы или файла, который потом перезаписывается обновлением. Используйте дочернюю тему или отдельный мини-плагин.
Отключили всё, а потом сломали совместимость
Иногда вместе с emoji-скриптами по ошибке удаляют лишние хуки или фильтры. В результате могут появиться проблемы в RSS, письмах или комментариях. Если нужен только фронтенд, не трогайте лишние фильтры, которые отвечают за email и ленты.
Конфликт с плагином оптимизации
Если оптимизатор уже убирает emoji, повторное удаление обычно не вредит, но усложняет диагностику. При поиске проблемы временно отключите одну из реализаций и проверьте результат отдельно.
Проверяли только кэшированную страницу
После правки очистите кэш плагина, серверный кэш и CDN, если он есть. Иначе вы можете смотреть на старую версию HTML и думать, что код не работает.
Практические советы по безопасности и производительности
Если вы вносите такие правки регулярно, лучше не держать их в functions.php основной темы. При обновлении или смене темы вы потеряете настройку. Мини-плагин в wp-content/plugins или mu-plugin — более надежный вариант для технических отключений.
Не стоит отключать emoji «на всякий случай» на клиентских проектах без проверки. На некоторых сайтах контент может приходить из внешних источников, а редакторы реально используют символы, которые WordPress обрабатывает через эту механику. Сначала проверьте сценарии: комментарии, формы, письма, RSS, импорт контента.
Если вам нужно не только убрать emoji, но и почистить сайт от других лишних подключений, имеет смысл смотреть на комплексную техническую оптимизацию. В таких задачах удобнее один раз собрать список отключаемых функций и проверить их на staging, чем править сайт точечно и вслепую.
После внедрения сохраните короткий чек-лист проверки:
- emoji-скрипт отсутствует в исходнике;
- админка открывается без ошибок;
- редактор записей работает;
- RSS и письма не испортили символы;
- кэш очищен и проверка идет на актуальной версии страницы.
Если нужен более широкий набор чисток WordPress, иногда проще собрать их в одном месте и управлять ими через понятный интерфейс, чем держать россыпь разрозненных правок. Но для отключения emoji код остается самым предсказуемым вариантом: он короткий, проверяемый и не зависит от внешнего плагина.