На небольших и средних сайтах WordPress часто всплывает одна и та же проблема: в исходном коде остаются лишние подключения для emoji, а иногда тема или плагины добавляют свои версии jQuery, block-library CSS или другие ресурсы, которые дублируют уже загруженные файлы. Визуально сайт работает, но в сети это означает лишние запросы, больше CSS/JS и лишний шум в HTML.
Задача здесь не в том, чтобы «вычистить всё подряд», а в том, чтобы убрать только то, что действительно не нужно вашему проекту, и не сломать редактор, фронтенд и сторонние интеграции.
Когда это действительно проблема
Сначала стоит понять, что именно вы хотите исправить. Если речь о нескольких лишних запросах в <head>, это не всегда критично. Но если вы видите сразу несколько одинаковых библиотек, лишние стили Gutenberg на фронтенде или emoji-скрипты на каждом шаблоне, это уже повод навести порядок.
Типичные признаки
- в исходном коде есть
wp-emoji-release.min.js, хотя emoji на сайте не используются; - в DevTools видно два разных подключения jQuery или один и тот же скрипт из разных источников;
- на страницах без блоков Gutenberg всё равно грузится
wp-block-library.css; - после установки темы или плагина выросло число запросов, а причина неочевидна;
- в PageSpeed Insights или Lighthouse есть замечания по лишнему CSS/JS, но без явной ошибки в интерфейсе.
Диагностика: что именно отключать
Не начинайте с удаления всего подряд через functions.php. Сначала проверьте, откуда приходит лишний ресурс. Для этого удобно открыть исходный код страницы, вкладку Network в браузере и посмотреть, какие файлы грузятся на фронтенде и в админке.
Если вы видите emoji-скрипты, их можно отключить почти на любом сайте без последствий. А вот дублирующий jQuery или стили плагина нужно разбирать отдельно: иногда они нужны конкретному виджету или форме.
Для быстрой проверки полезно сравнить три вещи:
- что грузится на главной;
- что грузится на записи или странице с блоками;
- что меняется после отключения конкретного хука или плагина.
Пошаговое решение: отключаем emoji и лишние подключения
Самый безопасный путь — использовать дочернюю тему или небольшой mu-plugin. Так изменения не потеряются после обновления темы.
1. Отключаем emoji-скрипты WordPress
Этот код убирает стандартные emoji-скрипты и стили WordPress на фронтенде, в email и в админ-баре. Для большинства проектов это безопасно.
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' );
} );После этого WordPress перестанет добавлять emoji-обвязку, но сами символы emoji в тексте останутся отображаться как обычные Unicode-символы в современных браузерах.
2. Убираем лишние стили block-library там, где они не нужны
Если у вас классическая тема и на части страниц нет блоков Gutenberg, можно точечно отключить стандартные стили блоков. Но делать это стоит только после проверки: если на сайте есть блоки в контенте, отключение может визуально поломать их оформление.
add_action( 'wp_enqueue_scripts', function() {
if ( ! is_admin() ) {
wp_dequeue_style( 'wp-block-library' );
wp_dequeue_style( 'wp-block-library-theme' );
wp_dequeue_style( 'global-styles' );
}
}, 100 );Этот вариант подходит не всем. Если вы используете блоки в контенте, сначала проверьте, какие именно стили реально нужны. Иногда лучше не отключать всё, а оставить global-styles или только часть блоков.
3. Убираем дублирующий jQuery только после проверки зависимостей
С jQuery нужно быть осторожнее. В WordPress ядро уже подключает свою версию, и попытка заменить её на CDN-версию часто ломает плагины, слайдеры и формы. Если вы нашли дублирование, сначала выясните, кто именно подключает второй файл.
Если проблема в теме, правильнее исправить регистрацию скрипта в самой теме. Если это сторонний плагин, безопаснее отключать только его лишнее подключение, а не ядро WordPress.
Сравнение подходов: код, плагин или правка темы
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Код в дочерней теме или mu-plugin | Нужно убрать emoji, лишние стили или точечные подключения | Контроль, минимум лишнего, не зависит от интерфейса плагина | Нужно понимать, что отключаете |
| Плагин для оптимизации | Нужно быстро собрать несколько мелких правок в одном месте | Удобно для редактора и администратора, меньше ручного кода | Легко переборщить с настройками |
| Правка темы | Проблема в самой теме или её шаблонах | Можно убрать источник дублирования напрямую | Обновления темы могут затереть изменения |
Если вам нужен более широкий набор инструментов для чистки WordPress, иногда удобнее использовать специализированный плагин вроде Clearfy Pro: он закрывает часть типовых задач по отключению лишнего и удалению дублей, но его тоже нужно настраивать аккуратно, а не включать всё сразу.
Как проверить, что решение сработало
После правок не ограничивайтесь визуальной проверкой. Сайт может выглядеть нормально, но лишние ресурсы всё ещё грузятся.
- Откройте исходный код страницы и найдите
wp-emoji-release.min.js— его быть не должно. - Проверьте вкладку Network: количество запросов к CSS/JS должно уменьшиться только там, где вы действительно отключили ресурсы.
- Сравните страницу до и после в Lighthouse или PageSpeed Insights.
- Проверьте записи, страницы и архивы отдельно: иногда отключение работает на главной, но не на шаблоне записи.
- Пройдитесь по формам, меню, слайдерам и виджетам, если вы трогали jQuery или block-library.
Если после отключения блоков у вас «поплыла» сетка или исчезли стили кнопок, значит вы убрали не только лишнее, но и нужное. В этом случае откатите последний шаг и отключайте ресурсы точечно, а не глобально.
Частые ошибки и как их исправить
Отключили не тот хук
Иногда копируют код из старой статьи и вставляют его в неправильное место. Например, пытаются убирать стили до того, как тема их зарегистрировала. В результате ничего не меняется. Для таких задач обычно используют wp_enqueue_scripts с приоритетом, который позволяет отработать после темы и плагинов.
Удалили jQuery из страха перед «лишним весом»
Это одна из самых частых ошибок. WordPress и плагины завязаны на jQuery гораздо чаще, чем кажется. Если вы не уверены, кто использует библиотеку, не заменяйте её на CDN и не удаляйте без тестов.
Отключили block-library, а потом сломали контент
Если в записи есть кнопки, колонки, галереи или другие блоки, стили могут быть нужны. В таком случае лучше отключать только на шаблонах, где блоков нет, или оставить часть стилей.
Смешали оптимизацию с кэшированием
Иногда после правок кажется, что ничего не изменилось, но на самом деле браузер или плагин кэша отдает старую версию. Очистите кэш плагина, серверный кэш и кэш браузера, затем повторите проверку в режиме инкогнито.
Безопасность и производительность: что не стоит делать
Оптимизация должна быть обратимой. Не вносите такие правки прямо в родительскую тему, если она обновляется. Не отключайте ресурсы «на глаз» без списка зависимостей. И не используйте сомнительные сниппеты, которые обещают убрать всё лишнее одной строкой: в WordPress почти всегда есть нюансы по шаблонам и плагинам.
Если у вас много точечных оптимизаций, удобнее собрать их в отдельный mu-plugin. Тогда код не потеряется при смене темы и его проще отключить для диагностики.
<?php
/**
* Plugin Name: WPedu Optimizations
*/
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' );
} );Такой подход удобен тем, что вы отделяете оптимизацию от темы и не теряете её при обновлениях.
Практический чек-лист перед публикацией изменений
- Проверить, какие именно ресурсы грузятся до правок.
- Сделать изменения в дочерней теме или mu-plugin.
- Очистить кэш сайта и браузера.
- Сравнить исходный код страницы до и после.
- Проверить формы, меню, блоки и виджеты.
- Откатить последний шаг, если сломалась верстка или скрипты.
Если задача шире, чем отключение emoji и дублей, и вам нужно регулярно чистить WordPress от лишнего, имеет смысл смотреть в сторону инструментов, которые помогают управлять дублями и техническими настройками без ручного редактирования каждого шаблона. Но даже в этом случае сначала полезно понять источник проблемы, а уже потом выбирать способ её убрать.