В стандартной установке WordPress emoji-поддержка тянет за собой дополнительный JS и CSS. На небольшом сайте это не критично, но на проектах, где уже вычищают head, сокращают количество запросов и следят за порядком в шаблоне, эти подключения обычно лишние. Проблема не в самих emoji, а в том, что WordPress добавляет их автоматически, даже если сайт ими почти не пользуется.
Ниже разберём, как отключить emoji корректно: без правки ядра, без ломания редактора и с проверкой результата в браузере и в исходном коде страницы.
Когда это вообще имеет смысл
Отключать emoji стоит не ради «магического ускорения», а когда есть конкретная задача: уменьшить число лишних запросов, почистить head, убрать автоподключения на сайте с жёсткими требованиями к фронтенду или привести шаблон к более предсказуемому виду. Если сайт активно использует emoji в контенте, отключение всё равно не запретит их отображение в браузере — современные браузеры умеют рендерить их сами. Но WordPress перестанет подсовывать свой служебный скрипт и стили.
Что именно добавляет WordPress
Обычно речь идёт о скрипте wp-emoji-release.min.js и связанных с ним фильтрах/действиях, которые подключаются в wp_head и admin_print_scripts. На фронтенде это видно как лишний JavaScript в исходнике страницы. В админке emoji-скрипт может быть полезен для совместимости старых браузеров, но на современных проектах его часто отключают и там тоже.
Диагностика: как понять, что emoji реально подключены
Перед изменениями проверьте, что именно у вас сейчас грузится. Самый простой способ — открыть исходный код страницы и поискать wp-emoji-release.min.js. Если используете DevTools, откройте вкладку Network и отфильтруйте запросы по emoji или wp-emoji.
Ещё один практичный признак: в <head> есть инлайн-скрипт, который пытается определить поддержку emoji в браузере и подменяет поведение WordPress. Если сайт собирается в минималистичную тему или через кастомный шаблон, этот блок обычно не нужен.
- проверьте исходный код главной и внутренней страницы;
- посмотрите Network в DevTools;
- сравните фронтенд и админку отдельно;
- убедитесь, что отключение не затрагивает контент, где emoji уже вставлены вручную.
Пошаговое решение через functions.php или мини-плагин
Самый безопасный вариант — не править ядро и не удалять файлы WordPress, а отключить emoji через хуки. Если тема у вас обновляемая, лучше вынести код в мини-плагин или в mu-plugin. Так настройка не потеряется при смене темы.
Вариант 1: отключить emoji на фронтенде и в админке
Этот код убирает основные действия и фильтры WordPress, связанные с 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' );
} );Если нужен только фронтенд, а в админке вы хотите оставить стандартное поведение, уберите строки для admin_print_scripts и admin_print_styles. Для большинства сайтов, где админкой пользуются только редакторы и разработчики, отключение и там тоже не вызывает проблем.
Вариант 2: отключить emoji через мини-плагин
Если не хочется держать код в теме, создайте файл, например wp-content/mu-plugins/disable-emoji.php. MU-плагин удобен тем, что он загружается автоматически и не зависит от активации в админке.
<?php
/**
* Plugin Name: Disable Emoji
*/
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' );
} );Для production-проекта это обычно лучше, чем держать подобные правки в functions.php активной темы. При обновлении темы код не исчезнет.
Сравнение подходов
| Способ | Плюсы | Минусы |
|---|---|---|
| Код в functions.php | Быстро, без плагинов | Слетит при смене темы |
| MU-плагин | Стабильно, не зависит от темы | Нужно один раз создать файл |
| Обычный плагин | Удобно отключать/включать | Лишний объект в списке плагинов |
Проверка результата после внедрения
После добавления кода не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что WordPress действительно перестал выводить emoji-скрипты и стили.
- Откройте страницу сайта в режиме инкогнито.
- Посмотрите исходный код и найдите
wp-emoji-release.min.js. - Проверьте, исчез ли инлайн-блок emoji в
head. - Откройте DevTools → Network и обновите страницу.
- Убедитесь, что запросов с emoji больше нет.
Если отключали emoji в админке, проверьте и экран редактирования записи. Иногда тема или плагин могут добавлять свои стили, и тогда кажется, что WordPress всё ещё подключает emoji, хотя на самом деле это уже другой код.
Частые ошибки и как их исправить
Код добавили, а скрипт остался
Частая причина — код вставили слишком поздно или в неправильный хук. Для удаления стандартных действий WordPress лучше использовать init, а не, например, wp_enqueue_scripts. Если тема уже успела что-то вывести в head, отключение на позднем этапе не поможет.
Сломали вывод в письмах или RSS
Если убрать фильтры без понимания, можно случайно повлиять на emoji в письмах и RSS-лентах. Обычно это не критично, но если у вас редакция активно использует emoji в уведомлениях, проверьте, как выглядят письма после изменения. В таком случае можно оставить фильтр wp_staticize_emoji_for_email или отключать только фронтенд.
Правили ядро WordPress
Это плохая идея: обновление всё перезапишет. Если где-то советуют удалить файлы emoji из ядра, не повторяйте этот путь. Нормальное решение — только через хуки, MU-плагин или обычный плагин.
Проверяли только кэшированную страницу
Если на сайте стоит кэш, вы можете смотреть старую версию HTML. После правки очистите кэш плагина, серверный кэш и CDN, если он есть. Иначе кажется, что настройка не сработала, хотя на деле вы просто видите старый HTML.
Что ещё можно убрать вместе с emoji
Если задача — чистка head, emoji часто идут в одном списке с другими лишними подключениями. Но отключать всё подряд не стоит: сначала проверьте, что реально используется на сайте. Например, некоторые плагины добавляют свои стили и скрипты через стандартные хуки WordPress, и их нельзя удалять по аналогии с emoji.
Если вы системно чистите сайт, удобно держать такие правки в одном месте: отдельный mu-plugin, где собраны только проверенные отключения. Это проще сопровождать, чем разбрасывать код по теме и нескольким плагинам.
Когда лучше не отключать
Если сайт обслуживает старые браузеры, если у вас сложная корпоративная среда с нестандартными ограничениями или если редакторы активно используют emoji в письмах и уведомлениях, сначала протестируйте отключение на staging. В большинстве современных проектов отключение безопасно, но проверка на копии сайта всё равно обязательна.
Если вам нужно не только убрать emoji, но и системно почистить WordPress от лишних подключений и дублей, имеет смысл смотреть в сторону инструментов, которые управляют технической оптимизацией целиком, например Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpnotes.ru&utm_medium=article&utm_campaign=otklyuchit-emojii-v-wordpress-i-ubrat-lishnie-skripty-iz-head.