wpeasy.ru wordpress wpeasy.ru

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

В WordPress поддержка emoji включена по умолчанию и тянет за собой дополнительный JavaScript и проверки в браузере. На небольших сайтах это часто незаметно, но если вы чистите фронтенд от лишних запросов, оптимизируете Core Web Vitals или просто хотите убрать ненужный код, emoji-скрипты — один из самых безопасных кандидатов на отключение.

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

Когда это действительно имеет смысл

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

Типичные сценарии

  • сайт на классической теме или кастомной сборке, где важна чистота фронтенда;
  • много страниц, и вы последовательно убираете все необязательные скрипты;
  • есть замечания по Lighthouse или PageSpeed, и вы уже вычистили более крупные проблемы;
  • нужна предсказуемая загрузка без лишних проверок в <head>.

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

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

Что искать в исходнике

  • wp-emoji-release.min.js в /wp-includes/js/wp-emoji-release.min.js;
  • инлайн-блок с проверкой canvas и sessionStorage;
  • подключение в <head> до основного контента.

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

Пошаговое решение: отключаем emoji штатным способом

Самый надёжный вариант — убрать действия и фильтры через functions.php дочерней темы или через небольшой mu-plugin. Это лучше, чем править ядро или вставлять код в случайный плагин для сниппетов, который потом можно забыть выключить.

Вариант через functions.php

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

Этот код убирает emoji-обвязку из фронтенда, админки, RSS и писем. Для большинства сайтов этого достаточно.

Вариант через mu-plugin

Если вы ведёте несколько правок и не хотите зависеть от темы, создайте файл wp-content/mu-plugins/disable-emoji.php. Mu-plugin загружается автоматически и не теряется при смене темы.

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

Если нужен более чистый вариант: отключаем и фильтры, и DNS-prefetch

В старых установках WordPress emoji-логика может оставлять ещё и лишние prefetch-запросы. Если вы хотите убрать всё, что связано с этой функцией, можно дополнительно отключить фильтр, который добавляет DNS-prefetch для emoji CDN.

<?php
add_filter( 'emoji_svg_url', '__return_false' );

На практике это редко критично, но на проектах, где вы считаете каждый внешний вызов, такой шаг уместен. После него проверьте исходник и список сетевых запросов ещё раз.

Сравнение подходов

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

Если на сайте уже стоит плагин вроде Clearfy Pro, отключение emoji обычно можно сделать вместе с другими настройками чистки WordPress без ручного кода. Это удобно, когда вы одновременно убираете дубли, лишние мета-теги и другие мелкие элементы. Подробности можно посмотреть на странице плагина: https://wpshop.ru/plugins/clearfy.

Проверка результата после внедрения

После добавления кода не ограничивайтесь визуальной проверкой сайта. Нужно убедиться, что скрипт действительно исчез из фронтенда и что админка не потеряла базовую функциональность.

Чек-лист проверки

  • откройте страницу в режиме инкогнито и проверьте исходный код;
  • убедитесь, что wp-emoji-release.min.js больше не загружается;
  • проверьте, что в <head> не осталось инлайн-скрипта emoji;
  • откройте редактор записей и убедитесь, что он работает штатно;
  • если есть RSS-ленты и письма, проверьте, что эмодзи в них отображаются как обычные символы;
  • сравните количество запросов до и после в DevTools.

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

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

Код добавили не туда

Если вставить сниппет в файл темы, которая потом обновится, правка исчезнет. Для постоянного решения используйте дочернюю тему или mu-plugin.

Удалили не все хуки

Иногда убирают только print_emoji_detection_script, но забывают про стили или фильтры для RSS и писем. В результате часть emoji-логики остаётся в системе, и проверка показывает неполный результат.

Проверяли без очистки кеша

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

Сломали не emoji, а другой оптимизационный плагин

Если у вас уже есть плагин, который управляет скриптами в <head>, не дублируйте логику в нескольких местах. Иначе потом сложно понять, кто именно удалил нужный ресурс.

Практические советы по безопасности и производительности

Отключение emoji — мелкая оптимизация, но она хорошо работает как часть системного подхода. Не стоит превращать сайт в набор случайных сниппетов. Лучше собирать такие правки в одном месте, документировать их и проверять после обновлений WordPress.

  • храните технические сниппеты в mu-plugin или в отдельном репозитории;
  • после обновления WordPress быстро перепроверяйте фронтенд и админку;
  • не отключайте то, что не измеряли: сначала найдите реальный лишний код;
  • если используете плагин оптимизации, держите список включённых опций;
  • на продакшене тестируйте изменения сначала на staging-копии.

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

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее