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. Но и в этом случае сначала проверьте, какие именно функции он меняет, чтобы не отключить лишнее.