В WordPress поддержка emoji включена по умолчанию и тянет за собой дополнительные проверки в браузере, а в некоторых конфигурациях — еще и лишние запросы к фронтенду и админке. На небольшом сайте это не катастрофа, но если вы уже вычищаете технический мусор, отключение emoji — одна из тех мелких правок, которые стоит делать осознанно и проверять после внедрения.
Речь не о том, чтобы «сломать смайлики». Задача проще: убрать встроенную проверку совместимости emoji там, где она не нужна, и оставить контент в рабочем состоянии. Для большинства современных браузеров и мобильных устройств это безопасно, но важно понимать, что именно отключается и как откатить изменение.
Что именно добавляет WordPress и почему это иногда лишнее
По умолчанию WordPress подключает небольшой набор скриптов и стилей для поддержки emoji. Исторически это было нужно, чтобы одинаково отображать символы на старых браузерах и платформах. Сейчас на большинстве сайтов эта прослойка не дает заметной пользы, зато усложняет фронтенд и админку лишними подключениями.
Если вы открываете исходный код страницы и видите отдельные файлы, связанные с emoji, это не ошибка. Но если сайт уже оптимизируется на уровне кеша, минификации и удаления ненужных ассетов, такие вещи лучше контролировать вручную.
Диагностика: как понять, что emoji действительно загружаются
Перед правкой проверьте, есть ли на сайте эти подключения. Самый простой путь — открыть исходный код страницы и поискать wp-emoji-release.min.js или упоминания emoji в подключенных ресурсах. В браузере это видно и через вкладку Network, если отфильтровать запросы по слову emoji.
Еще один практический признак: если вы используете плагин для оптимизации фронтенда, он может показывать emoji-скрипт как отдельный ресурс, который можно исключить из загрузки. Но отключать его стоит не наугад, а после проверки, что в контенте нет критической зависимости от старого поведения.
- Проверьте исходный код главной и внутренней страницы.
- Откройте Network в DevTools и обновите страницу.
- Посмотрите, есть ли запросы к
wp-emoji-release.min.js. - Проверьте админку, если правка будет затрагивать и backend.
Как отключить emoji в WordPress кодом
Самый надежный вариант — добавить небольшой код в 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' );
} );
Если вы предпочитаете более явный вариант через фильтры, можно дополнительно отключить эмодзи-проверку в email и RSS. Это полезно, когда вы хотите убрать поведение полностью, а не только на странице сайта.
<?php
add_filter( 'emoji_svg_url', '__return_false' );
На практике чаще всего достаточно первого блока. Второй — скорее дополнительная страховка, если вы видите, что WordPress продолжает подмешивать emoji-логику в отдельных местах.
Когда лучше делать это через плагин
Если вы не хотите держать технические правки в теме, можно использовать плагин для чистки лишних функций. Например, в Clearfy Pro есть инструменты для отключения части стандартного мусора WordPress, включая emoji, без ручного редактирования кода. Это удобно на проектах, где технические настройки ведет не разработчик, а редактор или администратор сайта. Ссылка: Clearfy Pro.
| Подход | Плюсы | Минусы |
|---|---|---|
| Код в теме или мини-плагине | Прозрачно, без лишних зависимостей | Нужно не забыть про обновления и перенос на staging |
| Плагин оптимизации | Удобно для неразработчика, часто есть другие полезные настройки | Добавляется еще один плагин и его нужно поддерживать |
| Ничего не делать | Ноль риска сломать что-то вручную | Лишние подключения остаются на сайте |
Пошаговое решение без лишнего риска
Если у вас рабочий сайт, не вносите правку сразу в продакшен. Сначала проверьте ее на staging-копии или хотя бы через резервную копию файлов и базы. Дальше действуйте по простой схеме.
- Сделайте бэкап файлов и базы.
- Добавьте код отключения emoji в дочернюю тему или мини-плагин.
- Очистите кеш сайта и кеш браузера.
- Проверьте исходный код страницы и Network.
- Откройте админку и убедитесь, что редактор и комментарии работают как раньше.
Если у вас включена агрессивная оптимизация JS/CSS, после правки стоит отдельно проверить, не остались ли старые версии файлов в кеше CDN или плагина кеширования. Иначе можно увидеть emoji-скрипт даже после того, как код уже удален.
Как проверить, что отключение сработало
Проверка должна быть не «страница открылась», а конкретной. Смотрите на три точки: исходный код, сетевые запросы и поведение контента.
- В исходном коде страницы больше нет
wp-emoji-release.min.js. - В Network нет отдельного запроса к emoji-скрипту после обновления страницы.
- В редакторе WordPress можно вставить обычные символы и они отображаются корректно.
- Комментарий или запись с emoji не ломает верстку и не превращается в пустые квадраты в современных браузерах.
Если вы хотите проверить именно на уровне HTML, откройте страницу в режиме просмотра исходника и выполните поиск по слову emoji. На чистом сайте после отключения в коде не должно оставаться явных ссылок на стандартный emoji-скрипт WordPress.
Частые ошибки и как их исправить
Код добавили в родительскую тему
Это типичная ошибка: после обновления темы правка исчезает. Если решение нужно надолго, используйте дочернюю тему или отдельный мини-плагин. Для технических правок это надежнее и проще в сопровождении.
Отключили emoji, но файл все еще грузится
Чаще всего причина в кеше. Очистите кеш плагина, серверный кеш и CDN, если он есть. Если файл остается и после этого, проверьте, не вставляет ли его другой плагин оптимизации или кастомный код в теме.
Сломалась админка или визуальный редактор
Такое бывает редко, но если после правки появились проблемы, сначала временно уберите код и проверьте, исчезла ли ошибка. Затем включайте изменения по одному блоку, чтобы понять, что именно конфликтует. Обычно проблема не в самом отключении emoji, а в стороннем плагине, который ожидает старое поведение WordPress.
Отключили слишком много вместе с emoji
Иногда в один блок правок добавляют и emoji, и embeds, и dashicons, и еще несколько отключений. В итоге потом сложно понять, что именно сломало фронтенд. Для диагностики лучше менять по одному техническому параметру и фиксировать результат.
Практические советы по безопасности и производительности
Если вы ведете сайт как разработчик, а не как пользователь панели, держите такие правки отдельно от темы. Мини-плагин для технических отключений проще переносить между проектами и проще откатывать. Это особенно полезно, когда сайт обслуживается несколькими людьми.
Еще один момент: не гонитесь за отключением всего подряд. Emoji — не самая тяжелая часть сайта. Если у вас уже есть кеширование, сжатие и нормальная тема, выигрыш будет небольшим. Но как часть общей чистки фронтенда это разумная и безопасная оптимизация, если ее проверили на конкретном проекте.
Если вам нужен более широкий набор технических отключений без ручного кода, удобнее собрать их в одном месте, чем размазывать по functions.php. На проектах с регулярной поддержкой это экономит время и уменьшает число случайных конфликтов при обновлениях.