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

Встроенная поддержка 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 обычно безопасно. Но как и любая техническая правка, оно должно быть проверено на конкретной установке, а не «по ощущениям».

⭐⭐⭐⭐⭐