WordPress до сих пор по умолчанию подгружает небольшой набор скриптов и стилей для поддержки emoji. На современных сайтах это часто лишняя нагрузка: лишний запрос в <head>, лишний код в админке и фронтенде, а иногда — просто шум в отчётах по производительности. Если задача не в «ускорить сайт вообще», а в точечной чистке технического мусора, отключение emoji — нормальный и безопасный шаг.
Ниже разберём, когда это действительно имеет смысл, как отключить поддержку через код или плагин, как проверить результат и какие ошибки встречаются чаще всего.
Когда отключение emoji реально полезно
Сценарий простой: сайт не использует старые браузеры и не нуждается в отдельной поддержке emoji от WordPress. В этом случае скрипт wp-emoji-release.min.js и связанные фильтры обычно не дают практической пользы. На небольших проектах выигрыш будет скромным, но для технически аккуратного сайта это всё равно оправданная чистка.
Особенно это уместно, если вы уже оптимизируете:
- количество запросов в
<head>; - лишние inline-скрипты;
- админку, где важна минимальная нагрузка;
- фронтенд после аудита PageSpeed или WebPageTest.
Диагностика: как понять, что emoji вообще загружаются
Перед изменениями проверьте, есть ли на сайте эти ресурсы. Откройте исходный код страницы и найдите упоминания wp-emoji-release.min.js или inline-код, связанный с emoji. Ещё проще — в DevTools на вкладке Network отфильтровать запросы по слову emoji.
Если WordPress действительно подгружает поддержку emoji, вы увидите:
- скрипт в
wp-includes/js/wp-emoji-release.min.js; - inline-проверку поддержки emoji в HTML;
- иногда подключение в админке, а иногда и на фронтенде.
Если ничего из этого нет, значит отключать уже нечего — возможно, тема или плагин ранее убрали emoji самостоятельно.
Способы отключения: код или плагин
Технически есть два нормальных пути: добавить небольшой код в тему/му-плагин или использовать плагин для чистки. Если у вас уже есть системный плагин для оптимизации, удобнее собрать такие правки в одном месте. Если нет — проще и надёжнее использовать код.
| Подход | Плюсы | Минусы | Когда выбирать |
|---|---|---|---|
Код в functions.php или mu-plugin | Минимум зависимостей, полный контроль | Нужно аккуратно обновлять тему | Если вы ведёте проект как разработчик |
| Плагин для оптимизации | Быстро, без правки темы | Лишняя зависимость, возможны дубли настроек | Если нужен набор технических чисток |
Вариант 1: отключить emoji кодом
Самый предсказуемый способ — убрать действия и фильтры, которые WordPress добавляет по умолчанию. Код можно положить в functions.php дочерней темы или, что лучше для технических правок, в небольшой mu-plugin.
<?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 из фронтенда, админки и RSS/почты. Для большинства сайтов этого достаточно.
Вариант 2: отключить emoji через плагин
Если вы не хотите трогать код, используйте плагин, который умеет отключать лишние элементы WordPress. Например, в Clearfy Pro есть набор настроек для технической чистки сайта, включая отключение ненужных функций ядра. Это удобно, когда вы параллельно убираете эмодзи, REST-эндпоинты, эмбед и другие мелкие источники шума.
Но если вам нужна только одна точечная правка, код обычно проще: меньше зависимостей и меньше риска забыть, где именно включена опция.
Пошаговое решение без лишних рисков
- Сделайте резервную копию файлов и базы.
- Проверьте, не отключены ли emoji уже в теме или другом плагине.
- Выберите один способ: код или плагин. Не смешивайте два решения одновременно без необходимости.
- Добавьте код в дочернюю тему или mu-plugin.
- Очистите кэш сайта, CDN и браузера.
- Проверьте исходный код страницы и сетевые запросы.
Если вы используете mu-plugin, это особенно удобно для таких мелких системных правок: код не потеряется после обновления темы.
<?php
/**
* Plugin Name: Site Tweaks
* Description: Technical tweaks for 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' );
} );Как проверить, что отключение сработало
Проверка должна быть не «вроде стало тише», а конкретной. Откройте страницу сайта в режиме инкогнито и сделайте три шага:
- посмотрите исходный код страницы и убедитесь, что
wp-emoji-release.min.jsотсутствует; - в DevTools на вкладке Network проверьте, что запросов с
emojiбольше нет; - зайдите в админку и убедитесь, что редактор, комментарии и формы работают как раньше.
Если у вас включён кэш, очистите его до проверки. Иначе вы можете смотреть на старую версию HTML и сделать ложный вывод.
Частые ошибки и как их исправить
Код добавили в родительскую тему
После обновления тема перезапишется, и отключение emoji исчезнет. Для таких правок используйте дочернюю тему или mu-plugin.
Отключили только фронтенд
Иногда убирают скрипт из wp_head, но забывают про админку. Тогда в панели управления код остаётся, а цель — убрать его везде. Если нужна полная чистка, удаляйте и админские хуки тоже.
Смешали несколько оптимизаторов
Если один плагин уже отключает emoji, а второй делает то же самое, это обычно не ломает сайт, но усложняет диагностику. При поиске проблем лучше оставить одно решение и проверить его отдельно.
Не очистили кэш
Это самая банальная причина ложных результатов. После правки очистите серверный кэш, плагин кэширования и CDN, если он есть.
Что ещё можно убрать вместе с emoji
Если вы уже занялись технической чисткой, имеет смысл посмотреть на соседние мелкие источники лишнего кода: wp-embed, лишние стили плагинов, дублирующиеся шрифты, неиспользуемые виджеты. Но не делайте это вслепую: каждая такая правка должна быть проверена на конкретном сайте, а не «по списку из интернета».
Практические советы по безопасности и производительности
- Не редактируйте
functions.phpнапрямую на боевом сайте без бэкапа. - Если правка системная, лучше вынести её в mu-plugin.
- После любых изменений проверяйте не только главную, но и записи, архивы, страницу входа и админку.
- Если сайт обслуживается командой, зафиксируйте такие правки в репозитории, чтобы они не потерялись.
Отключение emoji — не магическая оптимизация, а аккуратная техническая уборка. На нормальном современном сайте она почти всегда безопасна, если вы проверили, что не используете старые браузеры и не полагаетесь на встроенную поддержку WordPress для специальных символов в почте или RSS.