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

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

Ниже — рабочий способ без плагинов, с проверкой результата и типичными ошибками, из-за которых emoji потом «возвращаются» после обновления темы или плагина.

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

Сценарий простой: сайт работает на русском языке, встроенные emoji WordPress не нужны, а в исходном коде страницы видны подключения wp-emoji-release.min.js и inline-скрипт с проверкой поддержки emoji. Если вы ведёте корпоративный сайт, блог или документацию, эти элементы обычно не несут пользы.

Важно понимать границу: речь не о запрете emoji как символов в контенте. Пользователи по-прежнему смогут вставлять обычные Unicode-символы, если они поддерживаются шрифтами и браузером. Мы отключаем только старую служебную обвязку WordPress для совместимости с очень старыми браузерами.

Что именно убирается

  • подключение скрипта wp-emoji-release.min.js;
  • инлайн-скрипт, который добавляет классы в <html>;
  • фильтр на загрузку emoji в админке и на фронтенде;
  • лишние запросы, которые появляются только ради этой совместимости.

Диагностика: как понять, что emoji реально грузятся

Перед правкой проверьте исходный код страницы и сетевые запросы. Это быстрее, чем гадать по ощущениям.

  1. Откройте любую публичную страницу сайта.
  2. Посмотрите исходный код через «Просмотр кода страницы».
  3. Найдите wp-emoji-release.min.js или emoji в <head>.
  4. Откройте DevTools → Network и обновите страницу.
  5. Проверьте, есть ли запрос к /wp-includes/js/wp-emoji-release.min.js.

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

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

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

Вариант через functions.php

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

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

Вариант через мини-плагин

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

<?php
/**
 * Plugin Name: Disable WP Emoji
 * Description: Отключает emoji-скрипты и стили WordPress.
 * Version: 1.0.0
 */

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

Файл можно положить в wp-content/plugins/disable-wp-emoji/disable-wp-emoji.php и активировать как обычный плагин.

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

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

Проверка результата после внедрения

После добавления кода не ограничивайтесь визуальной проверкой. Нужна проверка в исходнике и в сети.

  • Откройте страницу и убедитесь, что в <head> больше нет print_emoji_detection_script.
  • В Network проверьте отсутствие запроса к wp-emoji-release.min.js.
  • Откройте админку и редактор записей: интерфейс должен работать как раньше.
  • Проверьте RSS-ленту и письмо из формы, если на сайте есть такие сценарии.

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

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

Код добавили в родительскую тему

При обновлении темы правка исчезнет. Перенесите код в дочернюю тему или в мини-плагин.

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

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

Проверяют не ту страницу

На главной может быть кешированная версия, а на внутренней — уже новая. Сравнивайте несколько страниц и обязательно очищайте кеш.

Путают emoji WordPress и emoji в контенте

Отключение служебного скрипта не запрещает вставку Unicode-символов. Если в тексте отображаются квадраты вместо emoji, проблема обычно в шрифтах темы, а не в этом коде.

Что ещё стоит проверить вместе с этой правкой

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

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

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

Как подключить локальный Font Awesome в WordPress через Webfont Loader без конфликтов
13.08.2026
Оптимизация загрузки иконок в WordPress с помощью ленивой загрузки (lazy load)
30.12.2025
Как отключить oEmbed в WordPress и убрать лишние запросы без плагинов
26.08.2026
Как создать собственный виджет с иконками в WordPress
30.11.2025
Как создать динамические иконки с разными размерами в WordPress
24.01.2026