Как отключить emoji в WordPress без лишних плагинов

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

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

Когда отключение emoji действительно имеет смысл

Речь не про «ускорить сайт на магические проценты», а про чистку лишнего системного кода. На практике это полезно, если вы:

  • собираете сайт с упором на минимальный фронтенд;
  • используете строгую оптимизацию CSS/JS и хотите убрать ненужные inline- и внешние подключения;
  • видите в исходнике страницы wp-emoji-release.min.js и хотите понять, можно ли без него обойтись;
  • поддерживаете корпоративный сайт, где emoji не нужны как часть контента.

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

Диагностика: что именно грузит WordPress

Перед правкой проверьте, есть ли на сайте типичные следы emoji-поддержки. Откройте исходный код страницы и найдите:

  • wp-emoji-release.min.js;
  • inline-скрипт с проверкой поддержки emoji;
  • дополнительные фильтры в wp_head и admin_print_scripts.

Если используете инструменты разработчика в браузере, посмотрите вкладку Network. На части сайтов скрипт emoji может не бросаться в глаза из-за кеша, но в HTML он всё равно присутствует.

Ещё один практический признак: если вы уже чистите сайт через оптимизатор и видите, что он пытается «удалить emoji» отдельной настройкой, значит функциональность действительно присутствует и её можно убрать на уровне темы или мини-плагина.

Что отключать: не только скрипт, но и фильтры

Одна ошибка — убрать только один файл и оставить остальную обвязку. Правильнее отключить и скрипт, и связанные с ним фильтры для фронтенда, админки, RSS и email.

Для этого достаточно добавить код в functions.php дочерней темы или, что надёжнее, в небольшой mu-plugin.

Вариант через functions.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' );
} );

Этот вариант рабочий, но у него есть минус: если тема или плагин поздно добавляют свои действия, вы можете не попасть в нужный момент. На практике чаще надёжнее использовать after_setup_theme или mu-plugin, если сайт большой и с кучей расширений.

Вариант через mu-plugin

Создайте файл, например wp-content/mu-plugins/disable-emoji.php. Если папки mu-plugins нет, её нужно создать вручную.

<?php
/**
 * Plugin Name: Disable Emoji
 */

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' );
} );

mu-plugin удобнее тем, что он не зависит от активной темы и не исчезнет после смены шаблона.

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

ПодходЧто даётМинус
Код в теме или mu-pluginТочный контроль, без лишних зависимостейНужно не ошибиться с местом и хуком
Оптимизатор/плагин чисткиБыстро включить без правки файловЕщё один плагин в стек, возможны пересечения с кешем
Ничего не делатьНоль риска для совместимостиОстаётся лишний системный код

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

Пошаговое решение без плагина

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

Если сайт использует агрессивную оптимизацию JS, после правки лучше сбросить и минификацию, чтобы старые объединённые файлы не скрывали результат проверки.

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

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

  • Откройте главную страницу в режиме просмотра исходника.
  • Найдите wp-emoji-release.min.js — его быть не должно.
  • Проверьте, исчезли ли emoji-стили и inline-скрипт в <head>.
  • Зайдите в админку и убедитесь, что редактор и комментарии работают как раньше.
  • Если сайт отправляет письма через WordPress, проверьте, что письма приходят без визуальных артефактов.

Для более точной проверки можно открыть DevTools → Network и обновить страницу с отключённым кешем браузера. Если запросов к emoji-скрипту нет, задача решена.

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

Код добавили, но скрипт остался

Обычно это значит, что код вставили слишком поздно или не туда. Проверьте, что используете init или after_setup_theme, а не код внутри шаблона страницы. Если тема сама подключает похожие действия, убедитесь, что вы не удаляете несуществующий хук.

Проверяли только страницу, но не админку

WordPress может грузить emoji-обвязку и в админке. Это не критично для фронтенда, но если вы хотите убрать её полностью, нужно отключать и admin_print_scripts, и admin_print_styles.

Сломали письма или RSS

Такое бывает, если удалили только фронтенд-часть и оставили фильтры для контента, комментариев и email в странном состоянии. Используйте полный набор remove_filter, а не выборочные правки без понимания цепочки.

Поставили плагин, который делает то же самое

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

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

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

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

Оптимизация работы плагинов WordPress: как ускорить сайт и уменьшить нагрузку
02.10.2026
Как убрать дубли страниц пагинации в WordPress и сохранить полезные разделы
06.10.2026
Как закрыть страницы поиска WordPress от индексации и убрать мусорные дубли
06.09.2026
Как создать мультиязычный сайт на WordPress без плагинов
30.09.2026
Как автоматически отключать обновления тем в WordPress
02.10.2026