Если в отчёте PageSpeed или в исходнике страницы вы видите подключения wp-emoji-release.min.js и лишние inline-скрипты, это не всегда критичная проблема, но на нагруженных сайтах такие мелочи быстро превращаются в лишние запросы и шум в <head>. На практике emoji-обвязка WordPress почти никогда не нужна на публичной части сайта, если вы не рассчитываете на старые браузеры и специфическую обработку эмодзи на стороне клиента.
Задача здесь не в том, чтобы «вырезать всё подряд», а в том, чтобы убрать только то, что реально не используется, и не сломать админку, редактор или комментарии. Ниже — рабочий сценарий: как диагностировать, что именно грузится, как отключить это корректно и как проверить результат.
Что именно грузит WordPress и почему это видно в head
По умолчанию WordPress добавляет поддержку emoji через скрипты и стили, чтобы одинаково отображать символы в разных браузерах. На фронтенде это выражается в подключении JS-файла и небольшого inline-кода в <head>. В зависимости от темы и плагинов вы можете увидеть:
wp-emoji-release.min.js;- inline-скрипт с проверкой поддержки canvas и emoji;
- дополнительные стили, если тема или плагин переопределяют отображение символов.
Если сайт ориентирован на современную аудиторию, а контент не зависит от особой emoji-логики, это обычно лишняя нагрузка. Но отключать нужно аккуратно: не через удаление случайных строк из темы, а через штатные хуки WordPress.
Диагностика: как понять, что emoji действительно мешают
Сначала проверьте, есть ли проблема вообще. Не стоит отключать всё только потому, что «так советуют». Откройте исходный код страницы и найдите emoji или wp-emoji-release. Если используете DevTools, посмотрите вкладку Network и отфильтруйте по emoji.
На что смотреть в исходнике
В типичном случае вы увидите что-то вроде:
<script src="https://example.com/wp-includes/js/wp-emoji-release.min.js?ver=6.x" defer></script>Если файл грузится на каждой странице, а сайт не использует старые браузеры как целевую платформу, отключение имеет смысл. Если же у вас корпоративный портал с жёсткими требованиями к совместимости, сначала проверьте, не завязаны ли на emoji какие-то внутренние сценарии.
Быстрая проверка через консоль
Можно проверить наличие подключений через поиск по HTML страницы или через WP-CLI, если у вас есть доступ к серверу. Но для большинства случаев достаточно браузера и просмотра исходника. Важный момент: отключать emoji нужно на фронтенде, а не ломать функциональность редактора в админке без необходимости.
Пошаговое решение: отключаем emoji штатно
Самый надёжный способ — добавить код в дочернюю тему или в собственный мини-плагин. Если вы правите functions.php основной темы, обновление может затереть изменения. Для точечной технической правки лучше использовать отдельный плагин или mu-plugin.
Вариант 1: отключить emoji через functions.php дочерней темы
Этот код убирает стандартные действия WordPress, связанные с emoji, на фронтенде и в админке. Он не трогает контент в базе и не меняет записи.
<?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' );
} );На большинстве сайтов этого достаточно. Если после внедрения в админке всё выглядит нормально, а на фронтенде исчезли лишние подключения, задача решена.
Вариант 2: мини-плагин для более чистого сопровождения
Если вы не хотите держать технические правки в теме, создайте простой плагин. Это удобнее для проектов, где тема может меняться, а оптимизация должна остаться.
<?php
/**
* Plugin Name: Disable Emoji Assets
*/
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-скрипт.
Когда лучше не лезть в код, а использовать плагин
Если на проекте уже стоит плагин для технической оптимизации, проверьте, нет ли там готового переключателя для отключения emoji и других мелких запросов. Например, в Clearfy Pro есть набор настроек для чистки WordPress, и для типового сайта это может быть удобнее, чем держать отдельный код в теме.
| Подход | Плюсы | Минусы |
|---|---|---|
| Код в дочерней теме | Быстро, прозрачно, без лишних зависимостей | Привязан к теме, можно потерять при смене |
| Мини-плагин | Не зависит от темы, удобно переносить | Нужно следить за активацией и обновлениями |
| Плагин оптимизации | Есть интерфейс и дополнительные настройки | Может быть избыточным, если нужен только один фикс |
Проверка результата после внедрения
После отключения не ограничивайтесь визуальной проверкой. Нужно убедиться, что лишние подключения исчезли и ничего не сломалось в админке.
- Откройте исходный код страницы и найдите
wp-emoji-release— его быть не должно. - Проверьте вкладку Network в DevTools: запросов к emoji-файлу быть не должно.
- Откройте редактор записи в админке и убедитесь, что он работает без ошибок JavaScript.
- Если на сайте есть комментарии, отправьте тестовый комментарий и проверьте отображение текста.
- Посмотрите RSS-ленту, если она используется: текст не должен искажаться.
Если вы используете кэш-плагин или серверный кэш, после правки очистите кэш. Иначе вы можете смотреть на старую версию страницы и решить, что код не сработал.
Частые ошибки и как их исправить
Удалили код не там, где нужно
Самая частая ошибка — вставить правку в файл темы, который потом обновляется, или в шаблон, который не загружается на всех страницах. Для таких задач лучше использовать functions.php дочерней темы или отдельный плагин.
Отключили emoji в админке и получили странное поведение
Если вы слишком агрессивно вырезали всё подряд, могут пострадать некоторые элементы редактора или сторонние плагины. Возвращайте отключение через штатные remove_action и не трогайте лишние фильтры, если они не нужны.
Не очистили кэш
После правки старый HTML может оставаться в кэше страницы, CDN или браузера. Если проверка показывает старый результат, сначала очистите все уровни кэширования, а уже потом ищите ошибку в коде.
Сломали email-обработку
Фильтр wp_staticize_emoji_for_email влияет на письма WordPress. Если у вас есть интеграции, которые завязаны на стандартную отправку писем, не удаляйте фильтры без понимания, как это скажется на шаблонах уведомлений.
Практические советы по безопасности и производительности
Отключение emoji — это не «ускоритель в один клик», а небольшая техническая уборка. Но такие правки полезны, если вы регулярно чистите сайт от лишних подключений. Держите код в отдельном месте, чтобы можно было быстро откатить изменения. Перед внедрением на боевом сайте проверьте правку на staging-копии, особенно если у вас нестандартная тема или набор плагинов.
Если на проекте уже накопилось много мелкой технической оптимизации, удобнее собирать её в одном месте: отключение emoji, удаление лишних мета-тегов, чистка head, контроль дублей и базовые SEO-настройки. В таких сценариях отдельный плагин для технической чистки часто практичнее, чем россыпь правок по теме.
И ещё один момент: не пытайтесь «ускорить WordPress» удалением всего подряд. Любая оптимизация должна быть проверяемой. Если после отключения emoji вы не видите разницы в запросах или времени загрузки, это нормально: не каждая правка даёт заметный прирост, но она может убрать лишний шум и упростить поддержку сайта.