Как отключить Emoji в WordPress и убрать лишние скрипты из head

WordPress до сих пор по умолчанию подгружает небольшой набор скриптов и стилей для поддержки emoji. На современных сайтах это часто лишняя нагрузка: дополнительные запросы, лишний код в <head> и еще один источник шума в техническом аудите. Если задача — вычистить фронтенд без риска для контента и админки, emoji можно отключить точечно.

Ниже разберем, что именно отключать, как проверить, что изменения сработали, и где чаще всего допускают ошибки.

Когда это имеет смысл

Отключение emoji полезно не как «магическая оптимизация», а в конкретных сценариях:

  • сайт проходит аудит по количеству запросов и лишним ресурсам;
  • нужно убрать ненужные inline- и внешние скрипты из head;
  • вы поддерживаете старую тему или набор плагинов, где важна предсказуемость фронтенда;
  • хотите сократить технический шум перед дальнейшей оптимизацией кеша и критического CSS.

Важно понимать: emoji-скрипты обычно не являются главным тормозом сайта. Но если вы уже чистите фронтенд, это один из безопасных и понятных шагов.

Диагностика: что именно добавляет WordPress

По умолчанию WordPress подключает проверку поддержки emoji через JavaScript и добавляет соответствующие фильтры в wp_head и wp_print_styles. На практике это можно увидеть в исходном коде страницы или в DevTools.

Что искать в HTML

Откройте страницу сайта и посмотрите исходник. Обычно встречаются:

  • инлайн-скрипт с проверкой emoji;
  • подключение wp-emoji-release.min.js;
  • иногда дополнительные стили, связанные с emoji.

Если вы используете плагин для анализа производительности, он может подсветить лишние запросы или inline code в head. Но лучше проверить руками: так вы точно понимаете, что отключаете.

Как отключить emoji в WordPress

Самый надежный способ — добавить код в functions.php дочерней темы или в собственный мини-плагин. Так вы не зависите от настроек темы и не потеряете изменения при обновлении.

Рабочий код для отключения emoji

<?php
add_action( 'init', 'wpform_disable_wp_emojis' );
function wpform_disable_wp_emojis() {
    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' );
    add_filter( 'tiny_mce_plugins', 'wpform_disable_emojis_tinymce' );
}

function wpform_disable_emojis_tinymce( $plugins ) {
    if ( is_array( $plugins ) ) {
        return array_diff( $plugins, array( 'wpemoji' ) );
    }

    return array();
}

Этот вариант отключает emoji не только на фронтенде, но и в админке, а также убирает их из TinyMCE и RSS-выводов. Для большинства сайтов этого достаточно.

Если нужен только фронтенд

Иногда emoji в админке лучше оставить, особенно если редакторы активно работают с контентом и вы не хотите менять поведение панели управления. Тогда можно убрать только фронтенд-часть:

<?php
add_action( 'init', 'wpform_disable_frontend_emojis' );
function wpform_disable_frontend_emojis() {
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
}

Это более мягкий вариант. Он подходит, если цель — почистить публичную часть сайта, но не трогать редактор.

Сравнение подходов: код, плагин или ничего не делать

ПодходЧто даетМинус
Код в теме или мини-плагинеПолный контроль, без лишних зависимостейНужно аккуратно вставить и протестировать
Плагин оптимизацииМожно отключить emoji вместе с другими мелкими оптимизациямиЛишний слой настроек, иногда конфликтует с темой
Ничего не менятьНулевая вероятность сломать поведениеЛишний код остается в head и админке

Если у вас уже стоит плагин вроде Clearfy Pro и в нем есть настройка отключения emoji, это допустимый вариант. Но для точечной задачи код обычно прозрачнее: видно, что именно отключено, и проще контролировать изменения.

Пошаговое внедрение без риска

  1. Сделайте резервную копию файлов темы или подготовьте дочернюю тему.
  2. Добавьте код в functions.php дочерней темы либо в отдельный mu-plugin.
  3. Очистите кеш сайта, кеш сервера и кеш браузера.
  4. Откройте главную страницу и исходный код.
  5. Проверьте админку: редактор записей, комментарии, RSS, если они используются.

Мини-плагин вместо правки темы

Если не хотите трогать тему, можно создать простой mu-plugin. Это удобно для технических правок, которые должны жить отдельно от дизайна.

<?php
/**
 * Plugin Name: WPForm Disable Emojis
 */

add_action( 'init', 'wpform_disable_wp_emojis' );
function wpform_disable_wp_emojis() {
    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' );
}

Файл можно положить в wp-content/mu-plugins/. Такой код загружается автоматически и не зависит от активации в админке.

Как проверить, что решение сработало

Проверка должна быть не «на глаз», а по факту.

  • в исходнике страницы больше нет wp-emoji-release.min.js;
  • в <head> не выводится emoji detection script;
  • в DevTools на вкладке Network нет запроса к emoji-скрипту;
  • в админке не появились ошибки редактора или комментариев;
  • RSS и email-шаблоны не изменили поведение, если они используются на сайте.

Если у вас включен кеш, обязательно проверьте и очищенную, и закешированную версию страницы. Иногда кажется, что код не сработал, хотя на самом деле вы смотрите старый HTML из кеша.

Частые ошибки и как их исправить

Код добавили не туда

Если вставить фрагмент в родительскую тему, обновление ее перезапишет изменения. Для постоянной технической правки используйте дочернюю тему или mu-plugin.

Отключили только часть хуков

Иногда убирают только wp_head, но оставляют стили или админские скрипты. В итоге часть нагрузки остается, а проверка показывает неполную очистку. Если цель — полное отключение, используйте полный набор remove_action и remove_filter.

Не очистили кеш

После правки код может быть уже отключен, но старый HTML продолжает отдаваться из кеша. Очистите кеш плагина, серверный кеш и CDN, если он есть.

Сломали совместимость в старом редакторе

На некоторых старых установках и при нестандартных плагинах редактирования emoji-скрипт может быть нужен для части интерфейса. Если после отключения появились странности в админке, верните отключение только на фронтенде.

Что еще можно убрать вместе с emoji

Если вы уже чистите head, имеет смысл посмотреть на соседние мелкие оптимизации: лишние эмодзи-скрипты, неиспользуемые встроенные стили темы, дублирующиеся мета-теги, лишние REST-запросы от плагинов. Но здесь важно не идти по списку «все подряд» — отключайте только то, что вы реально проверили.

Для аккуратной технической чистки полезно держать изменения в одном месте: отдельный mu-plugin, документированный список отключений и короткий чек-лист проверки после обновлений WordPress.

Если вам нужен более широкий набор точечных оптимизаций, удобно собрать их в одном техническом слое, а не размазывать по теме. Так проще откатывать изменения и искать причину регрессий.

Как закрыть от индексации страницы поиска в WordPress
03.09.2026
Как закрыть от индексации страницы авторов в WordPress
07.09.2026
Как убрать дубли страниц в WordPress из-за архивов тегов, авторов и дат
30.08.2026
Как отключить Emoji в WordPress и убрать лишние скрипты из head
14.09.2026
Как отключить XML sitemap в WordPress и заменить его своим
11.09.2026