Если страница в WordPress грузится медленно, а в отчёте браузера вы видите десятки CSS и JS-файлов, проблема часто не в одном «тяжёлом» плагине, а в наборе мелких подключений от темы и расширений. На главной они могут быть оправданы, но на обычной статической странице, в записи блога или на странице контактов половина этих ресурсов обычно не нужна. Их можно отключать точечно, но делать это нужно аккуратно: не по названию файла «на глаз», а после проверки, где именно он подключается и что сломается при отключении.
Рабочая схема здесь простая: сначала находите лишние стили и скрипты, потом определяете их handle, затем снимаете подключение только на нужных страницах и обязательно проверяете результат в браузере. Такой подход безопаснее, чем массово отключать всё подряд через оптимизатор и надеяться, что сайт не развалится.
С чего начать: понять, что именно лишнее
Не каждый ресурс, который виден в списке загрузок, нужно отключать. Сначала стоит разделить файлы на три группы:
- обязательные для работы текущей страницы и её интерфейса;
- нужные только на части страниц, например на форме комментариев, в слайдере или в блоке поиска;
- явно лишние для конкретного шаблона, например стили контактной формы на странице, где этой формы нет.
Самый удобный способ диагностики — открыть страницу в браузере и посмотреть, какие CSS и JS реально загружаются. Подойдут DevTools в Chrome или Firefox, а также плагины для просмотра очереди подключений в админке. В WordPress важно не имя файла, а handle — внутренний идентификатор, по которому тема или плагин регистрирует ресурс. Именно его потом используют для отключения.
Если у вас нет опыта работы с кодом, начните с простого правила: не трогайте ресурсы, если не понимаете, какой плагин их добавил и что делает страница без них. Особенно осторожно относитесь к библиотекам, которые могут использоваться несколькими модулями сразу: jQuery, иконки, слайдеры, стили редактора, скрипты форм и галерей.
Как найти handle CSS и JS-файлов
Чтобы отключать ресурсы точечно, сначала нужно увидеть их handle. В WordPress это можно сделать несколькими способами.
Через плагины для просмотра подключений
Самый удобный путь для владельца сайта — временно поставить инструмент, который показывает список стилей и скриптов на текущей странице. Такие плагины выводят не только URL файла, но и handle, источник подключения и иногда условие, при котором ресурс загружается. Это помогает быстро понять, откуда пришёл файл: из темы, из конкретного плагина или из ядра WordPress.
Этот вариант хорош для разовой диагностики. После того как вы собрали список лишнего, плагин можно удалить, если он больше не нужен.
Через исходный код страницы и DevTools
Если вы работаете без дополнительных плагинов, откройте страницу в браузере, посмотрите исходный код и найдите теги <link> и <script>. По URL можно определить, какой плагин или тема подключают файл, но handle в исходнике обычно не виден. Поэтому для точечного отключения этот способ полезен как первый этап, а не как финальный.
В DevTools удобно смотреть вкладку Network и фильтровать запросы по типу CSS и JS. Если файл грузится на каждой странице, а нужен только на одной, это уже кандидат на отключение.
Как отключить ресурсы точечно через код
Надёжный способ — использовать хук wp_enqueue_scripts и функции wp_dequeue_style(), wp_deregister_style(), wp_dequeue_script() и wp_deregister_script(). Для большинства задач достаточно wp_dequeue_*: он снимает подключение на конкретной странице, но не удаляет регистрацию ресурса из WordPress. Это безопаснее, потому что файл остаётся доступным для других частей сайта, если он где-то ещё нужен.
Добавлять код лучше в дочернюю тему или в небольшой функциональный плагин. Не правьте напрямую файлы родительской темы: при обновлении изменения пропадут.
Пример: отключить стиль и скрипт только на странице с определённым слагом.
add_action( 'wp_enqueue_scripts', function () {
if ( ! is_page( 'contacts' ) ) {
return;
}
wp_dequeue_style( 'plugin-contact-form' );
wp_dequeue_script( 'plugin-contact-form' );
}, 100 );Здесь contacts — слаг страницы, а plugin-contact-form — handle ресурса. Приоритет 100 выбран не случайно: так код срабатывает после того, как тема и плагины уже успели подключить свои файлы.
Если нужно отключить ресурс на нескольких страницах, удобнее использовать условия WordPress:
is_page()— для страниц;is_single()— для записей;is_home()— для главной блога;is_front_page()— для главной сайта;is_category(),is_tag(),is_archive()— для архивов.
Например, если скрипт нужен только в блоге, а на статических страницах мешает, можно снять его везде, кроме записей:
add_action( 'wp_enqueue_scripts', function () {
if ( is_single() ) {
return;
}
wp_dequeue_script( 'share-buttons' );
}, 100 );Такой подход удобен, когда один и тот же плагин добавляет ресурс на весь сайт, хотя реально он нужен только в одном типе контента.
Когда нужен не только dequeue, но и deregister
В большинстве случаев wp_dequeue_style() и wp_dequeue_script() достаточно. Но иногда ресурс регистрируется и тут же снова подключается другим кодом. Тогда может понадобиться wp_deregister_style() или wp_deregister_script(). Эти функции удаляют регистрацию из очереди WordPress, и использовать их нужно осторожнее.
Практически это важно в двух сценариях:
- плагин или тема повторно подключает тот же handle после вашего dequeue;
- вы хотите полностью убрать регистрацию ресурса на фронтенде, потому что он точно не нужен нигде на сайте.
Но если вы не уверены, лучше начать с dequeue. Deregister может сломать другой модуль, который рассчитывает на этот же handle. Особенно часто это бывает с библиотеками и общими стилями.
Что можно отключать безболезненно, а что требует проверки
Есть ресурсы, которые часто оказываются лишними на отдельных страницах, но отключать их вслепую нельзя. Ниже — не список для безусловного удаления, а ориентир для проверки:
| Тип ресурса | Когда обычно можно отключить | Что проверить после отключения |
|---|---|---|
| Стили и скрипты форм | На страницах без формы | Отправку формы, валидацию, сообщения об ошибках |
| Слайдеры и галереи | Если на странице нет соответствующего блока | Отображение изображений, навигацию, адаптивность |
| Социальные кнопки | На страницах, где они не используются | Виджет или блок, если он есть в шаблоне |
| Скрипты комментариев | На страницах без комментариев | Работу формы комментариев и ответов |
| Иконки и шрифты | Если тема не использует их на конкретной странице | Внешний вид меню, кнопок и декоративных элементов |
Если ресурс связан с визуальной частью темы, отключение может быть заметно сразу. Если это скрипт функциональности, поломка иногда проявляется только при действии пользователя: отправке формы, открытии модального окна, переключении вкладки. Поэтому проверять нужно не только загрузку страницы, но и ключевые сценарии.
Как проверить, что вы ничего не сломали
После отключения откройте страницу в режиме инкогнито и проверьте несколько вещей:
- нет ли ошибок в консоли браузера;
- не пропали ли стили у кнопок, форм, меню и блоков;
- работают ли формы, слайдеры, вкладки, попапы и другие интерактивные элементы;
- уменьшилось ли число запросов в Network;
- не появился ли лишний FOUC — краткий «миг» неоформленного контента при загрузке.
Если у вас включён кэш, очищайте его после каждого изменения. Иначе можно решить, что отключение не сработало, хотя на самом деле браузер или плагин кэширования просто отдал старую версию страницы.
Полезно сравнить страницу до и после в одном и том же браузере. Смотрите не только на количество файлов, но и на итоговый вес CSS/JS, а также на то, не выросло ли число ошибок. Иногда удаление одного файла даёт небольшой выигрыш, но ломает функциональность, и такой компромисс не стоит экономии в несколько килобайт.
Типичные ошибки при отключении ресурсов
Чаще всего проблемы возникают не из-за самой идеи, а из-за способа её реализации.
- Отключают по имени файла, а не по handle. В итоге код не срабатывает после обновления плагина или смены версии темы.
- Снимают подключение слишком рано. Если хук срабатывает до регистрации ресурса, WordPress просто не найдёт, что отключать.
- Удаляют общий файл, который нужен в нескольких местах. На одной странице всё выглядит нормально, а на другой ломается форма или меню.
- Проверяют только главную страницу. Лишние ресурсы часто проявляются именно на внутренних страницах.
- Не чистят кэш и делают выводы по старой версии страницы.
Если сайт сложный и ресурсов много, имеет смысл вести короткий список: какой handle отключён, на какой странице и зачем. Это сильно упрощает поддержку после обновлений темы и плагинов.
Если не хочется писать код вручную
Когда задача не ограничивается одной страницей, а нужно регулярно чистить сайт от дублей и лишних подключений, удобнее использовать инструмент, который умеет управлять фронтенд-ресурсами без ручного редактирования темы. В экосистеме WPShop для этой задачи подходит Clearfy Pro: он помогает отключать часть ненужных функций и ресурсов WordPress, не лезя каждый раз в код. Но даже в этом случае принцип остаётся тем же — сначала понять, что именно можно убрать, а потом проверить результат на конкретной странице.
Если нужен максимально предсказуемый результат, не пытайтесь «почистить» сайт одним махом. Точечное отключение работает лучше: вы убираете только то, что действительно не используется на конкретной странице, и сохраняете стабильность сайта. Это особенно важно на проектах, где тема и плагины подключают много общего кода, а любая ошибка сразу видна посетителям.