wpspeed.ru wordpress wpspeed.ru

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

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

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

Когда отключение emoji имеет смысл

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

Типичные признаки

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

Если у вас есть аудитория со старыми браузерами или вы используете внешние сервисы, которые завязаны на стандартное поведение WordPress, отключение лучше сначала проверить на staging-копии. Для большинства обычных сайтов это безопасная правка, но не стоит вносить её «вслепую» в продакшен.

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

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

Ещё один быстрый способ — DevTools в браузере:

  1. откройте страницу;
  2. перейдите во вкладку Network;
  3. обновите страницу;
  4. отфильтруйте запросы по emoji;
  5. проверьте, есть ли загрузка скрипта и не блокирует ли он рендер.

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

Пошаговое решение через код

Самый предсказуемый способ — убрать emoji через functions.php дочерней темы или через свой небольшой mu-plugin. Для продакшена mu-plugin даже удобнее: он не зависит от темы и не исчезнет после обновления.

Вариант 1: отключить emoji через 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.

Вариант 2: mu-plugin для стабильности

<?php
/**
 * Plugin Name: Disable Emoji
 */

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

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

Плагин или код: что выбрать

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

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

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

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

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

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

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

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

Удалили не те хуки

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

Добавили код слишком поздно

Если вы вызываете remove_action не на init, а где-то после, WordPress уже мог зарегистрировать вывод. В таком случае отключение не сработает. Для этой задачи init — нормальная точка входа.

Конфликт с плагином оптимизации

Когда одно и то же отключение сделано и в плагине, и в теме, сложно понять источник проблемы. Если что-то перестало работать, временно оставьте только один способ — либо код, либо настройку плагина.

Проверяют только главную страницу

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

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

Отключение emoji — мелкая оптимизация, но её лучше встраивать в общий порядок технической чистки. Не смешивайте её с десятком других правок в одном коммите, если потом нужно будет откатывать изменения. Для поддержки проекта удобнее держать такие отключения в отдельном файле или mu-plugin.

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

Для сайтов, где важна скорость и техническая гигиена, полезно держать список отключений в одном месте и документировать, зачем они нужны. Тогда через полгода не придётся гадать, почему в проекте появились ручные правки, которые никто не помнит.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше