На небольшом WordPress-сайте лишние CSS и JavaScript часто незаметны. Но как только появляются рекламные блоки, формы подписки, счетчики, виджеты, квизы или сторонние шрифты, фронтенд начинает тащить на каждую страницу всё подряд. В итоге страдает скорость, а вместе с ней — поведенческие сигналы, конверсия и доход с рекламы или лидов.
Типичный сценарий: на главной нужен один набор скриптов, в статье — другой, а на странице «Контакты» половина подключений вообще не нужна. В этой статье разберем, как точечно отключать стили и скрипты в WordPress, как проверить, что вы не задели критичные зависимости, и где чаще всего ошибаются.
Когда это действительно нужно
Отключать ассеты имеет смысл не ради «чистой красоты» кода, а когда есть конкретная проблема:
- на страницах грузятся скрипты плагина, который там не используется;
- тема подключает одинаковые библиотеки на всех шаблонах без необходимости;
- рекламные или маркетинговые блоки тормозят контентные страницы;
- в админке и на фронтенде подключаются лишние стили одного и того же плагина;
- после установки нескольких плагинов растет число запросов и размер страницы;
- нужно убрать тяжелый виджет только с части URL, а не отключать плагин целиком.
Если проблема не в количестве запросов, а в блокирующей загрузке, сначала проверьте, не решается ли это отложенной загрузкой, объединением файлов или заменой тяжелого плагина. Иногда отключение ассетов — правильный шаг, но не первый.
Диагностика: что именно грузится лишним
Сначала нужно понять, какие файлы подключаются и кто их добавляет. Без этого легко отключить не то и получить сломанный интерфейс, пустые блоки или ошибки в консоли.
Что смотреть в браузере и в WordPress
Откройте страницу в Chrome DevTools и посмотрите вкладку Network. Фильтруйте по CSS и JS, затем сравните:
- какие файлы грузятся на всех страницах;
- какие из них относятся к теме, а какие — к плагинам;
- есть ли повторяющиеся библиотеки, например несколько версий одного скрипта;
- какие файлы реально нужны на конкретном шаблоне.
Если работаете с серверной стороны, удобно на время включить просмотр зарегистрированных ассетов через плагин для диагностики или через код. Но даже без дополнительных инструментов уже можно увидеть handle скрипта и стиль, если открыть исходный код страницы и найти wp-, название темы или плагина.
Как понять, что можно отключать безопасно
Не трогайте то, что обеспечивает базовую работу:
- основной CSS темы;
- скрипты навигации, меню, модальных окон, если они используются на странице;
- ассеты блоков Gutenberg, если страница собрана из блоков;
- скрипты форм, если на странице есть форма;
- JS, который нужен для рекламы, если монетизация завязана на этом шаблоне.
Если сомневаетесь, отключайте по одному файлу и проверяйте страницу в браузере, а не пачкой. Это экономит время на откат.
Пошаговое решение через wp_dequeue_style() и wp_dequeue_script()
Самый надежный способ — убрать ненужные ассеты на этапе wp_enqueue_scripts. Для этого нужен дочерний шаблон или небольшой mu-plugin, если вы не хотите терять изменения при обновлении темы.
Ниже пример: отключаем конкретные стили и скрипты только на странице записи, но оставляем их на страницах, где они реально нужны.
<?php
add_action( 'wp_enqueue_scripts', function () {
if ( is_admin() ) {
return;
}
// Пример: отключаем ассеты плагина только на одиночных записях.
if ( is_singular( 'post' ) ) {
wp_dequeue_style( 'plugin-name-style' );
wp_deregister_style( 'plugin-name-style' );
wp_dequeue_script( 'plugin-name-script' );
wp_deregister_script( 'plugin-name-script' );
}
// Пример: убираем тяжелый виджет со страницы контактов.
if ( is_page( 'contacts' ) ) {
wp_dequeue_script( 'chat-widget' );
wp_dequeue_style( 'chat-widget' );
}
}, 100 );Здесь важны две вещи. Во-первых, приоритет 100 помогает сработать после того, как тема и плагины уже зарегистрировали свои файлы. Во-вторых, wp_dequeue снимает подключение, а wp_deregister полностью убирает регистрацию, если это действительно нужно.
Как узнать правильный handle
Без правильного handle код не сработает. Его можно найти в исходниках плагина или темы. Ищите строки вида:
wp_enqueue_script( 'plugin-name-script', plugins_url( 'assets/js/script.js', __FILE__ ), array( 'jquery' ), '1.0.0', true );Первый аргумент — это и есть handle. Именно его нужно передавать в wp_dequeue_script() или wp_dequeue_style().
Если нужно отключить ассеты только на части URL
Иногда логика не завязана на тип записи, а зависит от конкретной страницы, категории или шаблона. Тогда удобнее использовать условные теги WordPress.
<?php
add_action( 'wp_enqueue_scripts', function () {
if ( is_page_template( 'templates/landing.php' ) ) {
wp_dequeue_style( 'sidebar-widgets' );
wp_dequeue_script( 'sidebar-widgets' );
}
if ( is_category( 'news' ) ) {
wp_dequeue_script( 'related-posts' );
}
if ( is_front_page() ) {
wp_dequeue_style( 'comments-reply' );
}
}, 100 );Такой подход особенно полезен для монетизируемых сайтов. Например, на лендинге вы можете убрать лишние блоки и тяжелые виджеты, а на контентных страницах оставить только то, что помогает удержанию и рекламе.
Сравнение подходов: код, плагин, компромисс
| Подход | Когда подходит | Минус |
|---|---|---|
| Код в теме или mu-plugin | Нужен точечный контроль и предсказуемость | Требует проверки handle и условий |
| Плагин для отключения ассетов | Нужно быстро убрать лишнее без правки кода | Добавляет еще один слой логики и иногда сам грузит лишнее |
| Отключить плагин целиком | Функция не нужна на сайте вообще | Можно потерять нужные элементы на отдельных страницах |
Если у вас много шаблонов и маркетинговых блоков, плагин может ускорить первичную настройку. Но для стабильного продакшена чаще удобнее вынести точечные отключения в код.
Проверка результата после внедрения
После правки не ограничивайтесь визуальным осмотром. Нужно проверить, что:
- страница открывается без ошибок в консоли;
- критичные элементы интерфейса работают: меню, формы, слайдеры, кнопки;
- ненужные файлы действительно исчезли из
Network; - не выросло число 404 на отключенные ресурсы;
- не сломалась верстка на мобильных устройствах.
Практический порядок проверки такой:
- Откройте страницу в режиме инкогнито.
- Проверьте консоль браузера на ошибки JavaScript.
- Сравните список CSS и JS до и после.
- Прогоните страницу через PageSpeed Insights или WebPageTest.
- Проверьте шаблоны, где ассеты должны остаться.
Если вы отключали скрипт формы или попапа, обязательно протестируйте отправку формы и появление окна. Для монетизации это критично: иногда один лишний dequeue убивает конверсию сильнее, чем экономия на килобайтах.
Частые ошибки и как их исправить
Отключают по имени файла, а не по handle
wp_dequeue_script() не работает с URL файла. Ему нужен handle. Если handle не найден, ищите регистрацию в коде темы или плагина.
Ставят слишком ранний приоритет
Если код выполняется раньше, чем ассет зарегистрирован, WordPress просто не снимет его с очереди. Обычно помогает приоритет 100 или выше.
Удаляют то, что нужно Gutenberg или теме
Частая ошибка — отключить стили блоков, а потом получить сломанную сетку. Если страница собрана из блоков, сначала проверьте, какие стили относятся к редактору и какие реально можно убрать.
Правят родительскую тему
После обновления все изменения пропадут. Для точечных отключений используйте дочернюю тему или mu-plugin.
Отключают без теста на мобильных
На десктопе все выглядит нормально, а на мобильном ломается меню, липкая шапка или отступы. Проверяйте обе версии.
Практические советы по безопасности и производительности
Если вы работаете с монетизируемым сайтом, не гонитесь за максимальным удалением всего подряд. Иногда лучше оставить один легкий скрипт, чем потом чинить просевшую конверсию или сломанный рекламный блок.
- храните отключения в отдельном mu-plugin, если они нужны для всего сайта;
- комментируйте, почему конкретный handle отключен и на каких страницах;
- после обновления темы или плагина перепроверяйте handle — они могут измениться;
- не отключайте ассеты, если не понимаете, кто их использует;
- для массовой чистки дублей и лишних подключений удобно смотреть в сторону инструментов вроде Clearfy Pro, но точечные отключения все равно лучше держать под контролем в коде.
Если задача повторяется на нескольких проектах, заведите короткий чек-лист для ревизии ассетов: главная, запись, категория, лендинг, контактная страница, страницы с формами и рекламными вставками. Это быстрее, чем каждый раз искать проблему с нуля.
Что должно получиться в итоге
Правильно настроенное отключение скриптов и стилей дает не абстрактное «ускорение», а понятный результат: на конкретных шаблонах остаются только нужные файлы, страница перестает тащить лишнее, а критичные элементы продолжают работать. Если после внедрения вы видите меньше запросов, меньше CSS/JS в сети и нет ошибок в консоли — задача решена.