Если сайт на WordPress грузит слишком много CSS и JavaScript, это почти всегда видно по медленной первой отрисовке, лишним запросам в браузере и тяжёлым страницам на мобильных. Убирать такие файлы можно, но делать это нужно не «на глаз», а по конкретным страницам и с проверкой зависимостей. Иначе легко отключить не только ненужный файл, но и часть интерфейса, слайдер, форму, галерею или даже админские элементы на фронтенде.
Безопасный подход здесь один: сначала понять, какие ассеты реально используются на странице, потом отключать их точечно и после каждого шага проверять результат. Для WordPress это особенно важно, потому что темы и плагины часто подключают стили и скрипты глобально, даже если они нужны только на одной странице или в одном блоке.
С чего начать: понять, что именно лишнее
Не стоит удалять файлы только потому, что их много. Сначала откройте страницу сайта в браузере и посмотрите, какие CSS и JS она загружает. Удобнее всего делать это в Chrome или Edge через инструменты разработчика: вкладка Network покажет все запросы, а фильтры по CSS и JS помогут быстро увидеть список подключений.
Смотрите не только на количество файлов, но и на их источник. Обычно лишними оказываются:
- стили и скрипты плагина, который вообще не используется на конкретной странице;
- библиотеки, подключённые глобально ради одной функции;
- стили блока или виджета, который есть только на части страниц;
- дублирующие библиотеки, когда тема и плагин загружают одно и то же по-разному.
Полезно проверить и исходный код страницы: если файл подключается через wp_enqueue_style() или wp_enqueue_script(), его обычно можно отключить на уровне темы или через хук. Если же файл вставлен напрямую в шаблон через <link> или <script>, отключать придётся уже в коде темы или дочерней темы.
Какие способы удаления CSS и JS в WordPress действительно безопасны
На практике есть три рабочих сценария. Выбор зависит от того, кто подключил файл и насколько точечно его нужно убрать.
| Способ | Когда подходит | Риск |
|---|---|---|
| Отключение через хук WordPress | Файл подключён через enqueue и известен его handle | Низкий, если проверены зависимости |
| Настройки плагина оптимизации | Нужно убрать ассеты без правки темы | Средний, зависит от плагина и его правил |
| Правка шаблона или дочерней темы | Файл вставлен напрямую в шаблон | Выше среднего, легко сломать обновления |
Если есть возможность, лучше начинать с отключения через WordPress-хуки. Это самый чистый способ: вы не правите ядро, не лезете в файлы плагина и можете вернуть всё назад одной строкой кода.
Как отключить лишний CSS и JS через functions.php или мини-плагин
Если файл подключён через стандартные функции WordPress, его можно снять с загрузки в дочерней теме или в небольшом собственном плагине. Для этого используют wp_dequeue_style(), wp_dequeue_script(), а иногда и wp_deregister_style(), wp_deregister_script().
Обычно достаточно dequeue, потому что он убирает уже запланированное подключение. deregister нужен реже — когда надо полностью удалить регистрацию ассета и, возможно, заменить его своей версией. Если вы не уверены, начинайте с dequeue.
Пример: отключить конкретный стиль и скрипт на одной странице. Перед этим нужно знать их handle — внутреннее имя, под которым файл зарегистрирован в WordPress. Его можно увидеть в коде темы, плагина или через инспектор ассетов.
add_action('wp_enqueue_scripts', function () {
if ( ! is_page('contacts') ) {
return;
}
wp_dequeue_style('plugin-contacts-style');
wp_dequeue_script('plugin-contacts-script');
}, 100);Здесь важен приоритет 100: он помогает выполнить код после того, как тема и плагины уже успели подключить свои файлы. Если поставить слишком ранний приоритет, отключение может не сработать.
Если нужно убрать ассет только на главной, в записи или на определённом типе страниц, используйте условные теги WordPress: is_front_page(), is_single(), is_page(), is_archive() и так далее. Это лучше, чем глобально отключать файл на всём сайте.
Как не сломать зависимости
Самая частая ошибка — удалить файл, от которого зависит другой скрипт. Например, если тема использует библиотеку, а плагин строит на ней свой код, после отключения перестанет работать не только анимация, но и форма, меню или галерея.
Перед отключением проверьте:
- не используется ли файл на странице визуально;
- нет ли у него зависимых скриптов в очереди загрузки;
- не нужен ли он для работы виджета, формы, слайдера или попапа;
- не подключается ли он только в админке или в редакторе блоков, где его трогать не нужно.
Если сомневаетесь, отключайте по одному файлу и сразу проверяйте страницу. Так проще понять, что именно сломалось, если проблема появится.
Когда лучше использовать плагин для очистки ассетов
Если вы не хотите править код темы, удобнее использовать плагин, который позволяет отключать CSS и JS по страницам. Это особенно полезно владельцам сайтов, которые не работают с PHP и не хотят каждый раз лезть в functions.php.
Но здесь есть нюанс: не каждый плагин одинаково аккуратно работает с ассетами. Некоторые инструменты просто скрывают подключение на фронтенде, другие вмешиваются глубже и могут конфликтовать с кэшем, минификацией или отложенной загрузкой. Поэтому после настройки обязательно проверяйте не только внешний вид, но и консоль браузера на ошибки JavaScript.
Если у вас уже стоит плагин оптимизации, посмотрите, умеет ли он:
- отключать стили и скрипты по конкретным страницам;
- работать с отдельными шаблонами и типами записей;
- не ломать критические файлы темы;
- сохранять исключения для нужных ассетов.
В экосистеме WPShop для этой задачи может подойти Clearfy Pro, если вам нужен именно инструмент для чистки сайта и отключения лишних подключений без ручной правки шаблонов. Но даже с таким плагином принцип остаётся тем же: отключать нужно точечно и после проверки.
Что делать, если файл подключён напрямую в теме
Иногда CSS или JS вставлен не через enqueue, а прямо в шаблон темы. Тогда wp_dequeue_style() и wp_dequeue_script() не помогут, потому что WordPress не управляет этим файлом как зарегистрированным ассетом.
В таком случае нужно найти место подключения в файлах темы: обычно это header.php, footer.php, functions.php или отдельные шаблоны. Если тема обновляемая, править лучше не родительскую тему, а дочернюю, иначе изменения затрутся при обновлении.
Если файл вставлен в шаблон напрямую, удаляйте его только после того, как убедились, что он не нужен на всех страницах. Если нужен лишь на части сайта, лучше перенести подключение в условную логику через wp_enqueue_scripts, а не держать его в разметке.
Как проверить, что сайт не сломался после удаления
После каждого отключения откройте страницу в обычном режиме и проверьте несколько вещей:
- не съехала ли вёрстка;
- работают ли меню, формы, слайдеры, табы, попапы и другие интерактивные элементы;
- нет ли ошибок в консоли браузера;
- не пропали ли стили на мобильной версии;
- не изменился ли вид страниц, где ассет мог быть нужен.
Если есть кэш на сервере, в плагине или в CDN, очищайте его после каждого изменения. Иначе вы можете проверять старую версию страницы и сделать ложный вывод, что отключение не сработало.
Хорошая практика — держать рядом две вкладки: одну с обычной страницей, вторую с DevTools. Тогда вы сразу увидите, какой файл исчез из загрузки и не появилось ли новых ошибок.
Что обычно ломают при слишком агрессивной очистке
Чаще всего проблемы возникают не из-за самого удаления, а из-за слишком широкого правила. Например, человек отключает файл на всём сайте, хотя он нужен только на одной странице, или удаляет библиотеку, которую использует неочевидный виджет.
Ещё одна типичная ошибка — включить одновременно несколько инструментов оптимизации: минификацию, объединение файлов, отложенную загрузку и ручное отключение ассетов. В таком наборе сложнее понять, что именно вызвало сбой. Если что-то сломалось, сначала отключите лишние оптимизации и проверьте сайт в базовом состоянии.
Если задача — именно ускорить фронтенд, не гонитесь за полным удалением всего подряд. Иногда безопаснее оставить небольшой файл, чем потратить время на поиск скрытой зависимости и получить нестабильный сайт. В WordPress точечная чистка почти всегда лучше грубой.
Практический ориентир простой: убирайте только то, что вы можете объяснить. Если вы знаете, какой плагин добавил файл, где он нужен и почему на этой странице он лишний, отключение обычно проходит без последствий. Если файл «просто кажется ненужным», сначала разберитесь с его назначением.