Как удалить по умолчанию скрипты и стили в WooCommerce для ускорения сайта

Диагностика проблемы: почему WooCommerce замедляет загрузку страниц

WooCommerce по умолчанию загружает множество CSS и JS файлов на все страницы сайта, даже если они не нужны. Это увеличивает количество HTTP-запросов и размер страниц, замедляя загрузку и ухудшая производительность. Особенно это критично для сайтов с большими каталогами или ограниченными ресурсами хостинга.

Чтобы проверить, какие скрипты и стили загружаются, используйте инструменты разработчика в браузере (вкладка Network). Найдите файлы, содержащие woocommerce в имени, и посмотрите, на каких страницах они подгружаются.

Пошаговое решение: отключаем ненужные скрипты и стили WooCommerce

1. Определяем, какие скрипты и стили можно отключить

Чаще всего на страницах, не связанных с магазином (например, блог, главная, страницы без товаров), нет необходимости загружать стили и скрипты WooCommerce.

2. Добавляем код в functions.php вашей темы или в отдельный плагин

function wpaction_dequeue_woocommerce_assets() {
    if ( function_exists('is_woocommerce') ) {
        // Отключаем стили и скрипты WooCommerce на всех страницах, кроме магазина, корзины и оформления заказа
        if ( !is_woocommerce() && !is_cart() && !is_checkout() ) {
            wp_dequeue_style( 'woocommerce-general' );
            wp_dequeue_style( 'woocommerce-layout' );
            wp_dequeue_style( 'woocommerce-smallscreen' );
            wp_dequeue_script( 'woocommerce' );
            wp_dequeue_script( 'wc-cart-fragments' );
        }
    }
}
add_action( 'wp_enqueue_scripts', 'wpaction_dequeue_woocommerce_assets', 99 );

3. Объяснение кода

  • Проверяем, что функция is_woocommerce() доступна, чтобы избежать ошибок, если плагин отключен.
  • Отключаем основные стили WooCommerce и скрипты на всех страницах, кроме страниц магазина, корзины и оформления заказа.
  • Приоритет 99 в хуке wp_enqueue_scripts нужен, чтобы отключение происходило после загрузки стилей и скриптов WooCommerce.

Проверка результата после внедрения

Для проверки откройте в браузере страницу без магазина (например, блог или главную) и откройте инструменты разработчика (F12). Перейдите во вкладку Network и обновите страницу. Убедитесь, что файлы с именами woocommerce не загружаются.

Также проверьте функционал на страницах магазина, корзины и оформления заказа — стили и скрипты должны загружаться корректно, чтобы не нарушить работу WooCommerce.

Частые ошибки и как их исправить

  • Ошибка: функции is_woocommerce() и другие условные теги вызываются слишком рано, что приводит к некорректной работе.
    Исправление: используйте хук wp_enqueue_scripts с приоритетом от 20 и выше, чтобы убедиться, что WooCommerce уже загрузился.
  • Ошибка: отключение скриптов приводит к сломанному функционалу корзины.
    Исправление: не отключайте скрипты на страницах корзины (is_cart()) и оформления заказа (is_checkout()).
  • Ошибка: сторонние плагины подключают свои стили, которые зависят от WooCommerce.
    Исправление: проверяйте зависимости и тестируйте сайт после изменений.

Практические советы по безопасности и производительности

  • Регулярно профилируйте загрузку страниц с помощью инструментов вроде Query Monitor и GTmetrix, чтобы понимать влияние отключения скриптов.
  • Компонуйте и минимизируйте оставшиеся CSS и JS файлы для снижения времени загрузки.
  • Используйте кэширование (например, через WP Rocket, если используете плагины) совместно с отключением ненужных ресурсов для максимального ускорения.

Сравнительная таблица способов отключения скриптов WooCommerce

СпособОписаниеПлюсыМинусы
Отключение через код в functions.phpРучное отключение через wp_dequeue_script и wp_dequeue_styleПолный контроль, нет зависимостейТребует навыков, возможны ошибки
Плагины оптимизации (например, Asset CleanUp)Графический интерфейс для отключения ресурсовУдобно для непрофессионалов, гибкоДополнительная нагрузка, возможны конфликты
Полное отключение WooCommerce на страницахЧерез хуки woocommerce_enqueue_stylesПростое решение для стилейНе отключает скрипты, не всегда достаточно
Как избежать конфликтов плагинов в WordPress
13.12.2025
Как добавить настройки для плагинов в WordPress с примерами кода
22.02.2026
Как создать автоматическое удаление нерабочих скриптов в WordPress для ускорения сайта
23.03.2026
WooCommerce: автоматическое удаление товаров из каталога при отсутствии на складе
26.05.2026
Оптимизация кода WordPress: как найти и удалить неиспользуемые хуки
24.01.2026