Как отключить WooCommerce Cart Fragments для ускорения сайта

Что такое WooCommerce Cart Fragments и почему они замедляют сайт

Cart Fragments — это механизм WooCommerce, который обновляет содержимое корзины на странице динамически через AJAX без перезагрузки. Это удобно для пользователя, но создаёт дополнительную нагрузку на сервер и увеличивает время загрузки страниц, особенно на больших сайтах с большим трафиком. В итоге страница дольше рендерится, и снижается производительность.

Как диагностировать влияние Cart Fragments на производительность

Для проверки, замедляют ли Cart Fragments ваш сайт, используйте инструменты разработчика браузера и профилировщики:

  • Откройте вкладку Network в Chrome DevTools и обновите страницу. Если вы видите запросы к /?wc-ajax=get_refreshed_fragments, значит Cart Fragments активны.
  • Проверьте время загрузки страницы с помощью PageSpeed Insights или GTmetrix. Часто отключение Cart Fragments заметно уменьшает время загрузки.
  • Используйте плагин Query Monitor для оценки нагрузки на сервер и обнаружения AJAX-запросов WooCommerce.

Пошаговое отключение Cart Fragments через код

Самый надёжный способ — добавить код в файл functions.php вашей дочерней темы или в кастомный плагин:

add_action('wp_enqueue_scripts', 'disable_woocommerce_cart_fragments', 11);
function disable_woocommerce_cart_fragments() {
    if (class_exists('WooCommerce')) {
        wp_dequeue_script('wc-cart-fragments');
    }
}

Этот код отключит загрузку скрипта Cart Fragments, тем самым предотвратив AJAX-запросы и ускорив загрузку страниц.

Альтернативный способ с использованием фильтра

Редко, но можно ограничить частоту обновления фрагментов или полностью отключить через фильтр, добавив:

add_filter('woocommerce_cart_fragments_force_refresh', '__return_false');

Однако отключение скрипта через wp_dequeue_script даёт лучший эффект.

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

  • Очистите кеш сайта и браузера.
  • Снова откройте инструменты разработчика и убедитесь, что запросы /?wc-ajax=get_refreshed_fragments отсутствуют.
  • Повторно запустите тест скорости на PageSpeed Insights или GTmetrix — время загрузки должно улучшиться.
  • Проверьте работу корзины: добавление товаров должно работать, но обновление количества в шапке без перезагрузки страницы не будет.

Частые ошибки и способы их исправления

  • Ошибка: После отключения Cart Fragments количество товаров в корзине в шапке не обновляется.
    Решение: Это нормальный эффект — если нужен динамический апдейт, отключать не стоит. Можно добавить кастомный JS для обновления вручную.
  • Ошибка: Код не срабатывает и скрипт Cart Fragments всё ещё загружается.
    Решение: Убедитесь, что код добавлен в правильное место и вызывается на wp_enqueue_scripts с приоритетом выше 10 (например, 11). Проверьте наличие ошибок PHP.
  • Ошибка: Отключение Cart Fragments вызывает проблемы с плагинами, использующими корзину.
    Решение: Проверьте совместимость плагинов, возможно, понадобится кастомная доработка.

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

  • Всегда тестируйте изменения на копии сайта, чтобы не сломать функциональность.
  • Если используете кеширование, очищайте кеш после изменений.
  • Для сайтов с большим трафиком отключение Cart Fragments часто значительно снижает нагрузку на сервер.
  • Если нужна динамическая корзина, рассмотрите кастомные решения с минимальной нагрузкой.
  • Используйте плагины оптимизации, например Clearfy Pro, которые умеют управлять Cart Fragments и другими скриптами WooCommerce.

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

МетодПреимуществаНедостатки
Отключение через wp_dequeue_scriptПолное отключение, максимальное ускорение, простой кодПотеря динамического обновления корзины без перезагрузки страницы
Фильтр woocommerce_cart_fragments_force_refreshМожно тонко настроить обновление, не отключать полностьюМеньший эффект на производительность, может не помочь с нагрузкой
Плагины оптимизации (например, Clearfy Pro)Управление Cart Fragments без кода, дополнительные функции оптимизацииПлатные решения, зависимость от стороннего плагина
Как автоматически удалять старые черновики в WordPress
10.03.2026
Как использовать hooks в WordPress для расширения функциональности
27.11.2025
Как отключить WooCommerce Cart Fragments для ускорения сайта
06.05.2026
Как использовать функции WooCommerce в WordPress для разработки
04.12.2025
Как создать собственный виджет в WordPress с поддержкой настроек
13.11.2025