В WordPress поддержка эмодзи включена по умолчанию уже много лет, но на небольших и технически чистых проектах она часто не нужна. Проблема не в самих символах, а в дополнительном JavaScript, стилах и проверках, которые WordPress подгружает на фронтенде и в админке. Если сайт не использует старые браузеры и не зависит от этой подмены, поддержку можно отключить без заметного риска.
Ниже разберём, где именно возникает лишняя нагрузка, как отключить emoji-скрипты правильно и как проверить, что ничего лишнего не осталось в HTML и сетевых запросах.
Когда отключение эмодзи действительно имеет смысл
Эта настройка полезна не «для красоты», а в конкретных сценариях:
- на сайте важна минимизация количества запросов и лишних подключений;
- вы уже используете современную тему и не поддерживаете старые браузеры;
- нужно убрать лишний код из
<head>и сократить число внешних обращений; - вы чистите сайт от неиспользуемых функций WordPress и лишних зависимостей.
Если у вас проект с активной работой в комментариях, пользовательским контентом или интеграциями, где эмодзи реально используются и важна совместимость со старыми клиентами, отключать поддержку стоит осторожно. В большинстве обычных сайтов это безопасная оптимизация.
Диагностика: что именно добавляет WordPress
По умолчанию WordPress подключает не только скрипт для emoji, но и фильтры, которые меняют поведение контента. На фронтенде это обычно видно в исходном коде страницы и в списке запросов браузера. Ищите:
wp-emoji-release.min.js;- инлайн-скрипт с проверкой поддержки emoji;
- дополнительные стили или служебные вставки в HTML;
- подключения через
wp_headиwp_print_styles.
Проверка простая: откройте страницу сайта, посмотрите исходный код и найдите emoji. Если скрипт есть, а проект не использует эту функциональность осознанно, его можно убрать.
Что важно не перепутать
Отключение emoji не влияет на обычные символы Unicode. Если вы вставляете смайлы с клавиатуры, они останутся в контенте. Речь только о старой совместимости WordPress, которая подменяет отображение для устаревших окружений.
Способы отключения: код, плагин, компромисс
Есть три рабочих подхода. Для технического сайта чаще выбирают код в functions.php или в мини-плагине. Если нужен быстрый вариант без правки темы, можно использовать плагин для оптимизации, но тогда важно проверить, не отключает ли он лишнее вместе с emoji.
| Способ | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Код в теме или MU-плагине | Есть доступ к файлам и нужен точечный контроль | Прозрачно, без лишних зависимостей | Нужно не забыть при смене темы |
| Плагин оптимизации | Нужна настройка через админку | Быстро включить и проверить | Может отключать больше, чем нужно |
| Комбинированный подход | Есть кеш, минификация и другие оптимизации | Удобно для комплексной чистки | Нужно следить за конфликтами |
Пошаговое решение через код
Самый надёжный способ — убрать и скрипт, и связанные фильтры. Добавьте код в functions.php дочерней темы или в собственный мини-плагин. Для постоянной оптимизации лучше использовать MU-плагин, чтобы настройка не зависела от темы.
<?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' );
remove_filter( 'the_content', 'wp_staticize_emoji' );
remove_filter( 'comment_text', 'wp_staticize_emoji' );
} );Этот вариант убирает поддержку emoji из фронтенда, админки и части контентных фильтров. Для большинства обычных сайтов этого достаточно.
Если нужен только фронтенд
Иногда админку трогать не хотят, чтобы не менять поведение редактора и служебных экранов. Тогда можно отключить только публичную часть:
<?php
add_action( 'init', function () {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
} );Это более мягкий вариант, но он не убирает всё полностью. Если цель — именно чистка сайта, лучше использовать полный набор отключений.
Как сделать это через плагин без правки темы
Если вы не хотите лезть в код темы, используйте плагин, который умеет отключать лишние функции WordPress по чекбоксам. В таком сценарии удобно, когда одна панель управляет несколькими оптимизациями: отключением emoji, XML-RPC, дублей, лишних мета-тегов и других технических мелочей. У Clearfy Pro как раз есть такой профиль задач, но принцип здесь важнее конкретного инструмента: проверьте, что отключение emoji не завязано на агрессивную оптимизацию, которая ломает другие части сайта.
После включения опции обязательно сравните исходный код страницы до и после. Если плагин убрал emoji-скрипт, но добавил собственные тяжёлые обвязки, выигрыш может оказаться сомнительным.
Проверка результата после внедрения
Не ограничивайтесь визуальной проверкой. Нужно убедиться, что скрипт и стили действительно исчезли из фронтенда и админки, если вы отключали их полностью.
- Откройте страницу сайта и посмотрите исходный код: не должно быть
wp-emoji-release.min.js. - Проверьте вкладку Network в DevTools: лишний запрос к emoji-скрипту не должен появляться.
- Откройте админку и редактор: интерфейс должен работать как раньше.
- Если есть RSS-лента или email-уведомления, проверьте, что контент отображается корректно.
Дополнительно можно проверить через поиск по файлам темы и плагинов, нет ли стороннего кода, который снова подключает emoji-скрипт вручную. Иногда это делают темы или оптимизаторы, и тогда отключение в одном месте не даёт эффекта.
Частые ошибки и как их исправить
Отключили только один хук
Самая частая ошибка — убрать только print_emoji_detection_script и забыть про стили или фильтры. В результате часть кода остаётся, а эффект получается неполным. Решение простое: отключайте связанный набор хуков, а не один элемент.
Добавили код в родительскую тему
Если правка сделана в родительской теме, она исчезнет после обновления. Для постоянной настройки используйте дочернюю тему или MU-плагин. Это особенно важно, если вы ведёте несколько технических правок одновременно.
Сломали админку из-за агрессивного оптимизатора
Некоторые плагины для ускорения сайта отключают не только emoji, но и другие скрипты в админке. Если после включения опции редактор начал вести себя странно, верните изменения и проверьте, не затронуты ли служебные страницы. Для админки лучше использовать точечные отключения, а не «ускорение всего сразу».
Проверили только главную страницу
На главной скрипт может быть убран, но в шаблонах записей, архивов или в AMP-подобных страницах он всё ещё останется. Проверяйте несколько типов страниц: запись, страницу, архив, страницу с комментариями, если она есть.
Практические советы по безопасности и производительности
Отключение emoji — мелкая оптимизация, но она хорошо сочетается с общей чисткой WordPress. Если вы уже правите техническую часть сайта, имеет смысл проверить и другие лишние элементы: генератор версии, ненужные эмодзи-скрипты, дубли архивов, лишние REST-эндпоинты, если они не используются проектом.
При этом не стоит превращать оптимизацию в набор случайных отключений. Любое изменение лучше сопровождать короткой проверкой:
- есть ли эффект в исходном коде;
- не сломались ли комментарии и редактор;
- не появились ли ошибки в консоли;
- не изменилось ли поведение RSS и email-уведомлений.
Если вы ведёте сайт на нескольких плагинах оптимизации, фиксируйте, где именно отключена каждая функция. Иначе через пару месяцев будет трудно понять, почему что-то исчезло или, наоборот, вернулось после обновления.
Для проектов, где нужна системная чистка WordPress без ручной возни с хуками, удобно держать под рукой инструменты класса Clearfy Pro: они закрывают типовые технические задачи и уменьшают шанс забыть про один из связанных фильтров. Но даже в этом случае проверка исходного кода и сетевых запросов остаётся обязательной.