Встроенная поддержка emoji в WordPress до сих пор добавляет на сайт отдельные скрипты и стили, даже если вы не используете старые браузеры или специфические сценарии с emoji-заменой. На небольшом сайте это не критично, но в технической оптимизации такие мелочи быстро накапливаются: лишние запросы, лишний код в <head>, дополнительная работа для браузера.
Если задача именно в чистке фронтенда, а не в глобальной оптимизации всего сайта, отключение emoji — один из самых безопасных шагов. Главное — сделать это правильно: не через случайный плагин, который отключит лишнее вместе с нужным, а через точечный код или проверенный инструмент.
Когда emoji-скрипты действительно мешают
Проблема обычно видна в исходном коде страницы или в отчётах Lighthouse/Pagespeed: WordPress подключает wp-emoji-release.min.js и inline-скрипт, который проверяет поддержку emoji в браузере. На современных проектах это почти всегда лишнее.
Типичные сценарии:
- сайт ориентирован на десктопные и мобильные браузеры последних версий;
- нужно сократить количество запросов на каждой странице;
- вы чистите
<head>от необязательных подключений; - на проекте уже есть строгий контроль за фронтенд-ассетами.
При этом отключать emoji имеет смысл только если вы понимаете, что не используете старую логику замены emoji на картинки. Для обычного контента это безопасно: современные браузеры отображают emoji нативно.
Диагностика: как понять, что WordPress грузит emoji
Проверка занимает пару минут. Откройте любую публичную страницу сайта и посмотрите исходный код или вкладку Network в DevTools. Ищите:
- подключение
wp-emoji-release.min.js; - inline-скрипт с проверкой canvas и emoji;
- лишние стили, связанные с emoji, если они присутствуют в конкретной конфигурации.
Если вы используете плагины для аудита фронтенда, проверьте, не отключает ли что-то уже эти скрипты. Иногда проблема решена раньше, чем вы начали её чинить, и тогда повторное вмешательство только создаст конфликт.
Что важно проверить до изменений
Перед правкой кода зафиксируйте исходное состояние:
- откройте главную страницу и несколько внутренних;
- сравните количество запросов до и после;
- проверьте, не завязан ли на emoji какой-то кастомный фронтенд-код, что бывает редко, но лучше исключить;
- сделайте резервную копию файла
functions.phpили используйте дочернюю тему.
Пошаговое решение через functions.php
Самый прямой способ — снять стандартные действия WordPress, которые подключают emoji-скрипты. Код лучше добавлять в дочернюю тему или в небольшой mu-plugin, если вы ведёте проект системно.
<?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' );
} );
Что делает этот код:
- убирает inline-проверку emoji из
wp_head; - отключает подключение скрипта в админке;
- снимает стили emoji и на фронтенде, и в админке.
Если у вас на сайте есть строгая политика по минимизации кода, лучше оформить это как отдельный mu-plugin. Тогда отключение не потеряется при смене темы.
Вариант для mu-plugin
Создайте файл, например wp-content/mu-plugins/disable-emoji.php, и положите туда такой код:
<?php
/**
* Plugin Name: Disable Emoji Scripts
*/
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' );
} );
Это удобнее, чем держать такую правку в теме: она не зависит от дизайна и не исчезнет после обновления шаблона.
Если нужен плагин: когда это оправдано
Плагин имеет смысл, если у вас проект без доступа к коду или если за сайт отвечает редактор, а не разработчик. Но для точечной задачи отключения emoji я бы не ставил тяжёлый комбайн только ради одной опции. Если вы уже используете плагин оптимизации и в нём есть отключение emoji, это нормальный вариант. Если нет — код чище и предсказуемее.
| Подход | Плюсы | Минусы |
|---|---|---|
Код в functions.php | Быстро, прозрачно, без лишних зависимостей | Слетает при смене темы, если не использовать дочернюю тему |
| mu-plugin | Не зависит от темы, удобно для поддержки | Нужно один раз правильно разместить файл |
| Плагин оптимизации | Удобно для non-dev команды | Риск получить лишние функции вместе с нужной |
Как проверить, что решение сработало
После внедрения не ограничивайтесь визуальной проверкой страницы. Нужна техническая верификация.
- Откройте исходный код страницы и убедитесь, что
wp-emoji-release.min.jsбольше не подключается. - Проверьте вкладку Network в DevTools: запросов к emoji-скрипту быть не должно.
- Сравните HTML до и после: inline-скрипт из
wp_headдолжен исчезнуть. - Зайдите в админку и убедитесь, что редактор, медиа и другие стандартные экраны работают без ошибок.
Если используете кэш-плагин или серверный кэш, очистите его перед проверкой. Иначе вы можете смотреть на старую версию страницы и сделать неверный вывод.
Быстрая проверка через поиск по коду страницы
В браузере откройте исходник и выполните поиск по строке emoji. Если отключение прошло корректно, совпадений станет меньше или не останется совсем. Это простой способ убедиться, что вы убрали именно стандартные подключения WordPress, а не только один из их фрагментов.
Частые ошибки и как их исправить
На практике проблемы возникают не в самом коде, а в способе внедрения.
- Код добавили в активную тему. После обновления или смены темы отключение пропадёт. Решение: перенести в дочернюю тему или mu-plugin.
- Отключили только один хук. Иногда убирают скрипт, но оставляют стили, или наоборот. Решение: снять все связанные действия, как в примере выше.
- Не очистили кэш. Из-за этого кажется, что код не работает. Решение: сбросить кэш плагина, сервера и CDN, если он есть.
- Используют слишком агрессивный плагин оптимизации. Он может отключить не только emoji, но и другие полезные вещи в админке. Решение: проверить настройки точечно и сравнить поведение в редакторе.
Безопасность и производительность: что учесть
Отключение emoji — это не «ускоритель в два раза», а аккуратная чистка. Не стоит ожидать чудес, но в сумме с другими точечными правками это помогает держать фронтенд в порядке.
Если на проекте уже есть системная оптимизация, можно дополнительно проверить:
- не дублируются ли скрипты через тему и плагины;
- не тянет ли какая-то кастомная сборка старые ассеты WordPress;
- не подключаются ли в
headлишние inline-блоки без необходимости; - не конфликтует ли оптимизация с редактором блоков.
Для сайтов, где важна техническая чистота, удобно держать такие правки в одном месте. Если вы используете набор инструментов для SEO и очистки сайта, например Clearfy Pro, проверьте, не решает ли он часть задачи уже из интерфейса. Но даже в этом случае полезно понимать, какой именно код убирается и где это происходит.
Когда лучше не отключать emoji
Есть редкие случаи, когда вмешательство не нужно. Например, если вы поддерживаете старую корпоративную инсталляцию с неизвестным набором браузеров или если проект уже проходит через сторонний слой, который зависит от стандартного поведения WordPress. В таких ситуациях сначала тестируйте на staging, а не на боевом сайте.
Если сайт публичный и современный, отключение emoji обычно безопасно. Но как и любая техническая правка, оно должно быть проверено на конкретной установке, а не «по ощущениям».