В WordPress emoji-поддержка включена по умолчанию и добавляет в <head> и на фронтенд лишние скрипты и стили. На современных сайтах это обычно не нужно: браузеры давно умеют отображать emoji сами, а дополнительная загрузка только увеличивает число запросов и усложняет разметку. Если задача — почистить сайт без риска для контента, отключение emoji как раз из тех правок, которые можно сделать быстро и проверить вручную.
Ниже — рабочие способы убрать emoji-скрипты, не трогая сам контент записей и комментариев. Это не про «ускорить сайт в два раза», а про аккуратную техническую чистку, которая имеет смысл на проектах, где важна минимизация лишних подключений.
Когда отключение emoji действительно уместно
Сначала стоит понять, есть ли от этого практическая польза. Если сайт живёт на свежем ядре, использует современную тему и не ориентирован на старые браузеры, emoji-обвязка обычно не нужна. Особенно это заметно на проектах, где уже чистят <head>, убирают лишние эмодзи-скрипты и следят за количеством запросов.
Типичные сценарии
- сайт проходит аудит на лишние ресурсы в
<head>; - нужно убрать один из стандартных WordPress-скриптов, который не используется;
- тема или набор плагинов уже не зависят от emoji-поддержки;
- вы хотите привести фронтенд к более предсказуемой конфигурации без косметических подключений.
Если у вас есть старые интеграции, кастомный редакторский поток или специфичная тема, сначала проверьте, не рассчитывает ли кто-то в проекте на стандартные фильтры WordPress. В большинстве обычных установок проблем не возникает, но проверка всё равно нужна.
Диагностика: что именно подключает WordPress
Перед изменениями откройте исходный код страницы и найдите упоминания wp-emoji-release.min.js или похожие подключения. Обычно WordPress добавляет их автоматически через print_emoji_detection_script и print_emoji_styles. Если эти элементы есть, значит отключение сработает именно на уровне ядра, а не только визуально скроет проблему.
Удобно проверить и через инструменты разработчика в браузере: вкладка Network покажет, загружается ли отдельный JS-файл emoji. Если файл есть, его можно убрать штатным способом. Если файла нет, а проблема остаётся, значит подключение идёт не из ядра, а из темы или плагина.
Способ 1. Отключить emoji кодом в теме или плагине
Самый прозрачный вариант — добавить небольшой фрагмент в functions.php дочерней темы или в собственный мини-плагин. Так вы отключите стандартные действия 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 не только на фронтенде, но и в админке, а также отключает преобразование emoji в RSS и письмах. Для большинства сайтов этого достаточно. Если вы не хотите трогать админку, можно убрать только фронтенд-часть, но обычно смысла в этом мало: лишний скрипт в панели тоже не нужен.
Когда лучше использовать мини-плагин
Если тема регулярно обновляется, не кладите правку в functions.php. Проще создать маленький mu-plugin или обычный плагин с одним файлом. Тогда отключение не слетит после смены темы и не потеряется при обновлении.
<?php
/**
* Plugin Name: Disable Emoji Support
*/
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' );
} );Способ 2. Отключить emoji через плагин оптимизации
Если на сайте уже стоит плагин для технической чистки, проверьте, нет ли в нём отдельной опции для отключения emoji. Это удобнее, чем держать ещё один кусок кода, но важно понимать компромисс: вы зависите от интерфейса и логики стороннего плагина.
| Подход | Плюсы | Минусы |
|---|---|---|
| Код в теме или mu-plugin | Прозрачно, быстро, не зависит от интерфейса | Нужно один раз аккуратно внедрить и не забыть про обновления |
| Плагин оптимизации | Удобно, если уже используется для других чисток | Ещё одна зависимость, иногда лишние функции включены вместе с emoji |
Если вы уже используете Clearfy Pro для технической чистки сайта, проверьте его настройки на предмет отключения emoji и других стандартных обвязок WordPress. Это не обязательное решение, но на проектах с большим количеством мелких оптимизаций удобно держать всё в одном месте: Clearfy Pro.
Проверка результата после внедрения
После правки не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что WordPress действительно перестал выводить emoji-скрипты и стили.
- Откройте главную страницу и посмотрите исходный код.
- Найдите
wp-emoji-release.min.jsи связанные стили. - Проверьте Network в браузере: лишний JS-файл не должен загружаться.
- Откройте админку и убедитесь, что редактор и комментарии работают как раньше.
- Если сайт отдаёт RSS, проверьте, что лента открывается без ошибок.
Если вы используете кэш-плагин или серверный кэш, очистите его после изменений. Иначе можно увидеть старую версию страницы и решить, что код не сработал.
Частые ошибки и как их исправить
Удалили не те хуки
Иногда пытаются убрать только print_emoji_detection_script, забывая про стили и фильтры для RSS/почты. В результате часть обвязки остаётся, и проверка показывает, что emoji всё ещё участвуют в выводе. Решение простое: отключать весь набор связанных хуков, а не один фрагмент.
Вставили код в родительскую тему
Если правка лежит в functions.php родительской темы, она исчезнет после обновления. Для технических отключений это плохая практика. Используйте дочернюю тему или мини-плагин.
Не очистили кэш
После правки старый HTML может продолжать отдаваться из кэша. Это частая причина ложного вывода «не работает». Сначала очищайте кэш страницы и, если есть, объектный кэш или CDN.
Проверили только главную страницу
Emoji-обвязка может проявляться в комментариях, RSS или письмах. Если задача была убрать её полностью, проверяйте не один шаблон, а несколько точек вывода.
Что ещё можно почистить рядом с emoji
Если вы уже занялись технической чисткой, имеет смысл посмотреть и на другие стандартные подключения WordPress, которые не всегда нужны проекту. Но делать это надо по одному изменению за раз, чтобы понимать, что именно сломалось, если что-то пойдёт не так.
- лишние ресурсы в
<head>; - автоподстановки oEmbed, если они не используются;
- стандартные архивы и дубли, если они мешают индексации;
- неиспользуемые интеграции, которые добавляют запросы на каждой странице.
Главный принцип здесь простой: не отключать всё подряд ради чистоты кода. Сначала смотрите, что реально загружается, потом убирайте только то, что не нужно проекту. Тогда правка остаётся безопасной и воспроизводимой.