Почему нужно отключать стандартные скрипты и стили WooCommerce
WooCommerce подключает множество скриптов и стилей на всех страницах сайта, даже если функционал магазина используется частично или вы хотите кастомизировать фронтенд. Это может значительно замедлять загрузку страниц и увеличивать объем передаваемых данных. Удаление ненужных CSS и JS повышает скорость, снижает нагрузку на сервер и улучшает пользовательский опыт.
Диагностика проблемы: какие скрипты и стили грузит WooCommerce
Для начала проверьте, какие именно ресурсы подключает WooCommerce на страницах вашего сайта:
- Откройте любую страницу в браузере и включите инструменты разработчика (F12).
- Перейдите во вкладку Network или Sources.
- Отфильтруйте запросы по типу
jsиcss. - Обратите внимание на файлы с префиксом
woocommerceили связанные с плагином.
Часто WooCommerce подключает стили и скрипты даже на страницах, где магазин не отображается — например, на главной или блоговых записях.
Пошаговое решение: как отключить ненужные скрипты и стили WooCommerce
1. Отключение через хуки WordPress
Добавьте следующий код в файл functions.php вашей дочерней темы или в кастомный плагин:
add_action('wp_enqueue_scripts', 'disable_woocommerce_assets', 99);
function disable_woocommerce_assets() {
if (!is_woocommerce() && !is_cart() && !is_checkout() && !is_account_page()) {
// Отключаем стили
wp_dequeue_style('woocommerce-general');
wp_dequeue_style('woocommerce-layout');
wp_dequeue_style('woocommerce-smallscreen');
// Отключаем скрипты
wp_dequeue_script('wc-cart-fragments');
wp_dequeue_script('woocommerce');
wp_dequeue_script('wc-add-to-cart');
wp_dequeue_script('wc-checkout');
wp_dequeue_script('wc-single-product');
wp_dequeue_script('wc-cart');
}
}Этот код отключит основные стили и скрипты WooCommerce на всех страницах, кроме страниц магазина, корзины, оформления заказа и аккаунта.
2. Тонкая настройка отключения для отдельных страниц
Если у вас есть кастомные страницы с элементами WooCommerce или вы используете AJAX-виджеты, возможно, стоит дополнительно указать условия, в которых скрипты должны оставаться подключенными:
function disable_woocommerce_assets_custom() {
if (!is_woocommerce() && !is_cart() && !is_checkout() && !is_account_page() && !is_page('custom-shop')) {
wp_dequeue_style('woocommerce-general');
wp_dequeue_style('woocommerce-layout');
wp_dequeue_style('woocommerce-smallscreen');
wp_dequeue_script('wc-cart-fragments');
wp_dequeue_script('woocommerce');
wp_dequeue_script('wc-add-to-cart');
}
}
add_action('wp_enqueue_scripts', 'disable_woocommerce_assets_custom', 99);Проверка результата после внедрения
Чтобы убедиться, что отключение скриптов и стилей прошло успешно:
- Очистите кэш браузера и, если используете кэширование на сайте, сбросьте его.
- Откройте страницы, где скрипты должны быть отключены, и проверьте через инструменты разработчика наличие или отсутствие файлов WooCommerce CSS/JS.
- Перейдите на страницы магазина, корзины и оформления заказа — убедитесь, что стили и скрипты WooCommerce загружаются, а функционал работает корректно.
- Проверьте, что не нарушена работа AJAX обновления корзины и других элементов WooCommerce.
Частые ошибки и как их исправить
- Скрипты отключены на страницах корзины или оформления заказа — магазин ломается: Проверьте условия в
if, возможно, неправильно указаны функцииis_cart(),is_checkout(),is_account_page(). - Кэш мешает увидеть изменения: Очистите весь кэш, включая плагин кэширования и CDN.
- Фрагменты корзины не обновляются: Не отключайте скрипт
wc-cart-fragmentsна страницах, где есть корзина или виджет корзины в шапке. - Ошибка в консоли JavaScript после отключения: Возможно, какой-то ваш кастомный код зависит от скриптов WooCommerce. Перепроверьте зависимости и корректность кода.
Практические советы по безопасности и производительности
- Отключайте ресурсы только после полного тестирования, чтобы не нарушить работу магазина.
- Используйте дочернюю тему или отдельный плагин для таких кастомизаций — это позволит безопасно обновлять WooCommerce и тему.
- Для дополнительного ускорения используйте асинхронную или отложенную загрузку JS, а также минификацию CSS/JS.
- Используйте инструмент Query Monitor для отладки и поиска проблем с подключением скриптов.
Сравнение способов отключения скриптов и стилей WooCommerce
| Метод | Преимущества | Недостатки |
|---|---|---|
Отключение через wp_dequeue_style/script | Контроль, гибкость, бесплатное решение без плагинов | Требует знаний PHP, риски при неправильных условиях |
| Плагины оптимизации (например, Clearfy Pro) | Простой интерфейс, дополнительные функции оптимизации | Платные или ограниченные бесплатные версии, меньше гибкости |
| Отключение через настройки темы (если поддерживается) | Удобство, интеграция с темой | Зависит от темы, не всегда есть нужные опции |