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

Проблема: избыточная загрузка ресурсов WooCommerce

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

Диагностика: как понять, что WooCommerce грузит лишние ресурсы

Для начала нужно проверить, где подключаются ресурсы WooCommerce. Для этого:

  • Откройте консоль браузера (F12) на страницах без магазина (например, главная или блог).
  • Перейдите на вкладку Network и отфильтруйте по CSS и JS.
  • Посмотрите, есть ли файлы с именами типа woocommerce.css, woocommerce-layout.css, woocommerce-general.js и т.д.
  • Если эти файлы загружаются на страницах, где они не нужны, это повод их отключить.

Пошаговое решение: отключение скриптов и стилей WooCommerce на не магазинных страницах

Для удаления стилей и скриптов WooCommerce вне страниц магазина можно использовать следующий код в functions.php вашей дочерней темы или в кастомном плагине:

function wpaction_dequeue_woocommerce_assets() {
    if ( function_exists('is_woocommerce') ) {
        if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() && ! is_account_page() ) {
            // Отключаем стили WooCommerce
            wp_dequeue_style('woocommerce-general');
            wp_dequeue_style('woocommerce-layout');
            wp_dequeue_style('woocommerce-smallscreen');
            
            // Отключаем скрипты WooCommerce
            wp_dequeue_script('wc-add-to-cart');
            wp_dequeue_script('woocommerce');
            wp_dequeue_script('wc-cart-fragments');
        }
    }
}
add_action('wp_enqueue_scripts', 'wpaction_dequeue_woocommerce_assets', 99);

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

  • is_woocommerce(), is_cart(), is_checkout(), is_account_page() — проверяют, что текущая страница относится к WooCommerce.
  • wp_dequeue_style и wp_dequeue_script отключают загрузку соответствующих ресурсов.
  • Хук wp_enqueue_scripts с приоритетом 99 гарантирует, что отключение произойдет после регистрации скриптов и стилей WooCommerce.

Дополнительное уточнение: отключение API cart fragments

Скрипт wc-cart-fragments обновляет содержимое корзины асинхронно, но он может создавать нагрузку на сайт. Если у вас нет необходимости в динамическом обновлении корзины на всех страницах, его отключение ускорит загрузку.

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

Чтобы удостовериться, что скрипты и стили отключены:

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

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

  • Ошибка: скрипты не отключаются.
    Причина: код добавлен с меньшим приоритетом, чем регистрация скриптов.
    Решение: увеличьте приоритет хука (например, до 99).
  • Ошибка: страница магазина отображается некорректно после отключения.
    Причина: отключаете ресурсы на страницах магазина.
    Решение: проверьте условия в if, используйте все проверки is_cart(), is_checkout() и др.
  • Ошибка: корзина не обновляется динамически.
    Причина: отключён скрипт wc-cart-fragments.
    Решение: включите скрипт на страницах, где нужна динамическая корзина, либо создайте исключения.

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

  • Не отключайте скрипты WooCommerce на страницах, которые требуют интерактивности магазина.
  • Если используете кеширование, очистите кеш после изменений.
  • Для больших магазинов рассмотрите использование CDN и оптимизацию изображений дополнительно.
  • Для более гибкого управления используйте фильтры WooCommerce и проверяйте документацию на актуальность.

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

МетодПлюсыМинусы
Отключение через код (wp_dequeue_*)Полный контроль, бесплатно, нет лишних плагиновТребует навыков, можно случайно поломать функционал
Плагины типа Asset CleanUp или PerfmattersУдобный интерфейс, выборочные настройкиДополнительная нагрузка, большинство функций в платных версиях
Отключение через настройки темы (если поддерживается)Просто, интегрировано с темойЗависит от темы, ограниченный функционал
Как удалить заблокированные пользователи из WordPress
09.12.2025
WooCommerce: автоматическое удаление товаров из каталога при отсутствии на складе
26.05.2026
WooCommerce: как автоматически исключать товары из каталога при отсутствии на складе
20.05.2026
Как использовать фильтры WooCommerce для изменения цены товара на лету
28.04.2026
Как создать автоматическое удаление нерабочих скриптов в WordPress для ускорения сайта
23.03.2026