Диагностика проблемы: почему лишние скрипты WooCommerce замедляют сайт
WooCommerce по умолчанию подключает множество скриптов и стилей на всех страницах сайта, даже если функционал магазина используется не везде. Это увеличивает время загрузки, особенно если на сайте есть много страниц с контентом и магазин — лишь часть проекта.
Для начала нужно понять, какие скрипты и стили подключаются, и на каких страницах. Это поможет не отключить нужные ресурсы и избежать поломок.
Как проверить подключаемые скрипты и стили WooCommerce
- Откройте страницу сайта в браузере.
- Запустите инструменты разработчика (F12 в Chrome/Firefox).
- Перейдите на вкладку Network (Сеть) и обновите страницу.
- Отфильтруйте список по скриптам (JS) и стилям (CSS), обращайте внимание на пути с
woocommerce, например/wp-content/plugins/woocommerce/assets/js/frontend/. - Запишите, какие именно скрипты грузятся на страницах без магазина.
Пошаговое решение: как отключить неиспользуемые скрипты и стили WooCommerce по страницам
Задача — отключить скрипты WooCommerce на страницах, где не требуется функционал магазина (например, на блогах, информационных страницах).
Шаг 1. Определяем страницы, где нужен WooCommerce
В большинстве случаев WooCommerce нужен на следующих страницах:
- Каталог товаров и архивы товаров
- Страница товара
- Корзина
- Оформление заказа
- Личный кабинет
Мы будем отключать скрипты на всех остальных страницах.
Шаг 2. Добавляем фильтр для отключения скриптов и стилей
В файл functions.php вашей темы (лучше дочерней) или в плагин для кастомных функций добавьте следующий код:
function clearfy_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('woocommerce');
wp_dequeue_script('wc-cart-fragments');
wp_dequeue_script('wc-checkout');
wp_dequeue_script('wc-add-to-cart');
wp_dequeue_script('wc-single-product');
wp_dequeue_script('wc-cart');
}
}
}
add_action('wp_enqueue_scripts', 'clearfy_dequeue_woocommerce_assets', 99);Шаг 3. Тестируем изменения
После добавления кода очистите кеш браузера и кеш сайта (если используете кэш-плагины).
Проверьте:
- Страницы без магазина — скрипты и стили WooCommerce не должны загружаться.
- Страницы с магазином — все функции должны работать корректно (корзина, добавление товара, оформление заказа).
Проверка результата после внедрения
Чтобы удостовериться, что скрипты реально отключились, повторите диагностику из первого раздела:
- Откройте страницу без магазина.
- Проверьте через DevTools, что скрипты и стили WooCommerce не загружаются.
- Откройте страницу магазина, убедитесь, что все работает как прежде.
Если на страницах магазина что-то перестало работать, значит отключены нужные скрипты. Их нужно вернуть назад, убрав из списка wp_dequeue_script или wp_dequeue_style.
Частые ошибки и как их исправить
- Ошибка: Функция
is_woocommerce()не определена.
Причина: WooCommerce не активен или функция вызвана слишком рано.
Решение: Проверяйте наличие функции черезfunction_exists('is_woocommerce'), и запускайте код на хукwp_enqueue_scriptsс приоритетом 99. - Ошибка: На страницах магазина не работают кнопки или корзина.
Причина: Отключены нужные скрипты.
Решение: Убедитесь, что отключаете только скрипты на страницах, где магазин не используется. - Ошибка: Кэширование мешает увидеть изменения.
Решение: Очистите кеш браузера, кеш плагинов и CDN.
Практические советы по безопасности и производительности
- Не отключайте скрипты WooCommerce на страницах магазина — это сломает функционал.
- Используйте дочернюю тему или плагин для пользовательских функций, чтобы избежать потери изменений при обновлении.
- Тестируйте на стейджинг-сайте перед внедрением на боевом.
- Для продвинутой оптимизации можно отключать скрипты и стили только для отдельных шаблонов страниц или по пользовательским условиям.
Сравнение способов отключения скриптов WooCommerce
| Метод | Плюсы | Минусы |
|---|---|---|
| Через wp_dequeue в functions.php | Полный контроль, бесплатно, работает на уровне темы | Требует знаний PHP, можно случайно сломать сайт |
| Плагины оптимизации (например, Clearfy Pro) | Простота, интерфейс, дополнительные функции оптимизации | Платные, могут конфликтовать с кастомным кодом |
| Отключение через настройки темы (если есть) | Легко включать/выключать | Редко встречается, ограничено возможностями темы |