В WordPress emoji-скрипты редко нужны на большинстве русскоязычных сайтов, но по умолчанию они всё равно подключаются и в фронтенде, и в админке. На небольшом сайте это не выглядит критичной проблемой, но если вы чистите загрузку страницы, убираете лишние запросы и следите за порядком в <head>, этот хвост лучше отключить аккуратно.
Задача здесь не в том, чтобы «вырубить всё подряд», а в том, чтобы убрать именно проверку emoji и связанные с ней inline-скрипты, не сломав редактор, комментарии и админку. Ниже — рабочие способы, диагностика и проверка результата.
Когда emoji в WordPress действительно стоит отключать
Если сайт рассчитан на обычную кириллическую аудиторию и вы не используете старые браузеры, поддержка emoji через отдельный скрипт чаще всего не даёт практической пользы. При этом она добавляет лишние действия в HTML и может создавать ощущение «грязной» сборки, особенно если вы уже оптимизируете тему и плагины.
Отключать имеет смысл, когда:
- вы хотите убрать лишние запросы и inline-скрипты из
<head>; - сайт проходит аудит производительности и вы чистите мелкие технические хвосты;
- нужно сократить количество подключаемых ресурсов в теме или в кастомном плагине;
- вы строите сайт для аудитории, где emoji-поддержка через WordPress не нужна как отдельная функция.
Диагностика: что именно подключается и где это видно
Перед изменениями проверьте, что именно у вас сейчас грузится. В исходном коде страницы ищите строки, связанные с emoji, обычно это inline-скрипт в <head> и подключение wp-emoji-release.min.js. В админке и редакторе поведение может отличаться, поэтому проверять нужно и фронтенд, и панель управления.
Что смотреть в браузере
- исходный код страницы через «Просмотр кода»;
- вкладку Network в DevTools, если хотите увидеть реальный запрос к скрипту;
- HTML в
<head>на наличие inline-теста emoji; - поведение редактора записей после отключения.
Если у вас уже стоят плагины для чистки WordPress, они могут отключать emoji вместе с другими мелкими оптимизациями. В этом случае важно не дублировать одно и то же решение кодом и плагином одновременно.
Как отключить emoji через код
Самый прозрачный способ — добавить небольшой код в functions.php дочерней темы или в собственный мини-плагин. Это позволяет точно понимать, что отключается, и не зависеть от интерфейса стороннего плагина.
Ниже рабочий вариант для большинства установок WordPress:
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-выводе. Для большинства сайтов этого достаточно. Если вы используете кастомные решения для писем или фидов, проверьте, не завязаны ли они на фильтры WordPress.
Если нужен более точный контроль
Иногда лучше не отключать всё сразу, а оставить только то, что реально используется в админке. Но на практике для обычного сайта проще убрать стандартную проверку полностью и потом проверить редактор и комментарии. WordPress не требует emoji-скрипт для работы контента как такового.
Альтернатива: отключение через плагин
Если вы не хотите править тему, можно использовать плагин для технической чистки сайта. Такой подход удобен, когда на проекте несколько администраторов и вы не хотите хранить код в теме. Из WPShop в этом сценарии уместен Clearfy Pro, если вам нужен набор точечных оптимизаций без ручного редактирования файлов.
| Способ | Плюсы | Минусы |
|---|---|---|
| Код в теме или мини-плагине | Прозрачно, без лишней логики, легко проверить | Нужно аккуратно обновлять и хранить в правильном месте |
| Плагин оптимизации | Удобно для неразработчиков, часто есть переключатель | Может добавлять лишние функции, если включить слишком много опций |
Пошаговое решение без сюрпризов
- Сделайте резервную копию файлов или хотя бы сохраните текущую версию
functions.php. - Добавьте код отключения emoji в дочернюю тему или в мини-плагин.
- Очистите кеш сайта, если он есть: плагин кеша, серверный кеш, CDN.
- Откройте главную страницу и любую запись в режиме инкогнито.
- Проверьте исходный код и убедитесь, что
wp-emoji-release.min.jsбольше не подключается. - Зайдите в админку, откройте редактор записи и убедитесь, что набор инструментов работает как раньше.
Как проверить, что решение сработало
Проверка должна быть не визуальной, а технической. Иначе легко пропустить кеш или старую версию страницы.
- в исходнике страницы больше нет inline-скрипта emoji в
<head>; - в Network не загружается
wp-emoji-release.min.js; - админка открывается без ошибок JavaScript;
- редактор записей и комментарии работают штатно;
- в RSS и письмах не появляется странная замена символов, если вы используете эти каналы.
Если у вас включён кеш страницы, проверяйте не только главную, но и типовые внутренние страницы. Иногда кеш обновляется не сразу, и кажется, что код не сработал, хотя на деле вы смотрите старую версию HTML.
Частые ошибки и как их исправить
Отключили только фронтенд, а в админке скрипт остался
Так бывает, если убрали только wp_head, но не тронули административные хуки. В результате в публичной части всё чисто, а в панели управления emoji-скрипт продолжает грузиться. Если задача — полная чистка, используйте полный набор remove_action и remove_filter.
Добавили код в родительскую тему
После обновления темы изменения исчезнут. Для постоянного решения используйте дочернюю тему или мини-плагин. Это особенно важно, если сайт поддерживается не одним человеком.
Сломали редактор из-за агрессивной оптимизации
Иногда emoji отключают вместе с другими скриптами через общий плагин оптимизации, а потом редактор начинает вести себя нестабильно. Причина обычно не в emoji как таковых, а в слишком широком наборе отключений. В таком случае вернитесь к точечному коду и отключайте только стандартные emoji-функции WordPress.
Не очистили кеш и проверяют старую версию страницы
Это самая банальная ошибка. Если после правки вы не сбросили кеш плагина, сервера или CDN, в браузере может отображаться старая HTML-версия. Перед выводами всегда очищайте кеш и проверяйте страницу в приватном окне.
Практические советы по безопасности и производительности
Если вы вносите такие правки регулярно, не держите их в случайных сниппетах без контроля. Лучше собрать технические отключения в одном мини-плагине или использовать проверенный плагин для чистки, чтобы не разносить код по нескольким файлам темы.
Для производительности сам по себе emoji-скрипт не является главным тормозом сайта. Но на проектах, где вы уже убрали дубли, лишние архивы и служебные подключения, такие мелкие правки помогают держать фронтенд аккуратным и предсказуемым. Главное — не превращать оптимизацию в набор несвязанных отключений. Любое изменение должно быть проверяемым и обратимым.
Если после отключения emoji вы видите проблемы только в одном плагине или в одном шаблоне письма, не откатывайте всё решение целиком. Сначала локализуйте источник: это может быть не WordPress emoji, а собственный скрипт темы или сторонний плагин, который подменяет символы отдельно.