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

На небольших и средних сайтах WordPress часто тянут за собой лишние ресурсы не только темы и плагины, но и стандартные функции ядра. Две типичные вещи — emoji-скрипты и Dashicons на фронтенде. Они редко нужны посетителю, зато добавляют запросы, а иногда мешают чистой оптимизации.

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

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

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

  • корпоративных сайтов и лендингов;
  • блогов без кастомных иконок на базе Dashicons;
  • магазинов, где фронтенд строится на своей иконографике;
  • проектов, где уже подключён отдельный набор иконок.

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

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

Перед изменениями откройте страницу сайта в браузере и посмотрите исходный код или вкладку Network. Ищите такие признаки:

  • скрипт wp-emoji-release.min.js;
  • стили или шрифты Dashicons, подключённые на фронтенде;
  • лишние запросы к /wp-includes/js/wp-emoji-release.min.js;
  • подключение dashicons.min.css для обычных посетителей.

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

Что проверить до правки кода

  • Есть ли на сайте старые записи, где emoji используются как часть контента.
  • Использует ли тема иконки Dashicons в меню, кнопках или виджетах.
  • Есть ли плагины, которые добавляют свои элементы интерфейса через Dashicons на фронтенде.
  • Есть ли кэширование страниц — после правки его придётся сбросить.

Пошаговое решение через functions.php или мини-плагин

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

1. Отключаем emoji-скрипты WordPress

WordPress подключает emoji через набор стандартных действий. Их можно снять на init. Код ниже убирает скрипты и стили emoji с фронтенда и из админки, если они вам не нужны вообще. Если хотите оставить 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' );
} );

Для большинства сайтов этого достаточно. После сохранения очистите кэш и проверьте исходный код страницы.

2. Убираем Dashicons с фронтенда

Dashicons нужны в админке WordPress, но на публичной части сайта часто не используются. Безопасный вариант — отключить их только для неавторизованных посетителей.

add_action( 'wp_enqueue_scripts', function () {
    if ( ! is_user_logged_in() ) {
        wp_deregister_style( 'dashicons' );
    }
}, 100 );

Здесь важно именно wp_deregister_style(), а не полное удаление из системы. Админка и авторизованные пользователи продолжат работать как обычно.

3. Если нужен более точный контроль

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

add_action( 'wp_enqueue_scripts', function () {
    if ( ! is_user_logged_in() && ! is_page( 'profile' ) ) {
        wp_deregister_style( 'dashicons' );
    }
}, 100 );

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

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

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

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

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

  • В исходном коде не должно быть wp-emoji-release.min.js.
  • В Network не должно быть запроса к emoji-скрипту.
  • На фронтенде не должен подключаться dashicons.min.css для гостя.
  • Админка должна открываться без визуальных ошибок.
  • Если используете кэш-плагин или серверный кэш, очистите его и проверьте повторно.

Дополнительно можно открыть страницу с авторизованной сессией и убедиться, что Dashicons по-прежнему доступны там, где они нужны. Это особенно важно, если вы оставили условие is_user_logged_in().

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

Отключили emoji, но скрипт всё равно остался

Частая причина — код добавили слишком поздно или в файл, который не загружается на нужном этапе. Проверьте, что функция подключена через init, а не после вывода wp_head. Также убедитесь, что нет другого плагина, который снова добавляет emoji-скрипт.

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

Это почти всегда означает, что тема использовала Dashicons на фронтенде. Верните подключение и ограничьте отключение только для страниц, где иконки не нужны. Если иконки используются в меню или кнопках, лучше заменить их на SVG или собственный набор иконок.

После правки ничего не изменилось

Скорее всего, мешает кэш. Очистите кэш плагина, серверный кэш и, если есть, CDN. Затем откройте страницу в приватном окне. Без этого легко получить ложное ощущение, что код не работает.

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

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

Практические советы по безопасности и производительности

Не отключайте стандартные функции WordPress «на всякий случай». Если сайт работает с внешними интеграциями, редакторами, визуальными конструкторами или сторонними плагинами, сначала проверьте зависимость. С точки зрения производительности выигрыш от удаления emoji и Dashicons обычно небольшой, но на сайтах с большим количеством страниц и строгими требованиями к чистоте фронтенда это полезная оптимизация.

  • Храните такие правки отдельно от шаблонов верстки.
  • Не отключайте Dashicons глобально, если не проверили тему и плагины.
  • После обновления ядра WordPress перепроверьте, не вернулось ли подключение через другой код.
  • Если оптимизацией занимается несколько плагинов, не включайте одинаковые функции в двух местах сразу.

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

Как создать динамическую функцию фильтра по мета полям в WordPress
06.03.2026
WooCommerce: как автоматически удалять незавершённые заказы
01.05.2026
Как использовать хуки в WordPress для расширения функциональности сайта
14.12.2025
Как отключить комментарии на отдельных страницах WordPress
10.04.2026
Как создать автоматическую систему отключения плагинов в WordPress при ошибках
04.04.2026