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

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

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

Речь не о «ускорении на глаз», а о конкретной чистке того, что вам не нужно. Если сайт работает на русском и вы не используете emoji-обработку как отдельную функцию, то можно убрать:

  • подключение wp-emoji-release.min.js;
  • фильтры, которые вставляют emoji-скрипты в wp_head и admin_print_scripts;
  • лишние DNS-запросы к внешним ресурсам, если они возникают через старую логику браузера;
  • часть служебного кода, который WordPress добавляет автоматически.

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

Диагностика: что именно сейчас грузится

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

Проверьте и админку: если вы работаете в редакторе блоков, иногда проблема не во фронтенде, а в том, что правка через тему ломает поведение в wp-admin. Поэтому сначала фиксируем, где именно проявляется лишняя нагрузка:

  • фронтенд страницы;
  • админка и редактор;
  • комментарии;
  • виджеты и формы, если они используют старый контентный фильтр.

Что не стоит делать сразу

Не удаляйте файлы ядра и не правьте wp-includes. Это не решение, а способ сломать обновления. Также не стоит искать «ускоряющий» плагин, который отключает всё подряд без разбора: в реальных проектах именно такие настройки чаще всего ломают визуальный редактор или вставку медиа.

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

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

<?php
/**
 * Disable WordPress emoji scripts and styles.
 */
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-обвязку WordPress, но не трогает саму возможность отображать emoji в браузере. Современные браузеры и так умеют показывать их нативно. На практике этого достаточно для большинства сайтов.

Если вы хотите сделать это аккуратнее и не держать код в теме, создайте mu-plugin:

<?php
/*
Plugin Name: Disable Emoji Support
Description: Removes WordPress emoji scripts and styles.
*/

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 подхватывает такие плагины автоматически, без активации в админке.

Если нужен вариант без кода: что можно отключить в плагине оптимизации

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

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

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

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

После правки откройте главную страницу и любую внутреннюю запись. В исходном коде не должно быть:

  • wp-emoji-release.min.js;
  • inline-скрипта с emoji detection;
  • подключения emoji-стилей в <head>;
  • лишних фильтров в RSS и письмах, если вы их отключали.

Дальше проверьте редактор записей. Создайте черновик, вставьте обычный текст, emoji и ссылку. Если блоки открываются, автосохранение работает, а визуальный редактор не ведёт себя странно, значит отключение прошло безопасно. Отдельно посмотрите комментарии, если они включены: форма должна отправляться без ошибок, а текст комментария — сохраняться как обычно.

Для быстрой технической проверки удобно сравнить исходный HTML до и после. Если вы используете curl, можно посмотреть заголовки и часть разметки:

curl -s https://example.com/ | grep -i emoji

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

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

Отключили не там, где нужно

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

Сломали админку из-за слишком раннего хука

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

Отключили лишнее вместе с emoji

Некоторые «оптимизаторы» убирают не только emoji, но и полезные части wp_head, включая важные мета-теги или стили редактора. Если после чистки что-то пропало из интерфейса, сравните список отключённых действий и верните только то, что реально связано с emoji.

Не проверили RSS и почту

На сайте может быть всё нормально, но в RSS или письмах останутся старые emoji-замены. Если вы отключали фильтры wp_staticize_emoji и wp_staticize_emoji_for_email, проверьте рассылку и feed-ленты отдельно.

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

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

Если на сайте уже идёт системная чистка, не смешивайте сразу всё в один большой файл. Разделяйте отключение emoji, embeds, dashicons на фронтенде и другие оптимизации. Так проще искать причину, если после очередной правки что-то перестало отображаться.

И ещё один практический момент: если у вас старый контент с нестандартными символами, не путайте emoji-обработку с кодировкой базы. Отключение emoji не исправляет проблемы utf8/utf8mb4 и не должно использоваться как «лечение» битых символов в базе данных.

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

Как убрать 404-страницы из XML sitemap в WordPress
03.09.2026
Как отключить лишние emoji и скрипты Gutenberg в WordPress без поломки сайта
06.09.2026
Как запретить копирование текста в WordPress
29.09.2026
Как найти и удалить битые ссылки в WordPress
08.10.2026
Как удалить meta robots из WordPress на конкретных страницах
29.09.2026