В WordPress emoji поддерживаются не только в редакторе, но и через отдельные скрипты и стили, которые по умолчанию могут попадать в <head> и в админку. На небольшом сайте это не критично, но если вы уже чистите фронтенд от лишнего кода, отключение emoji — одна из самых безопасных точечных оптимизаций.
Ниже разберём, как понять, что именно загружается, что можно отключить без риска, и как проверить результат после правки темы или мини-плагина.
Когда это вообще имеет смысл
Отключать emoji стоит не ради абстрактной «оптимизации», а если вы видите в исходнике страницы лишние подключения wp-emoji-release.min.js и связанные с ним inline-скрипты. Обычно это имеет смысл, когда:
- вы вручную оптимизируете
<head>и хотите убрать всё необязательное; - на сайте строгая политика по количеству запросов и сторонних зависимостей;
- вы используете собственную сборку фронтенда и хотите контролировать каждый подключаемый файл;
- нужно уменьшить шум в отчётах по производительности, где лишние мелкие скрипты мешают увидеть реальные проблемы.
При этом это не «ускоритель в один клик». Эффект обычно небольшой, и его стоит рассматривать как часть общей чистки сайта, а не как отдельное чудо-решение.
Диагностика проблемы: где искать emoji-скрипты
Сначала проверьте исходный код страницы. Откройте любую публичную страницу сайта и найдите:
wp-emoji-release.min.js;- inline-скрипт с проверкой поддержки emoji;
- подключения через
wp_headиprint_emoji_detection_script.
Если вы работаете через браузерные DevTools, смотрите вкладку Network и фильтруйте по emoji. Если запросов нет, возможно, тема или плагин уже отключили emoji. Тогда повторно добавлять код не нужно.
Ещё один практический способ — временно вывести список подключённых скриптов в шаблоне или проверить HTML-источник. Для этого не обязательно лезть в ядро WordPress: достаточно понять, что именно выводится на фронтенде и в админке.
Что не стоит трогать
Не удаляйте из ядра файлы emoji вручную и не правьте системные файлы WordPress. После обновления всё вернётся обратно, а в худшем случае вы получите несоответствие между кодом и ожидаемым поведением ядра. Правильный путь — снять стандартные хуки.
Пошаговое решение через functions.php или мини-плагин
Самый надёжный вариант — добавить код в дочернюю тему или в небольшой mu-plugin/обычный плагин для сайта. Если правка нужна только для одного проекта, мини-плагин даже удобнее: он не зависит от темы.
Ниже рабочий вариант, который отключает emoji-скрипты и стили на фронтенде и в админке:
<?php
/**
* Disable WordPress emoji scripts and styles.
*/
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 только на фронтенде, но оставить в админке, уберите строки для admin_print_scripts и admin_print_styles. Это полезно, если редакторы активно используют emoji в контенте и вы не хотите менять их рабочий процесс.
Вариант через мини-плагин
Если не хотите держать код в functions.php, создайте файл, например disable-emoji.php, в каталоге wp-content/plugins/ и активируйте его как обычный плагин:
<?php
/**
* Plugin Name: Disable Emoji
* Description: Removes WordPress emoji scripts and styles.
* Version: 1.0.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
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' );
} );Такой подход проще откатить, если позже выяснится, что какой-то плагин или шаблон рассчитывает на стандартное поведение ядра.
Сравнение подходов: плагин, код, компромисс
| Подход | Что даёт | Минус |
|---|---|---|
| Код в дочерней теме | Быстро, без лишних плагинов | Привязан к теме |
| Мини-плагин | Не зависит от темы, удобно переносить | Нужно хранить отдельный файл |
| Ничего не делать | Нулевой риск сломать что-то вручную | Лишние скрипты остаются |
Если у вас уже есть плагин для технической чистки сайта, например Clearfy Pro, подобные настройки часто удобнее держать в одном месте, чем размазывать по теме. Но если задача точечная, отдельный мини-плагин обычно прозрачнее.
Проверка результата после внедрения
После добавления кода не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что отключение реально сработало и не осталось старых кэшированных версий.
- Очистите кэш плагина, сервера и CDN, если он есть.
- Откройте страницу в режиме инкогнито.
- Посмотрите исходный код и убедитесь, что
wp-emoji-release.min.jsбольше не выводится. - Проверьте админку, если вы отключали emoji и там тоже.
- Обновите любую запись с emoji в тексте и убедитесь, что контент отображается нормально.
Если используете консоль браузера, можно быстро проверить наличие файла через поиск по HTML или вкладку Network. В идеале на странице не должно быть ни отдельного запроса на emoji-скрипт, ни inline-блока, связанного с его детекцией.
Частые ошибки и как их исправить
Код добавили, но скрипт остался
Чаще всего причина в том, что код вставили слишком поздно или не в тот файл. Хук init должен отработать до вывода wp_head. Если тема уже выводит что-то нестандартно, проверьте, не подключает ли emoji другой плагин или кастомный код.
Сломали админку или редактор
Обычно это происходит, если удалили не только emoji-скрипты, но и связанные стили/фильтры без понимания, где они используются. Верните код по частям: сначала отключите только фронтенд, затем отдельно проверьте админку.
Не очистили кэш
Если у вас включён page cache, браузер может показывать старую версию страницы. Это особенно заметно на сайтах с агрессивным кэшированием. После правки всегда очищайте кэш и проверяйте страницу в приватном окне.
Путают отключение emoji с оптимизацией шрифтов
Emoji-скрипты не заменяют системные шрифты и не влияют на загрузку иконок из темы. Если вы ищете проблему в производительности, не стоит ожидать от этой правки заметного выигрыша по времени загрузки. Это именно чистка лишнего кода, а не полная оптимизация фронтенда.
Что ещё можно почистить рядом с emoji
Если вы уже занимаетесь технической гигиеной сайта, имеет смысл посмотреть и на другие стандартные элементы WordPress, которые не всегда нужны на публичной части:
- лишние версии и мета-теги в
<head>; - эмбеддинги, если сайт не встраивает внешние посты;
- генерацию лишних размеров изображений, если тема их не использует;
- автозагрузку опций, если сайт давно разросся и стал тяжёлым.
Но здесь важно не превращать чистку в бесконечный список отключений. Сначала фиксируйте конкретную проблему, потом убирайте только то, что реально не нужно вашему проекту.
Чек-лист перед публикацией изменений
- Проверен исходный код страницы до и после правки.
- Очищен кэш сайта, сервера и браузера.
- Проверено, что emoji-скрипт исчез только там, где нужно.
- Админка и редактор работают без ошибок.
- Нет конфликтов с плагинами, которые модифицируют
wp_head.
Если задача стоит шире — убрать не только emoji, но и другие стандартные следы WordPress, лучше делать это поэтапно. Так проще понять, какая именно правка дала эффект и что могло повлиять на отображение сайта.