На небольших и средних сайтах WordPress часто тащит на фронтенд лишние ресурсы: emoji-скрипт, стили Dashicons, а иногда и связанные с ними подключения. Сами по себе они не «ломают» сайт, но добавляют запросы и шум в исходный код. Если задача — убрать технический мусор без риска для админки, лучше делать это точечно, а не через случайные оптимизаторы.
Когда это действительно имеет смысл
Отключать emoji и Dashicons стоит не «для красоты», а когда вы уже посмотрели, что именно грузится на публичной части. Типичный сценарий: сайт на классической теме, в шапке и подвале нет иконок из Dashicons, а в HTML все равно есть подключение dashicons.min.css. Параллельно WordPress может добавлять emoji-обработчик в <head> и в футер. Для посетителя это лишняя работа браузера, а для вас — еще один слой, который надо контролировать.
Что именно отключаем
Речь идет о двух разных вещах:
- Emoji — встроенная поддержка эмодзи через скрипты и стили WordPress.
- Dashicons — иконки ядра WordPress, которые часто нужны только в админке или для авторизованных пользователей.
Если сайт использует Dashicons на фронтенде осознанно, отключать их нельзя. Если иконки нужны только в панели администратора, их можно убрать для гостей.
Диагностика: как понять, что ресурсы реально грузятся
Перед правкой проверьте исходный код и сетевые запросы. Это важнее, чем ориентироваться на советы из чужих статей.
- Откройте главную страницу сайта в браузере.
- Посмотрите исходный код страницы и найдите
wp-emoji-release.min.jsили упоминанияemoji. - Проверьте, подключается ли
dashicons.min.cssна фронтенде. - Если используете 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, потом на продакшене. И обязательно проверяйте не только скорость, но и функциональность страниц, где могут использоваться иконки или редакторские элементы.