Удаление или отключение скриптов WooCommerce на определённых страницах для ускорения загрузки

Почему стоит отключать скрипты WooCommerce на нецелевых страницах

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

Диагностика: как определить, какие скрипты загружаются и где

Для диагностики загрузки ресурсов используйте инструменты разработчика в браузере (Chrome DevTools, Firefox Developer Tools): вкладка Network покажет все загруженные файлы CSS и JS. Обратите внимание на файлы с префиксом woocommerce или содержащие woocommerce в названии.

Также можно использовать плагин Query Monitor, который покажет активные скрипты и стили на каждой странице.

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

1. Определяем страницы, где WooCommerce не нужен

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

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

Ниже пример кода, который отключает стили и скрипты WooCommerce на всех страницах, кроме ключевых:

add_action('wp_enqueue_scripts', 'disable_woocommerce_scripts_styles', 99);
function disable_woocommerce_scripts_styles() {
    if ( function_exists('is_woocommerce') ) {
        // Проверяем, находимся ли на страницах 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-cart-fragments');
            wp_dequeue_script('woocommerce');
            wp_dequeue_script('wc-checkout');
            wp_dequeue_script('wc-add-to-cart');
            wp_dequeue_script('jquery-blockui');
            wp_dequeue_script('jquery-placeholder');
            wp_dequeue_script('woocommerce-password-strength-meter');
        }
    }
}

3. Дополнительная проверка для AJAX и кастомных страниц

Если у вас есть кастомные страницы с элементами WooCommerce, добавьте их в условие, например, по ID или шаблону.

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

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

Частые ошибки при отключении скриптов WooCommerce и как их исправить

  • Ошибка: Отключение нужных скриптов на страницах магазина приводит к неработающим кнопкам добавления в корзину.
    Решение: Проверьте условия, чтобы страницы с элементами WooCommerce не попадали под отключение.
  • Ошибка: Скрипты не отключаются из-за приоритетов хуков.
    Решение: Используйте приоритет 99 или выше в add_action для корректного удаления скриптов.
  • Ошибка: PHP-функция is_woocommerce() возвращает false на AJAX запросах.
    Решение: Добавляйте дополнительные проверки, если нужно отключать скрипты для AJAX, например, проверяйте DOING_AJAX и wp_doing_ajax().

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

  • Не отключайте скрипты и стили на страницах, где они нужны — это может сломать функционал и повлиять на UX.
  • Если используете кэширование (например, плагин кеша или серверный кеш), очистите его после внесения изменений, чтобы увидеть эффект.
  • Для минимизации количества HTTP-запросов комбинируйте и минифицируйте CSS и JS с помощью специализированных плагинов или сборщиков (например, WP Rocket, Autoptimize).
  • Используйте wp_dequeue_script и wp_dequeue_style только для скриптов и стилей, зарегистрированных через WordPress API — у WooCommerce это работает корректно.

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

МетодПлюсыМинусы
Отключение через код (wp_dequeue_*)Контроль над страницами, гибкость, без сторонних плагиновНужны знания PHP, возможны ошибки при неправильных условиях
Плагины оптимизации (например, Asset CleanUp, Perfmatters)Удобный интерфейс, быстрая настройкаДополнительные плагины, нагрузка, иногда конфликтуют с WooCommerce
Отключение на уровне темы (условные загрузки)Интеграция с темой, хорошо для кастомных решенийМожет быть сложно поддерживать при смене темы
Как создать уникальный плагин для оптимизации базы данных WordPress
09.04.2026
Как исключить доставку для определённых товаров в WooCommerce
19.04.2026
Как удалить заблокированные или проблемные медиафайлы в WordPress
31.05.2026
Как добавить собственные поля в WordPress без плагинов
02.11.2025
Автоматическое удаление отменённых заказов в WooCommerce: пошаговое решение
29.05.2026