Если сайт тормозит, а в отчёте PageSpeed или в Network видно десятки файлов от плагинов, проблема часто не в самом WordPress, а в том, что расширения подключают свои стили и скрипты на всех страницах, хотя нужны только на одной-двух. Это обычная ситуация для форм, слайдеров, галерей, попапов, рейтингов, калькуляторов и похожих плагинов.
Смысл решения простой: найти, какие ресурсы реально лишние на конкретной странице, и отключить их только там, где они не используются. Так вы уменьшаете количество запросов, вес страницы и время до первого полезного рендера, не ломая функциональность там, где плагин нужен.
Сначала проверьте, что именно грузится лишним
Не стоит отключать всё подряд. Один и тот же CSS или JS может быть нужен на странице с формой, но бесполезен на главной, в блоге или в карточке услуги. Поэтому сначала откройте проблемную страницу в браузере и посмотрите, какие файлы грузятся.
Удобнее всего делать это через инструменты разработчика:
- откройте страницу в Chrome или Firefox;
- нажмите
F12и перейдите во вкладкуNetwork; - обновите страницу;
- отфильтруйте запросы по
CSSиJS; - посмотрите, какие файлы приходят с путями вида
/wp-content/plugins/....
Если файл относится к плагину, который на этой странице не используется, его можно отключать. Если сомневаетесь, сначала проверьте, не ломается ли интерфейс без него: иногда один и тот же файл отвечает и за вид, и за поведение элемента.
Самый надёжный способ: отключать загрузку через код темы или дочерней темы
В WordPress стили и скрипты подключаются через систему enqueue. Если плагин зарегистрировал файл корректно, его можно снять с очереди на нужной странице через wp_dequeue_style() и wp_dequeue_script(). Делать это лучше в дочерней теме или в небольшом mu-plugin, а не в файлах самого плагина: при обновлении изменения пропадут.
Перед правкой сделайте резервную копию. Если ошибиться с условием или названием хука, можно случайно убрать нужный скрипт и сломать форму, галерею или навигацию.
Ниже рабочий пример. Он отключает конкретные стили и скрипты только на странице с определённым слагом:
add_action( 'wp_enqueue_scripts', function () {
if ( is_page( 'contact' ) ) {
wp_dequeue_style( 'plugin-style-handle' );
wp_dequeue_script( 'plugin-script-handle' );
}
}, 100 );Здесь важно два момента:
is_page( 'contact' )ограничивает отключение только страницей с ярлыкомcontact;plugin-style-handleиplugin-script-handleнужно заменить на реальные handle файлов, а не на имя файла или название плагина.
Если ресурс подключается не через обычный фронтенд-хук, а позже, иногда помогает более поздний приоритет. В примере стоит 100, чтобы код отработал после большинства плагинов, которые регистрируют свои ассеты стандартно.
Как узнать правильный handle
Самая частая ошибка — пытаться снять файл по имени style.css или script.js. WordPress работает с handle, и именно его нужно передавать в wp_dequeue_style() или wp_dequeue_script().
Есть несколько способов найти handle:
- посмотреть исходный код страницы и найти имя файла, а затем проверить документацию плагина или его код;
- поискать в файлах плагина вызовы
wp_enqueue_style()иwp_enqueue_script(); - использовать плагины для диагностики подключённых ассетов, если они уже стоят на сайте.
Если плагин написан аккуратно, handle часто совпадает с названием расширения или его модуля, но полагаться на это нельзя. Проверка по коду надёжнее.
Когда нужно отключать не весь файл, а только на отдельных типах страниц
Часто ресурсы мешают не на одной странице, а на целой группе: например, на всех записях, кроме страницы с формой, или на всех страницах, кроме лендинга. В таком случае удобнее использовать условные теги WordPress.
Примеры условий, которые реально помогают в этой задаче:
is_front_page()— главная страница;is_page()— конкретная страница или набор страниц;is_single()— отдельная запись;is_archive()— архивы;is_category()— рубрики;is_singular( 'post' )— одиночная запись нужного типа.
Например, если скрипт нужен только на странице заявки, но не нужен в блоге, можно ограничить его подключение так:
add_action( 'wp_enqueue_scripts', function () {
if ( ! is_page( 'request' ) ) {
wp_dequeue_style( 'request-form-style' );
wp_dequeue_script( 'request-form-script' );
}
}, 100 );Такой подход удобнее, чем пытаться перечислить все страницы, где файл не нужен. Но используйте его аккуратно: если плагин выводит тот же элемент в шапке, подвале или в виджете, отключение по слишком общему условию может убрать нужную функциональность.
Если плагин не даёт снять ассеты стандартным способом
Иногда плагин подключает стили и скрипты внутри своего шаблона или делает это без нормальных handle. Тогда стандартный wp_dequeue_* может не сработать. В таком случае есть три реальных варианта.
Первый вариант — проверить настройки самого плагина. У многих расширений есть опции вроде отключения CSS, загрузки инициализации только на нужных страницах или выбора, где выводить виджет. Это лучший путь, если он доступен: он безопаснее, чем ручной код.
Второй вариант — использовать фильтры или действия, которые предоставляет сам плагин. Это зависит от конкретного расширения и его документации. Универсального фильтра для всех плагинов не существует, поэтому здесь нужно смотреть код или справку разработчика.
Третий вариант — если плагин подключает ресурсы слишком агрессивно и не даёт управлять ими нормально, заменить его на более аккуратный аналог. Это уже не про отключение, а про снижение технического долга. Иногда это дешевле, чем постоянно поддерживать костыли в теме.
Как проверить, что отключение сработало и ничего не сломалось
После правки откройте страницу в режиме инкогнито и проверьте три вещи:
- в исходном коде больше нет отключённого CSS или JS;
- элемент, ради которого плагин нужен, продолжает работать на нужной странице;
- на страницах, где ресурс отключён, интерфейс не потерял стили и не появились ошибки в консоли.
Для быстрой проверки можно снова открыть Network и убедиться, что лишний файл исчез. Если это скрипт, дополнительно посмотрите вкладку Console: иногда после отключения всплывают ошибки, потому что другой код ожидал этот файл.
Если ресурс не исчез, обычно причина одна из трёх:
- вы указали не тот handle;
- плагин подключает файл позже, чем выполняется ваш код;
- файл добавляется не через стандартный enqueue, а другим способом.
В первых двух случаях помогает корректировка handle и приоритета. В третьем — уже нужен разбор конкретного плагина.
Что даёт такой подход на практике
Отключение лишних стилей и скриптов не заменяет кэширование, оптимизацию изображений или нормальный хостинг, но хорошо убирает мусор, который часто тянется за плагинами годами. Особенно заметен эффект на страницах, где стоит много расширений, а реально используется только одно-два.
Если у вас типовой сайт на WordPress, начните с самых тяжёлых и очевидных источников: форм, слайдеров, pop-up, таблиц, галерей, рейтингов и виджетов. Обычно именно они подключают лишние файлы на всех страницах. Дальше уже имеет смысл точечно отключать ресурсы там, где они не нужны, и оставить их только в рабочем контексте.
Если нужно не только отключать лишние ресурсы, но и системно чистить сайт от лишних подключений, дублей и технического мусора, для WordPress часто используют Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wplinks.ru&utm_medium=article&utm_campaign=otklyuchit-lishnie-stili-i-skripty-plaginov-na-otdelnyh-stranicah-wordpress