WordPress по умолчанию подключает поддержку emoji через отдельные скрипты и стили. На обычном сайте это редко нужно: браузеры давно умеют отображать эмодзи без дополнительной помощи, а лишние подключения только засоряют фронтенд. Если задача — убрать несколько запросов, сократить мусор в HTML и не сломать редактор, отключать это лучше точечно, а не через случайный «оптимизатор» без понимания, что он вырезает.
Что именно добавляет WordPress и где это видно
Речь не про сами emoji в контенте, а про набор служебных подключений, которые WordPress вставляет в <head> и в админке. На фронтенде чаще всего заметен инлайн-скрипт wp-emoji-release.min.js, а также связанный с ним detection-код. В старых темах и сборках это может выглядеть как лишний блок JavaScript в исходнике страницы.
Проверить наличие можно прямо в браузере: откройте исходный код страницы и найдите emoji или wp-emoji-release. Если используете DevTools, посмотрите вкладку Network и обновите страницу — лишний запрос будет виден сразу.
Диагностика: когда отключение действительно имеет смысл
Отключать emoji имеет смысл, если вы:
- оптимизируете фронтенд и убираете каждый ненужный запрос;
- работаете на сайте с высокой посещаемостью, где важна чистота HTML;
- используете современную аудиторию и не поддерживаете очень старые браузеры;
- видите, что тема или плагин уже добавляют собственные emoji-решения, и возникает дублирование.
Если сайт рассчитан на очень старые браузеры или у вас есть специфический корпоративный парк устройств, сначала проверьте, не завязана ли верстка на старую поддержку. В обычной практике это редкий случай, но его лучше исключить до правок.
Как отключить emoji в WordPress без поломки админки
Самый надежный способ — снять штатные хуки WordPress. Это не требует плагинов и не вмешивается в ядро. Добавьте код в 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' );
} );Этот вариант отключает и фронтенд, и часть служебной обработки в админке. Если вам нужно убрать только фронтенд, а редактор оставить без изменений, можно ограничиться двумя строками для wp_head и wp_print_styles.
<?php
add_action( 'init', function () {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
} );Если удобнее через плагин
Когда править тему не хочется, используйте плагин для технической очистки, например Clearfy Pro. У него есть функции для отключения лишних элементов WordPress, включая emoji и другие мелкие источники мусора. Это удобнее для сайтов, где технические правки ведутся через интерфейс, а не через код. Ссылка на продукт: Clearfy Pro.
| Способ | Плюсы | Минусы |
|---|---|---|
| Код в теме/плагине | Прозрачно, без лишних зависимостей | Нужно не забыть про обновления и дочернюю тему |
| Плагин оптимизации | Удобно для неразработчика, есть другие настройки | Нужно следить, чтобы не отключить лишнее |
| Ничего не делать | Нулевой риск сломать что-то | Лишние подключения остаются |
Пошаговая проверка после внедрения
После правки не ограничивайтесь визуальной проверкой страницы. Нужна именно техническая валидация.
- Откройте страницу в режиме инкогнито и обновите ее с очисткой кэша.
- Посмотрите исходный код и убедитесь, что
wp-emoji-release.min.jsбольше не выводится. - Проверьте Network: лишний запрос к emoji-скрипту должен исчезнуть.
- Откройте админку и редактор записи, чтобы убедиться, что ввод текста и вставка символов работают штатно.
- Если на сайте есть кэш-плагин или серверный кэш, очистите его и повторите проверку.
Для быстрой проверки через консоль браузера можно выполнить поиск по исходнику страницы:
document.documentElement.innerHTML.includes('wp-emoji-release')Если результат false, скрипт на странице не выводится. Но лучше все равно проверить исходный код и Network, потому что инлайн-обработчики могут отличаться в зависимости от темы и плагинов.
Частые ошибки и почему отключение не срабатывает
Код добавили не туда
Если вставить правку в файл, который не загружается на фронтенде, ничего не изменится. Типичный случай — редактирование неактивной темы или родительской темы вместо дочерней. Для проверки временно добавьте простой тестовый error_log или любой заметный маркер в HTML, чтобы убедиться, что файл вообще исполняется.
Плагин кэширует старую версию страницы
После отключения emoji вы можете продолжать видеть старый код из-за кэша страницы, CDN или браузера. Это не баг WordPress, а обычная проблема слоя доставки. Сначала очищайте кэш плагина, потом серверный кэш, потом CDN, и только после этого проверяйте результат.
Оптимизатор снова подключает скрипт
Некоторые плагины минификации и «ускорения» могут повторно добавлять служебные скрипты или менять порядок загрузки. Если после вашего кода emoji не исчезают, временно отключите оптимизатор и проверьте страницу еще раз. Так вы поймете, кто именно возвращает подключение.
Удалили не только emoji, но и нужные фильтры
Иногда пытаются «почистить все подряд» и снимают фильтры, которые используются для RSS или email. Это уже рискованнее, чем кажется: в письмах и лентах могут появиться неочевидные проблемы с символами. Если задача только в фронтенде, не трогайте лишние фильтры без необходимости.
Что еще можно убрать рядом, если цель — чистый фронтенд
Если вы уже занялись технической чисткой, имеет смысл посмотреть и на другие мелкие подключения WordPress: эмбедды, лишние версии ресурсов, дублирующиеся стили темы. Но не отключайте все подряд «на глаз». Сначала измерьте, что реально грузится, и только потом убирайте конкретный источник.
Практический подход такой: сначала фиксируете проблему в Network и исходнике, затем отключаете ровно один механизм, затем снова проверяете. Это надежнее, чем ставить плагин, который обещает «ускорить все», но без разбора ломает встроенные функции.
Когда лучше не трогать этот код вручную
Если сайт поддерживает несколько редакторов, нестандартную админку или сильно завязан на сторонние интеграции, безопаснее вынести такие правки в отдельный мини-плагин. Тогда вы не потеряете изменения при обновлении темы и сможете быстро откатить их, если какой-то плагин начнет конфликтовать.
Для сайтов, где техническая чистка делается регулярно, удобнее собрать набор таких выключателей в одном месте: emoji, embeds, лишние мета-теги, дублирующиеся стили. Но каждую опцию нужно проверять отдельно, а не включать пакетно без теста.