WordPress Notes WP24

Как отключить emoji в WordPress и убрать лишние запросы

WordPress по умолчанию подключает небольшой набор скриптов и стилей для поддержки emoji. На современных сайтах это часто лишняя нагрузка: дополнительные запросы в <head>, лишний JavaScript на каждой странице и еще один источник шума в аудите производительности. Если сайт работает на классической теме или на аккуратно собранном блоковом шаблоне, отключение emoji обычно не ломает контент и дает понятный технический выигрыш: фронтенд становится чище, а список подключений — короче.

Но здесь важно не путать задачу. Речь не о «ускорить сайт магически», а о точечной чистке того, что WordPress добавляет автоматически. Если у вас уже есть кэш, минификация и нормальная тема, отключение emoji — это один из небольших, но безопасных шагов, который стоит делать осознанно и проверять после внедрения.

Когда отключение emoji действительно уместно

Сценарий простой: вы открываете исходный код страницы или смотрите список сетевых запросов и видите wp-emoji-release.min.js и связанные с ним inline-скрипты. На сайте нет задачи поддерживать старые браузеры, а контент не зависит от автоматической подмены emoji в редакторе. В таком случае можно убрать этот слой без заметного риска.

Есть и обратные случаи. Если сайт обслуживает очень старые браузеры или вы используете сторонний плагин, который неожиданно завязан на стандартные скрипты WordPress в wp_head и wp_footer, сначала проверьте совместимость на тестовой копии. Само по себе отключение emoji редко ломает сайт, но лучше не делать это вслепую на боевом проекте.

Что именно добавляет WordPress

По умолчанию WordPress подключает проверку поддержки emoji через wp-emoji-release.min.js и несколько inline-фрагментов. Это не огромный файл, но он появляется на каждой странице. Для технического аудита важен не размер в килобайтах, а сам факт лишнего подключения и дополнительной логики в браузере.

Если вы оптимизируете сайт вручную, этот элемент обычно попадает в один список с отключением wp-embed, удалением лишних dashicons для гостей и чисткой wp_head. Но у emoji есть отдельная особенность: отключать их можно штатно, без правки ядра и без вмешательства в шаблоны.

Диагностика: как понять, что emoji реально загружаются

Перед изменениями проверьте, что именно подключается на фронтенде. Самый надежный способ — открыть исходный код страницы и поискать emoji или wp-emoji-release. Второй вариант — DevTools в браузере, вкладка Network, фильтр по слову emoji.

Если у вас есть доступ к WP-CLI, можно быстро проверить активные плагины и тему, чтобы понять, не делает ли кто-то из них собственную обвязку вокруг стандартного поведения WordPress. Это не обязательный шаг, но он полезен, если сайт уже сильно кастомизирован.

wp plugin list --status=active
wp theme list --status=active

Дальше проверьте страницу после очистки кэша. Если используется серверный кэш, CDN или плагин оптимизации, старые версии HTML могут показать ложный результат. Для диагностики всегда открывайте страницу в режиме инкогнито и, по возможности, с отключенным кэшем браузера.

Как отключить emoji в WordPress через functions.php

Самый прямой способ — убрать стандартные действия WordPress через remove_action. Этот вариант удобен, если вы контролируете тему или дочернюю тему и не хотите ставить отдельный плагин ради одной настройки.

<?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' );
} );

Этот код лучше размещать в дочерней теме или в собственном мини-плагине. Так вы не потеряете настройку после обновления темы. Если проект уже использует mu-plugin для технических правок, это даже предпочтительнее: отключение emoji будет жить отдельно от дизайна.

Почему код лучше, чем правка ядра или шаблонов

Потому что WordPress обновляется регулярно, а правки ядра или копирование шаблонов в тему создают лишнюю точку отказа. remove_action использует штатный механизм хуков и не требует патчить файлы ядра. Для технической поддержки это проще: видно, где именно отключение сделано, и его легко откатить.

Если вам нужно отключить emoji только на фронтенде, а в админке оставить поведение без изменений, можно сузить условие. Но в большинстве случаев это не требуется: отключение на админке обычно не мешает редактированию записей и комментариев.

Альтернатива: отключение через плагин оптимизации

Если на сайте уже стоит плагин для технической чистки, проверьте, умеет ли он отключать emoji штатно. Это удобнее, чем держать отдельный кусок кода, если у вас нет разработчика под рукой. Например, в Clearfy Pro есть набор настроек для удаления лишних элементов WordPress, и отключение emoji обычно логично входит в такой сценарий чистки фронтенда. Ссылка: Clearfy Pro.

Но плагин — это компромисс. Если вам нужна одна-единственная правка, код в дочерней теме или mu-plugin зачастую чище. Если же вы уже используете плагин для удаления дублей, отключения embeds и чистки wp_head, добавление emoji в тот же набор настроек может быть удобнее для поддержки.

ПодходПлюсыМинусы
Код в functions.php / mu-pluginБез лишних зависимостей, прозрачно для разработчикаНужно не забыть про обновления темы и место хранения кода
Плагин оптимизацииУдобно для редактора или администратора без доступа к кодуДополнительная зависимость, часть настроек может быть избыточной
Ничего не делатьНулевой риск поломкиЛишние запросы и шум в аудите фронтенда остаются

Пошаговое решение без лишних рисков

  1. Сделайте резервную копию или подготовьте staging-копию сайта.
  2. Проверьте, где именно подключается wp-emoji-release.min.js: фронтенд, админка или оба места.
  3. Добавьте код отключения в дочернюю тему или mu-plugin.
  4. Очистите кэш плагина, сервера и CDN, если они используются.
  5. Откройте страницу в инкогнито и проверьте исходный код.
  6. Убедитесь, что в Network больше нет запросов к emoji-скрипту.

Если на сайте есть автоматическая минификация, после внедрения проверьте, не остались ли старые объединенные файлы в кэше. Иногда кажется, что код не сработал, хотя на самом деле браузер показывает старую версию страницы.

Как проверить, что решение сработало

Проверка должна быть не визуальной, а технической. Откройте исходный код страницы и найдите wp-emoji-release.min.js. Если скрипт исчез, это хороший знак. Затем в DevTools откройте Network и обновите страницу с отключенным кэшем. Запросов к emoji быть не должно.

Дополнительно можно проверить HTML на наличие inline-обработчиков, связанных с emoji. Если вы используете плагин кеширования, сравните страницу до и после очистки кэша. Иногда фронтенд уже чистый, но кэш отдает старую версию.

// Быстрая проверка в браузере через консоль
[...document.scripts].some(function(script) {
    return script.src && script.src.indexOf('wp-emoji-release') !== -1;
});

Если результат false, скрипт не подключен. Если true, значит отключение не применилось или его перебивает другой код.

Частые ошибки и как их исправить

  • Код добавили не туда. Если вставить его в файл, который не загружается на фронтенде, ничего не изменится. Для темы используйте functions.php дочерней темы или mu-plugin.
  • Проверяют без очистки кэша. Серверный кэш и CDN часто отдают старый HTML. Сначала очищайте кэш, потом проверяйте.
  • Отключают только фронтенд, забывая про админку. В результате запросы остаются в панели управления. Это не критично, но мешает понять, сработало ли решение полностью.
  • Путают emoji с другими оптимизациями. Удаление emoji не отключает embeds, REST API или XML Sitemap. Это отдельные задачи, и их нужно проверять отдельно.
  • Ставят несколько плагинов, которые делают одно и то же. Если два плагина одновременно чистят wp_head, можно получить конфликт или труднообъяснимое поведение.

Что еще можно почистить рядом с emoji

Если вы уже занялись технической гигиеной сайта, имеет смысл посмотреть на соседние элементы, которые тоже часто не нужны. Например, на гостевых страницах можно убрать dashicons, если тема их не использует на фронтенде. Можно отключить wp-embed, если сайт не встраивает записи WordPress через oEmbed. Но каждую такую правку нужно проверять отдельно.

Для производительности важен не сам факт «убрать все подряд», а аккуратная работа с тем, что реально не используется. Это особенно заметно на проектах с большим количеством плагинов: лишняя оптимизация без проверки иногда приносит больше проблем, чем пользы.

Безопасность и поддержка: как не создать себе лишнюю проблему

Отключение emoji — безопасная правка, если вы не лезете в ядро и не правите чужие файлы напрямую. Используйте дочернюю тему, собственный плагин или mu-plugin. Так вы сможете быстро откатить изменение, если после обновления темы или плагина появится неожиданный конфликт.

Если сайт ведет несколько человек, зафиксируйте изменение в репозитории или хотя бы в журнале технических правок. Через пару месяцев такие мелочи забываются, и потом сложно понять, почему на сайте исчезли стандартные скрипты WordPress.

В итоге отключение emoji — это не «обязательная оптимизация», а нормальная точечная настройка. Она оправдана, когда вы действительно чистите фронтенд и хотите убрать лишние подключения без риска для контента и редактора.

×
-15%
на премиум-тему
Reboot

Создай сайт мечты
на WordPress!

Купить со скидкой »