Как отключить emoji и Dashicons на фронтенде в WordPress без поломки админки

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

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

Отключать emoji и Dashicons стоит не «для красоты», а когда вы уже посмотрели, что именно грузится на публичной части. Типичный сценарий: сайт на классической теме, в шапке и подвале нет иконок из Dashicons, а в HTML все равно есть подключение dashicons.min.css. Параллельно WordPress может добавлять emoji-обработчик в <head> и в футер. Для посетителя это лишняя работа браузера, а для вас — еще один слой, который надо контролировать.

Что именно отключаем

Речь идет о двух разных вещах:

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

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

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

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

  1. Откройте главную страницу сайта в браузере.
  2. Посмотрите исходный код страницы и найдите wp-emoji-release.min.js или упоминания emoji.
  3. Проверьте, подключается ли dashicons.min.css на фронтенде.
  4. Если используете DevTools, откройте вкладку Network и обновите страницу.

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

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

Самый предсказуемый способ — добавить код в дочернюю тему или в небольшой mu-plugin. Так вы не потеряете изменения при обновлении темы.

1. Отключаем emoji

Этот код убирает стандартные действия 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' );
    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 в WordPress. Он не трогает контент и не меняет записи в базе.

2. Убираем Dashicons для гостей

Если на фронтенде иконки не нужны, можно отключить их только для неавторизованных пользователей:

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

Здесь важно использовать приоритет 100, чтобы код сработал после того, как тема и плагины уже зарегистрировали стили. Иначе dequeue может не сработать.

3. Если нужен только один из вариантов

Иногда достаточно убрать только emoji, а Dashicons оставить. Или наоборот. Не отключайте все подряд, если не проверили зависимость темы и плагинов.

ПодходПлюсыМинусы
Код в functions.phpБыстро, прозрачно, без лишних плагиновНужно следить за обновлениями темы
Мини-плагинНе зависит от темы, удобно переноситьНужно один раз создать и поддерживать
Оптимизатор/чисткаУдобно, если уже используется для других задачЛегко отключить лишнее, если не понимать, что именно меняется

Если хотите сделать это через мини-плагин

Для продакшена часто удобнее вынести код в отдельный файл плагина. Тогда он не исчезнет при смене темы.

<?php
/**
 * Plugin Name: WPErrror Frontend Cleanup
 * Description: Отключает emoji и Dashicons на фронтенде для гостей.
 */

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

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

Такой плагин можно положить в wp-content/plugins и активировать как обычный. Для одного сайта это часто чище, чем править тему.

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

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

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

Дополнительно можно посмотреть вкладку Network: если все сделано правильно, лишние запросы исчезнут из списка загрузок. Для Dashicons важно проверить именно гостевой доступ, потому что для админов стили могут оставаться.

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

Отключили Dashicons, а на сайте пропали иконки

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

Код добавили, но в HTML ничего не изменилось

Чаще всего причина в кэше или в том, что код вставлен не туда. Проверьте:

  • используется ли активная дочерняя тема;
  • не переопределяется ли файл functions.php после обновления;
  • очищен ли кэш плагина, CDN и браузера;
  • нет ли другого плагина, который снова подключает тот же ресурс.

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

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

Путают emoji с текстовым контентом

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

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

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

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

Главный критерий здесь простой: если ресурс не нужен гостям на фронтенде, его можно убрать. Если есть сомнение в зависимости темы или плагина — сначала тест на staging, потом на продакшене. И обязательно проверяйте не только скорость, но и функциональность страниц, где могут использоваться иконки или редакторские элементы.

WooCommerce не работает отслеживание статусов заказов: причины и решение
02.10.2026
Решение ошибки WooCommerce Checkout Not Working в WordPress
13.09.2026
Как запретить индексацию отдельных страниц в WordPress через robots.txt, noindex и каноникал
12.09.2026
Как использовать хуки в WordPress для решения ошибок и кастомизации
14.09.2026
Как запретить индексацию attachment-страниц в WordPress и оставить медиа на сайте
01.09.2026