Как отключить Dashicons в WordPress на фронтенде и не сломать иконки?

otklyuchit dashicons wordpress frontend cover Без рубрики
Пошагово: DevTools и PageSpeed, код с is_user_logged_in, dequeue и deregister, Perfmatters, чеклист Network и что делать при квадратиках в меню.

Владелец студии по ремонту вставил с форума код без проверки логина: PageSpeed у гостей позеленел, а у него пропали иконки в чёрной панели WordPress — откат темы из бэкапа. Та же боль: в Network виден dashicons.min.css, а страшно трогать functions.php. Ниже отключите лишний CSS только для гостей, проверьте инкогнито и после входа убедитесь, что панель снова с иконками.

Dashicons — иконочный шрифт админки WordPress; файл dashicons.min.css в ядре весит около 59 KB несжатым и часто ~30 KB по сети с gzip. Гостям эти иконки на публичных страницах обычно не нужны, но плагины подключают стиль «на всякий случай». Безопасный приём: на хуке wp_enqueue_scripts с приоритетом 100 снять handle dashicons только если посетитель не залогинен. У авторизованных пользователей стиль нужен панели администратора на фронте — у неё зависимость от dashicons в ядре.

Микро-оптимизация без магии: один CSS, который гость не использует, убираем аккуратно. Выигрыш умеренный, зато минус блокирующий запрос в PageSpeed — такой результат вы сможете увидеть в Network за один вечер. В WordPress 7.2 в админ-UI планируют SVG, но stylesheet Dashicons останется для плагинов с классом dashicons-* — ждать обновления не стоит.

Разберите, зачем dashicons.min.css грузится на страницах для клиентов

Dashicons — это набор пиктограмм для панели /wp-admin: корзина, карандаш, шестерёнка. Файл лежит в ядре по пути /wp-includes/css/dashicons.min.css, WordPress регистрирует его под именем handle dashicons. На практике стиль попадает в head даже у анонимного посетителя, потому что тема или плагин объявил зависимость или просто подключил «про запас».

Для сайта услуг, салона или небольшого магазина контент обычно из своих картинок, SVG в блоках или иконок темы — не из шрифта админки. Типичная ошибка: думать, что раз файл из ядра, его нельзя трогать. Ядро не ломается — вы лишь говорите «гостям этот CSS не отдавать». Параллельно имеет смысл убрать и другой «балласт», например лишние emoji-скрипты WordPress — там та же логика лишнего в head.

Схема на карточках на том же светлом столе: откуда dashicons.min.css попадает гостю

Найдите dashicons.min.css в DevTools и PageSpeed за пять минут

Боль «не знаю, есть ли проблема» снимается проверкой без плагинов.

  1. Шаг 1: откройте главную сайта в режиме инкогнито (гость) или выйдите из WordPress.
  2. Нажмите F12 → вкладка Network (Сеть), включите «Disable cache» / отключить кэш.
  3. Обновите страницу и в фильтре введите dashicons.
  4. Если видите dashicons.min.css со статусом 200 — файл реально тянется гостю; повторите на одной внутренней (услуга, статья, контакты), не только на главной.

В PageSpeed тот же файл может попасть в блокирующие ресурсы — это сигнал убрать лишнее, не приговор сайту. Запишите URL, где dashicons есть, перед правкой.

Чеклист DevTools и PageSpeed на светлом столе: найти dashicons.min.css за пять минут

Отключите Dashicons только для гостей через дочернюю тему или сниппет

Страх «сломаю админку» закрывается одним условием: проверять, залогинен ли пользователь. Официальная функция is_user_logged_in() возвращает false для гостя — именно тогда можно снять стиль с очереди через wp_dequeue_style.

Куда вставить код (выберите один путь): используйте дочернюю тему, если она уже есть, или бесплатный плагин с фрагментами PHP.

  • Дочерняя тема: файл functions.php в дочерней теме (не в родительской — обновление темы сотрёт правки).
  • Плагин Code Snippets или аналог: новый сниппет PHP, выполнение «только на фронте», без галочки «админка».
  • MU-плагин в wp-content/mu-plugins/ — если сниппеты не используете; файл должен начинаться с <?php.

Эталонный фрагмент для вставки (скопируйте целиком):

add_action( ‘wp_enqueue_scripts’, ‘smartdm_dequeue_dashicons_guests’, 100 );
function smartdm_dequeue_dashicons_guests() {
if ( is_user_logged_in() ) {
return;
}
wp_dequeue_style( ‘dashicons’ );
}

Приоритет 100 — после enqueue плагинов. Если файл всё равно в Network, добавьте wp_deregister_style( ‘dashicons’ ); после dequeue. Не делайте dequeue без is_user_logged_in() — сделайте сначала бэкап functions.php, потом вставку: иначе пропадает панель на фронте.

Стикер с кодом dequeue dashicons для гостей и метка дочерней темы на том же столе

Сравните dequeue, deregister и галочку в плагине

Способ Кому подходит Риск
wp_dequeue_style + is_user_logged_in Владелец с дочерней темой или Code Snippets Низкий при проверке панели после входа
+ wp_deregister_style Файл снова появляется в Network после dequeue Средний: не отключайте у залогиненных
Perfmatters → Disable Dashicons Уже платите за плагин, PHP не трогаете Низкий на фронте для гостей по документации
Плагин «отключить везде» Не рекомендуем Иконки могут пропасть и в /wp-admin

Схема проверки после правки:
Инкогнито → Network без dashicons.min.css → главная и внутренняя → форма заявки → вход под своим логином → панель сверху с иконками → при «квадратиках» в меню откат сниппета

Без PHP: Perfmatters → Disable Dashicons (фронт для гостей). Не ставьте плагины, режущие Dashicons в /wp-admin. Рядом помогут gzip и кеш — другой лишний вес, не замена dequeue.

Узнайте, когда Dashicons на фронте всё же нужен

Боль «отключил — пропали иконки» значит: тема или плагин на публичной части использует классы dashicons-* в меню, кнопках или виджетах. Тогда файл гостям нужен, оптимизация здесь не универсальна.

*Instagram,Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ)

Как понять за пару минут:

  • После отключения пройдитесь по главной, услугам, блогу, мобильной вёрстке — нет ли пустых квадратиков вместо стрелок и иконок.
  • Если квадратики есть — откатите сниппет и оставьте dashicons.min.css для гостей или замените иконки в теме на SVG/картинки (отдельная задача).
  • Чёрная панель WordPress на фронте видна только залогиненным — для них стиль не отключаем.

Gutenberg с SVG и социконки темы от Dashicons не зависят. Про чёрную панель сверху — отдельно: скрыть admin bar для гостей.

Не сломайте кеш, CDN и страницу входа

После любой правки сбросьте кеш страницы в плагине кеширования и в CDN, если сайт через Cloudflare или аналог. Иначе проверка в инкогнито покажет старую версию head, и кажется, что код «не работает».

Чеклист на один заход:

  1. Сохраните бэкап functions.php или экспорт сниппета.
  2. Вставьте гостевой код с приоритетом 100.
  3. Инкогнито: Network без dashicons.min.css на главной и одной записи.
  4. Проверьте форму заявки и кнопки — без квадратиков.
  5. Войдите под своим логином: dashicons.min.css снова в Network, иконки панели на месте.
  6. Откройте /wp-login.php — страница входа не должна «поехать» (редко, но при агрессивном deregister у всех проверьте).

Критерий успеха и ориентир результата: у гостя в Network нет dashicons.min.css, после входа файл снова есть и панель с иконками, меню и формы без квадратиков — настройте проверку так и уберите сниппет, если квадратики вернулись. Шрифты темы — локально на WordPress.

Сайт под заявки без риска на боевом домене — услуги или форма (MAX, VK, WhatsApp, Telegram). Вопросы — Telegram. Ещё гайды — /stati/.

Материал проверен: Андрей Дикий (создаёт сайты и продвигает их статьями, SEO/GEO).
Откуда факты: WordPress Developer (wp_dequeue_style, wp_enqueue_scripts, is_user_logged_in, is_admin_bar_showing), ресурс Dashicons, Make WordPress Core (Replacing Dashicons, Roadmap 7.2, сентябрь 2026), script-loader.php в wordpress-develop, Stack Exchange #161476, документация Perfmatters Remove Dashicons, wpseek по размеру dashicons.min.css; частотность запросов — по Яндекс Вордстат на 2026-10-05 (MCP недоступен, LSI из SERP).

Частые вопросы

Безопасно ли отключать dashicons на WordPress для гостей?

Да, если используете проверку is_user_logged_in() и после правки проходите чеклист: инкогнито без файла в Network, после входа панель с иконками, нет квадратиков в меню темы. Без условия логина легко сломать admin bar на фронте у редакторов.

Влияет ли отключение на админку /wp-admin?

Код на wp_enqueue_scripts для публичной части не должен трогать экраны админки, если сниппет не помечен «run in admin». Плагины, которые отключают Dashicons глобально, могут испортить иконки в панели управления — их лучше не ставить.

Нужен ли отдельный плагин, чтобы убрать dashicons.min.css?

Нет. Достаточно дочерней темы или бесплатного сниппета с dequeue. Perfmatters — платная альтернатива одной галочкой. Выбор зависит от того, платите ли вы уже за плагин и боитесь ли PHP.

Пропадут ли иконки в меню на сайте?

Только если тема или плагин на фронте рисуют пункты меню классами dashicons-*. Тогда откатите отключение или замените иконки в теме. Большинство бизнес-тем используют свои SVG или спрайты.

Что такое dashicons.min.css простыми словами?

Это сжатый CSS-файл со шрифтом иконок админки WordPress. Браузер качает его, даже если гость никогда не видит эти пиктограммы — отсюда лишний вес и строка в PageSpeed.

Исчезнут ли Dashicons после обновления WordPress 7.2?

В админ-меню и admin bar планируют SVG, но stylesheet для расширений с классом dashicons-* должен остаться по обсуждению в тикете #65387. Отключение на фронте для гостей останется актуальным.

Чем dequeue отличается от deregister?

Dequeue снимает стиль с очереди на этой странице. Deregister удаляет регистрацию handle — плагин не сможет снова подключить тот же handle без повторной регистрации. Сначала пробуйте dequeue с проверкой логина; deregister добавляйте, если файл всё равно возвращается в Network.

*Instagram,Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ)
Новый маркетинг с искусственным интеллектом
Добавить комментарий