Встроенная поддержка Emoji в WordPress часто остается включенной даже на сайтах, где она не нужна. На практике это означает лишние подключения wp-emoji-release.min.js, дополнительные проверки в wp-head и wp-footer, а иногда — еще и лишний DNS-запрос к внешним ресурсам в старых конфигурациях. Если сайт технический, корпоративный или просто не использует смайлы в контенте, это хороший кандидат на чистку.
Ниже разберем, как отключить Emoji без плагинов, как проверить, что скрипт действительно исчез, и какие ошибки чаще всего мешают добиться результата.
Когда отключение Emoji действительно имеет смысл
Отключать Emoji стоит не ради абстрактной «оптимизации», а когда есть конкретная причина: вы хотите сократить количество мелких запросов, убрать лишний JavaScript из шапки и футера, либо привести фронтенд к минимальному набору ресурсов. На сайтах с большим количеством страниц это не даст драматического эффекта само по себе, но в сумме с другими правками помогает убрать шум в загрузке.
Типичные признаки, что Emoji вам не нужны
- контент не использует эмодзи как часть редакционной или пользовательской логики;
- в теме уже есть собственная обработка иконок и декоративных символов;
- вы следите за количеством подключаемых скриптов и хотите убрать все необязательное;
- в Lighthouse или DevTools виден запрос
wp-emoji-release.min.js, хотя функционально он не нужен.
Диагностика проблемы: где WordPress подключает Emoji
Встроенный Emoji в WordPress подключается не из темы, а через стандартные хуки ядра. Поэтому искать проблему в шаблоне обычно бессмысленно: правка одного файла темы не отключит скрипт глобально. Сначала проверьте, действительно ли он загружается.
Как быстро проверить подключение
- Откройте страницу сайта в браузере.
- Посмотрите исходный код страницы или вкладку Network в DevTools.
- Найдите
wp-emoji-release.min.jsили упоминанияemojiв HTML. - Проверьте, не добавляет ли скрипт плагин оптимизации или кастомный код повторно.
Если скрипт есть в исходнике, но вы не видите его в Network, это может быть из-за кеша. В таком случае сначала очистите кеш страницы и браузера, а уже потом делайте выводы.
Пошаговое решение без плагинов
Самый надежный способ — снять стандартные действия WordPress, которые отвечают за Emoji. Код можно добавить в functions.php дочерней темы или в собственный мини-плагин. Для продакшена мини-плагин даже удобнее: он не зависит от смены темы.
<?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 в RSS и письмах. Если вам нужно отключить только фронтенд, а в админке оставить все как есть, уберите строки для 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' );
} );Такой вариант безопаснее, если редакторы активно работают в админке и вы не хотите менять их интерфейс без необходимости.
Сравнение подходов: код, плагин, компромисс
| Способ | Что дает | Минус |
|---|---|---|
| Код в дочерней теме | Полный контроль, без лишних плагинов | Слетит при смене темы, если не вынести в мини-плагин |
| Мини-плагин | Не зависит от темы, удобно переносить | Нужно один раз создать файл и следить за активацией |
| Плагин оптимизации | Быстрое включение через интерфейс | Может отключать больше, чем нужно, и конфликтовать с кешем |
Если у вас уже стоит плагин для чистки WordPress, например Clearfy Pro, проверьте, не отключает ли он Emoji отдельно. В таком случае не дублируйте решение кодом, иначе потом будет сложнее понять, что именно сработало.
Проверка результата после внедрения
После добавления кода не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что WordPress больше не подключает скрипт и стили Emoji.
Что проверить вручную
- в исходнике страницы нет
wp-emoji-release.min.js; - в
<head>отсутствуют связанные inline-скрипты Emoji; - в Network не появляется запрос к файлу Emoji при первой загрузке страницы;
- в админке, если вы отключали только фронтенд, редактор работает как раньше;
- в RSS и письмах не ломается отображение символов, если вы не трогали фильтры для них.
Если используете кеширующий плагин или серверный кеш, очистите его после правки. Иначе вы можете смотреть на старую версию HTML и ошибочно решить, что код не работает.
Частые ошибки и как их исправить
Код добавили не туда
Если вставить код в файл, который не загружается на фронтенде, ничего не изменится. Для дочерней темы используйте functions.php, а для более надежного варианта — отдельный мини-плагин.
Отключили Emoji, но скрипт остался
Чаще всего причина в кеше, в другом плагине оптимизации или в том, что код выполняется слишком поздно. В примере выше используется init, этого обычно достаточно. Если у вас есть плагин, который заново добавляет Emoji, ищите его настройки или фильтры.
Сломали отображение эмодзи в письмах и RSS
Такое бывает, если вы удалили все фильтры без разбора. Если вам важно сохранить Emoji в email-уведомлениях или RSS, не отключайте wp_staticize_emoji_for_email и связанные фильтры для фидов.
Проверяли только в браузере с кешем
Это классическая ошибка. Сначала очистите кеш сайта, потом откройте страницу в режиме инкогнито или с отключенным кешем браузера. И только после этого смотрите исходный код.
Практические советы по безопасности и производительности
Если вы вносите такие правки регулярно, лучше не править родительскую тему напрямую. Дочерняя тема или мини-плагин переживут обновление и не заставят вас восстанавливать изменения вручную. Для сайтов с несколькими разработчиками это еще и способ не потерять контроль над техническими правками.
Не отключайте Emoji «на всякий случай» в админке, если редакторы реально используют символы в контенте и письмах. Сначала определите, где именно они нужны, а где нет. В техническом сайте обычно достаточно убрать фронтенд, а остальное оставить без изменений.
Если задача стоит шире — убрать лишние ресурсы, дубли и технический шум в WordPress, имеет смысл смотреть на весь набор оптимизаций, а не только на Emoji. В таких сценариях полезно проверять и другие стандартные подключения ядра, но делать это точечно, с тестом после каждого изменения.