Dashicons — это встроенный набор иконок WordPress. В админке он нужен, но на публичной части сайта часто продолжает грузиться даже тогда, когда тема и плагины его не используют. На небольшом сайте это выглядит как мелочь, но на практике лишний CSS-файл и дополнительные запросы легко всплывают в отчётах по производительности и в ручной проверке фронтенда.
Задача здесь не в том, чтобы «вырубить всё лишнее», а в том, чтобы отключить Dashicons только для гостей на фронтенде и не сломать админку, кастомайзер или элементы, которые реально завязаны на эти иконки.
Когда Dashicons можно отключать, а когда нет
Если иконки используются только в панели управления, отключение на публичной части обычно безопасно. Но перед правкой стоит проверить тему и активные плагины. Иногда Dashicons подключают:
- в меню пользователя или в верхней панели;
- в виджетах и блоках темы;
- в кастомных элементах интерфейса, которые видны гостям;
- в плагинах для фронтенд-форм, рейтингов или личного кабинета.
Если на сайте есть такие зависимости, отключение нужно делать точечно и с проверкой на конкретных шаблонах, а не «по всему сайту без разбора».
Диагностика: как понять, что Dashicons грузится лишний раз
Откройте главную страницу сайта в браузере без авторизации и посмотрите исходный код или вкладку Network. Ищите файл dashicons.min.css или подключение стиля с handle dashicons. Если файл загружается для обычного посетителя, а иконки на странице не используются, это кандидат на отключение.
Полезно сравнить два сценария:
- гость без входа в админку;
- авторизованный администратор.
Если Dashicons нужен только во втором случае, его можно убрать для первого. Это нормальная и безопасная оптимизация.
Пошаговое решение через functions.php или мини-плагин
Надёжнее всего не править ядро и не лезть в плагины, а добавить небольшой код в functions.php дочерней темы или в отдельный mu-plugin. Так правка не потеряется после обновления темы.
Вариант 1: отключить Dashicons только для гостей на фронтенде
<?php
add_action( 'wp_enqueue_scripts', function () {
if ( is_admin() || is_user_logged_in() ) {
return;
}
wp_deregister_style( 'dashicons' );
}, 100 );Что делает этот код:
- не трогает админку;
- не отключает иконки для авторизованных пользователей;
- снимает регистрацию стиля на фронтенде для гостей.
Если тема или плагин подключают Dashicons в публичной части, этот способ может убрать иконки вместе со стилями. Поэтому после внедрения обязательно проверьте страницы, где есть пользовательские элементы интерфейса.
Вариант 2: отключить только подключение, если стиль уже зарегистрирован
Иногда безопаснее не дерегистрировать стиль, а снять его вывод на фронтенде. Это полезно, если другой код ожидает, что handle останется зарегистрированным.
<?php
add_action( 'wp_print_styles', function () {
if ( is_admin() || is_user_logged_in() ) {
return;
}
wp_dequeue_style( 'dashicons' );
}, 100 );На практике оба варианта часто дают похожий результат. Если сомневаетесь, начинайте с wp_dequeue_style(): он мягче и реже ломает связанный код.
Сравнение подходов
| Подход | Когда использовать | Риск |
|---|---|---|
| Код в теме | Если нужен быстрый точечный фикс | Может потеряться при смене темы |
| Мини-плагин / mu-plugin | Если оптимизация должна жить независимо от темы | Нужно один раз аккуратно оформить |
| Плагин оптимизации | Если уже используете его для чистки фронтенда | Не всегда есть точечный контроль именно для Dashicons |
Если у вас уже стоит плагин для технической чистки, например Clearfy Pro, проверьте, нет ли там отдельной опции для отключения лишних стилей на фронтенде. Но если нужен предсказуемый результат, код обычно прозрачнее.
Проверка результата после внедрения
После добавления кода откройте сайт в режиме инкогнито и проверьте три вещи:
- В исходном коде страницы больше нет подключения
dashicons.min.cssдля гостей. - Вкладка Network не показывает запрос к Dashicons при загрузке страницы.
- Визуально не сломались элементы интерфейса, которые могли использовать иконки.
Дополнительно проверьте:
- главную страницу;
- запись или страницу с нестандартным шаблоном;
- страницы, где есть формы, личный кабинет, комментарии, кнопки шаринга.
Если на части страниц иконки пропали, значит тема или плагин действительно использовали Dashicons на фронтенде. В этом случае лучше не отключать стиль глобально, а искать конкретный шаблон или блок, который его тянет.
Частые ошибки и как их исправить
Отключили Dashicons в админке
Такое обычно происходит, если код повесили не на фронтенд, а без проверки is_admin(). Исправление простое: ограничьте отключение только публичной частью сайта.
Сломались иконки в меню или в личном кабинете
Значит, тема или плагин использовали Dashicons на фронтенде. Не отключайте стиль глобально. Проверьте, где именно подключается иконка, и оставьте стиль на нужных шаблонах.
Код добавили в родительскую тему
После обновления тема может перезаписаться. Для таких правок лучше использовать дочернюю тему или мини-плагин.
Проверяли только залогиненным пользователем
Для администратора Dashicons часто остаётся доступным, поэтому тест в авторизованной сессии не показывает реальную картину для обычного посетителя. Обязательно проверяйте в инкогнито.
Что ещё стоит проверить вместе с Dashicons
Если вы уже занимаетесь чисткой фронтенда, имеет смысл посмотреть и на другие встроенные ресурсы WordPress. Но не отключайте всё подряд. Сначала смотрите фактическую загрузку в Network, потом принимайте решение.
- неиспользуемые стили темы на отдельных шаблонах;
- скрипты плагинов, которые выводятся на всех страницах;
- лишние блоки редактора, которые тащат свои ассеты на фронтенд;
- кеширование страниц и корректность заголовков ответа.
Если нужен более системный подход к технической чистке, удобно держать под рукой инструменты, которые помогают отключать лишние функции без ручного редактирования десятков файлов. Но конкретно Dashicons проще и надёжнее контролировать кодом, потому что сценарий здесь очень узкий.
Короткий чек-лист перед публикацией правки
- Проверил, используется ли Dashicons на фронтенде.
- Добавил код не в родительскую тему, а в безопасное место.
- Протестировал сайт в инкогнито.
- Сравнил главную, внутреннюю страницу и шаблоны с формами.
- Убедился, что админка и кастомайзер работают как раньше.
Если после отключения Dashicons страница стала чище, а визуально ничего не сломалось, значит задача решена правильно: вы убрали лишний ресурс только там, где он действительно не нужен.