Skip to content

Всё для WordPress, веб-разработки — и не только

⚡ Как отключить dashicons.min.css и ускорить загрузку сайта на WordPress

⚡ Как отключить dashicons.min.css и ускорить загрузку сайта на WordPress

Страница тормозит, а PageSpeed Insights молча указывает на dashicons.min.css, 30 КБ иконок, которые не рисуются ни в одном видимом элементе. Вы не ставили этот файл, не подключали его в теме, но он исправно грузится каждому посетителю. Откуда он и как от него избавиться?

WordPress по умолчанию тащит dashicons на фронтенд ради одной узкой задачи: админ-бар для залогиненных пользователей. Обычный гость админ-бар не видит, но браузер честно качает CSS, парсит его, строит CSSOM и только потом понимает, что ни один класс не пригодился. На медленном мобильном интернете эти 30 КБ превращаются в лишние 300-400 мс блокирующей загрузки, достаточно, чтобы просесть в Core Web Vitals.

Ниже три способа выключить dashicons: от ручного сниппета до одной галочки в плагине оптимизации. Все методы безопасны, обратимы и проверены на реальных установках WordPress.

💡 Быстрый обзор:

  • Откройте DevTools или PageSpeed Insights и убедитесь, что dashicons.min.css действительно грузится на вашем сайте
  • Выберите подходящий способ отключения, код в functions.php или готовый плагин оптимизации
  • Повторно протестируйте скорость и проверьте, что файл исчез из отчёта
  • Убедитесь, что админ-бар администратора продолжает работать без ошибок

Что такое dashicons и зачем они грузятся на фронтенде

Dashicons, встроенный иконочный шрифт WordPress, появившийся в версии 3.8. В админ-панели он повсюду: иконки разделов меню, типов записей, кнопок тулбара. Без dashicons админка превращается в голый текст, и WordPress не может от них отказаться.

Проблема в механизме регистрации. Ядро регистрирует стили dashicons глобально и добавляет их в очередь не только для админки, но и для фронтенда, ради единственного сценария: залогиненный пользователь заходит на сайт и видит чёрную полоску админ-бара с иконками. Гость админ-бар не получает, а CSS-файл получает. Браузер парсит его, обнаруживает, что ни один селектор не совпал, и выкидывает в мусор, но время уже потрачено.

PageSpeed Insights и GTmetrix фиксируют dashicons.min.css в рекомендации «Remove unused CSS» и срезают баллы. Один такой файл, мелочь. Но когда к нему добавляются emoji-стили WordPress, CSS неиспользуемых плагинов и мёртвые блоки темы, суммарная экономия достигает 150-300 КБ. Для мобильной производительности это ощутимо.

Отчёт PageSpeed Insights с предупреждением о неиспользуемом CSS dashicons

Как проверить, что dashicons грузится на вашем сайте

Прежде чем что-то отключать, убедитесь, что проблема есть. Три способа, меньше минуты каждый.

Chrome DevTools. Откройте сайт в режиме инкогнито (чтобы админ-бар не влиял на проверку), нажмите F12, вкладка Network, в строке фильтра введите dashicons. Видите файл со статусом 200 и размером около 30 КБ, он грузится для всех посетителей.

PageSpeed Insights. Вставьте URL в pagespeed.web.dev и запустите тест. Раскройте рекомендацию «Remove unused CSS», dashicons.min.css будет в списке с указанием размера и потенциальной экономии в килобайтах.

GTmetrix. Вкладка Waterfall, фильтр по dashicons. Файл в цепочке загрузки с пометкой «Low» или «Lowest» всё равно блокирует рендеринг и тянет оценку вниз.

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

Способ 1: отключаем через код в functions.php

Самый лёгкий и прозрачный метод, один сниппет в functions.php активной темы. Код снимает dashicons с регистрации для всех посетителей без прав администратора. Тем, кто администрирует сайт, оставляем, админ-бар в админке не пострадает.

Добавьте этот код в functions.php дочерней темы или через плагин Code Snippets (безопаснее, переживёт смену темы):

1/**
2 * Отключаем dashicons.min.css на фронтенде для всех,
3 * кроме пользователей с правами администратора.
4 */
5function sdstudio_disable_dashicons_frontend() {
6 if ( current_user_can( 'update_core' ) ) {
7 return;
8 }
9 wp_deregister_style( 'dashicons' );
10}
11add_action( 'wp_enqueue_scripts', 'sdstudio_disable_dashicons_frontend' );

Хук wp_enqueue_scripts срабатывает при формировании очереди стилей на фронтенде. current_user_can('update_core') проверяет право на обновление ядра, по умолчанию оно есть только у администраторов. Для обычных посетителей проверка не проходит, и wp_deregister_style('dashicons') полностью удаляет файл из очереди.

Почему deregister, а не dequeue. wp_dequeue_style убирает стиль из очереди, но оставляет его зарегистрированным, другой плагин может повторно добавить dashicons в вывод. wp_deregister_style снимает регистрацию целиком, и восстановить файл можно только явным вызовом wp_register_style. Для dashicons это правильный выбор: мы не хотим, чтобы плагин соцсетей или галереи случайно вернул их на фронтенд.

Меры предосторожности. Ошибка в functions.php кладёт сайт белым экраном. Перед правкой скопируйте файл в functions.php.bak для быстрого отката. Используйте дочернюю тему или Code Snippets. Проверьте синтаксис: каждая скобка и точка с запятой на своём месте.

Способ 2: плагины оптимизации, одна галочка вместо кода

Не хотите трогать PHP, ту же задачу решают плагины производительности.

Perfmatters. В разделе General → Options есть переключатель «Disable Dashicons». Один клик, и файл исчезает с фронтенда. Perfmatters также исключает dashicons из Used CSS в функции Remove Unused CSS, то есть проблема закрывается двойным контуром. Плагин платный, но закрывает десятки других узких мест производительности, от отключения emoji-стилей до управления heartbeat API.

WP Rocket. В разделе File Optimization → Optimize CSS Delivery включите «Remove Unused CSS». WP Rocket проанализирует страницы и вырежет неиспользуемые стили, включая dashicons.min.css. Работает автоматически для всего сайта. Если Remove Unused CSS конфликтует с другой оптимизацией, добавьте dashicons.min.css в список исключений, WP Rocket отложит его загрузку вместо полного удаления.

Asset CleanUp (бесплатный). Плагин Asset CleanUp позволяет выборочно отключать CSS и JS на уровне отдельных страниц и типов контента. Зайдите в CSS/JS Manager, найдите dashicons.min.css и выгрузите его для всего сайта. Бесплатной версии хватает для базовой очистки.

Какой способ выбрать? Если уже стоит Perfmatters или WP Rocket, используйте встроенную функциональность, не плодите код в functions.php. Если сайт на минимальном наборе плагинов и вам комфортно в PHP, сниппет из способа 1 легче и не тянет зависимостей.

Проверяем результат

После отключения dashicons откройте сайт в режиме инкогнито и повторите проверку из второго раздела. Файл dashicons.min.css должен исчезнуть из списка загруженных ресурсов в DevTools. Запустите повторный тест в PageSpeed Insights, показатель «Remove unused CSS» уменьшится, а потенциальная экономия трафика вырастет на те самые 30 КБ.

Реальный прирост в баллах зависит от стека. На лёгких сайтах с одной-двумя CSS-проблемами отключение dashicons добавляет 1-3 балла в мобильном PageSpeed. На раздутых сайтах с десятками неиспользуемых стилей это капля, но правильная: каждый килобайт на счету, и такие «капли» в сумме дают ощутимый результат.

Обязательно проверьте админ-бар: залогиньтесь под администратором и убедитесь, что чёрная полоска сверху отображается нормально, а иконки в ней на месте. Код из способа 1 и переключатель в Perfmatters оставляют dashicons для администраторов нетронутыми, разницы вы не заметите.

⁉️🤔 Частые вопросы

Повлияет ли отключение dashicons на внешний вид сайта?

Если ваша тема использует dashicons для иконок на фронтенде, стрелочки слайдера, крестики закрытия, меню-гамбургер, отключение сломает их. Проверить просто: отключите файл и пройдитесь по страницам. Иконки исчезли, тема опирается на dashicons. В этом случае используйте агрессивное кэширование через Cloudflare или плагин кэша: 30 КБ из браузерного кэша не критичны.

Работает ли метод с блочными темами (FSE)?

В блочных темах, Twenty Twenty-Four, Ollie и аналогичных, dashicons чаще всего не грузятся на фронтенд. Блочный редактор использует собственные SVG-иконки, и ядро не подключает иконочный шрифт для посетителей. Проверьте через DevTools: скорее всего файла там нет. Если обнаружили, код из способа 1 работает одинаково для классических и блочных тем.

Можно ли отключить dashicons только для части страниц?

Да, через условные теги WordPress. Например, оставить dashicons только на главной:

1function sdstudio_conditional_dashicons() {
2 if ( is_front_page() ) {
3 return;
4 }
5 if ( current_user_can( 'update_core' ) ) {
6 return;
7 }
8 wp_deregister_style( 'dashicons' );
9}
10add_action( 'wp_enqueue_scripts', 'sdstudio_conditional_dashicons' );

Все доступные условные теги описаны в документации WordPress. Среди них is_single для отдельных записей, is_page для страниц, is_archive для архивов и is_home для главной.

Плагин кэша уже ускоряет сайт, dashicons всё равно отключать?

Кэширующий плагин ускоряет повторные загрузки, но первый холодный визит всё равно тянет dashicons.min.css. PageSpeed Insights при каждом тесте эмулирует чистый кэш, поэтому файл будет в отчёте независимо от кэша на сервере. Отключение dashicons сокращает объём передаваемых данных на уровне источника, это видят и метрики, и реальные посетители при первом входе.

Достаточно ли отключения dashicons для хорошей оценки PageSpeed?

Нет, это лишь один шаг из десятков. Основной выигрыш обычно дают оптимизация изображений (сжатие, современные форматы, lazy load), отложенная загрузка JavaScript и серверное кэширование. Воспринимайте отключение dashicons как гигиенический минимум: быстро, безопасно и с измеримым эффектом. С него удобно начинать расчистку фронтенда.

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

Короткий итог по трём способам и конкретные сценарии.

Если вы работаете с кодом и сайт на облегчённом стеке, берите сниппет из способа 1. Две минуты на вставку в functions.php или Code Snippets, и вопрос закрыт навсегда. Никаких дополнительных плагинов, никакой нагрузки на админку.

Если уже платите за Perfmatters или WP Rocket, включите готовую опцию и не создавайте лишних сущностей. Эти плагины заодно решают ещё десяток проблем производительности, и дополнительный код в теме только усложнит поддержку.

Если нужен бесплатный инструмент без правки PHP, Asset CleanUp справляется за два клика. Подойдёт новичкам и тем, кто не хочет рисковать с functions.php.

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

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