WordPress до сих пор может подгружать отдельные скрипты и стили для поддержки emoji. На небольшом сайте это не выглядит проблемой, но на проектах с жесткой оптимизацией каждый лишний запрос и лишний блок в <head> имеет значение. Обычно речь идет не о драматическом ускорении, а о чистке фронтенда: меньше запросов, меньше мусора в исходнике, проще контроль над тем, что реально загружается на страницах.
Ниже разберем, как отключить emoji корректно: без правки ядра, без поломки редактора и с проверкой, что изменения действительно применились.
Когда это имеет смысл
Отключать emoji стоит не «потому что так делают все», а когда у вас есть понятная задача по технической чистке. Например:
- вы оптимизируете стартовую загрузку и убираете все необязательные ресурсы;
- на сайте уже есть строгий контроль над подключаемыми скриптами;
- нужно сократить количество внешних и встроенных зависимостей в
<head>; - вы ведете аудит темы или плагинов и хотите убрать стандартные элементы WordPress, которые не используются.
Важно понимать: emoji-скрипты не являются главной причиной медленного сайта. Если у вас тяжелая тема, десятки плагинов или не настроен кеш, эффект от этой правки будет вторичным. Но как часть общей уборки фронтенда она вполне оправдана.
Диагностика проблемы: что именно загружает WordPress
Сначала проверьте, есть ли на сайте стандартные подключения emoji. Обычно они выглядят так:
wp-emoji-release.min.js;- inline-скрипт
wpemojiSettings; - в некоторых случаях — дополнительные фильтры в
wp_headиwp_print_styles.
Проще всего посмотреть исходный код страницы в браузере и найти emoji или wpemoji. Если используете DevTools, откройте вкладку Network и отфильтруйте по слову emoji. Если запросов нет, значит, отключать уже нечего — либо тема/плагин это сделали раньше, либо у вас кастомная сборка.
Еще один полезный тест — проверить, не подключается ли emoji только в админке. Для фронтенда это нормально: нам важно убрать именно публичную часть сайта, не трогая редактор без необходимости.
Пошаговое решение без правки ядра
Самый безопасный способ — добавить код в дочернюю тему или в собственный мини-плагин. Так вы не потеряете изменения после обновления темы.
Вариант 1: отключить emoji через functions.php
Добавьте в 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 в админке, можно убрать строки для admin_print_scripts и admin_print_styles, но на практике чаще отключают все стандартные подключения целиком.
Вариант 2: через мини-плагин
Если вы не хотите держать кастомный код в теме, создайте простой плагин, например disable-wp-emoji.php в каталоге wp-content/plugins/:
<?php
/**
* Plugin Name: Disable WP 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' );
} );Это удобно, если вы ведете несколько проектов и хотите повторно использовать одну и ту же настройку.
Сравнение подходов: плагин, код или ничего не делать
| Подход | Что дает | Минус |
|---|---|---|
| Код в дочерней теме | Быстро, без лишних зависимостей | Слетит при смене темы, если забыть перенести |
| Мини-плагин | Не зависит от темы, удобно для нескольких сайтов | Нужно следить за активацией и хранением кода |
| Ничего не менять | Ноль риска для текущей конфигурации | Лишние подключения остаются в фронтенде |
Если у вас уже есть плагин для технической чистки сайта, имеет смысл проверить, не делает ли он это за вас. Например, в инструментах уровня Clearfy Pro есть отдельные опции для отключения стандартных функций WordPress, и это удобнее, чем собирать набор мелких правок вручную. Но если нужен точечный контроль, код остается самым прозрачным вариантом.
Проверка результата после внедрения
После добавления кода не ограничивайтесь визуальной проверкой страницы. Нужны минимум три шага:
- Откройте исходный код страницы и убедитесь, что
wp-emoji-release.min.jsиwpemojiSettingsбольше не выводятся. - Проверьте Network в DevTools: запросов с
emojiбыть не должно. - Зайдите в админку и убедитесь, что редактор, комментарии и отправка писем работают как раньше.
Если у вас включен кеш страницы, очистите его после правки. Иначе можно смотреть на старую версию HTML и сделать ложный вывод, что код не сработал.
Для более строгой проверки удобно сравнить исходник до и после через diff или просто сохранить HTML страницы в файл и найти в нем emoji. Это особенно полезно, если на сайте есть оптимизирующий плагин, который может объединять или минифицировать скрипты и скрывать реальную картину.
Частые ошибки и как их исправить
Код добавили не туда
Если вставить фрагмент в файл темы, который не загружается на фронтенде, ничего не изменится. Проверьте, что код действительно исполняется: лучше использовать functions.php дочерней темы или отдельный плагин.
Удалили только часть хуков
Иногда убирают только print_emoji_detection_script, но оставляют стили или фильтры для RSS и писем. В результате часть следов emoji остается. Если задача — полная очистка, используйте полный набор remove_action и remove_filter.
Смотрят не на ту страницу
Проверять нужно именно публичную страницу и именно после очистки кеша. Админка, мобильная версия, AMP-страницы или шаблоны с отдельной логикой могут вести себя по-разному.
Путают emoji и иконки темы
Отключение emoji не должно ломать иконки, SVG или шрифты темы. Если после правки пропали какие-то значки, значит, проблема не в emoji, а в другом подключении или в конфликте оптимизации.
Практические советы по безопасности и производительности
Не правьте wp-includes и не удаляйте файлы ядра вручную. Это ломается при обновлении и усложняет поддержку. Если нужен контроль над стандартными функциями WordPress, используйте хуки или плагин для технических настроек.
Если вы уже занимаетесь чисткой фронтенда, проверьте рядом еще несколько вещей:
- не выводится ли лишний
wp-embed.min.js, если embed не используется; - не подключается ли
dashiconsдля незалогиненных пользователей без необходимости; - не остается ли в
<head>мусор от старых плагинов после их удаления; - не дублируются ли одни и те же скрипты через тему и плагин.
Если вам нужен более широкий набор отключаемых функций WordPress без ручной сборки кода, можно посмотреть в сторону технических плагинов вроде Clearfy Pro. Но даже в этом случае полезно понимать, какие именно хуки он трогает, чтобы не отключить лишнее.
В итоге проверка простая: в исходнике страницы нет emoji-скриптов, в Network нет соответствующих запросов, а сайт и админка работают без побочных эффектов. Если это так, настройка выполнена корректно.