Что такое WooCommerce Cart Fragments и почему они влияют на производительность?
Cart Fragments — это AJAX-запросы, которые WooCommerce использует для динамического обновления содержимого корзины без перезагрузки страницы. Они позволяют обновлять количество товаров и стоимость в корзине на всех страницах сайта. Однако на больших проектах или при слабом хостинге эти запросы могут создавать дополнительную нагрузку и снижать скорость загрузки страниц.
Если ваш сайт испытывает проблемы с производительностью, особенно на страницах без корзины, отключение Cart Fragments может дать заметный прирост в скорости.
Диагностика: как понять, что Cart Fragments тормозят сайт
- Откройте консоль разработчика в браузере (F12) и перейдите на вкладку Network.
- Обновите страницу и найдите запросы с именем
wc-ajax=get_refreshed_fragments. - Обратите внимание на время отклика и количество таких запросов.
- Если их много, и они занимают больше 200-300 мс — это индикатор, что Cart Fragments создают нагрузку.
Пошаговое решение: как отключить Cart Fragments через код
Для отключения Cart Fragments нужно убрать скрипт, который отвечает за эти AJAX-запросы. Это можно сделать, добавив следующий код в файл functions.php вашей темы или в плагин для пользовательских функций:
add_action('wp_enqueue_scripts', 'disable_woocommerce_cart_fragments', 11);
function disable_woocommerce_cart_fragments() {
if (function_exists('is_woocommerce')) {
wp_dequeue_script('wc-cart-fragments');
}
}
Этот код отменяет подключение скрипта wc-cart-fragments, тем самым отключая AJAX-обновление корзины.
Альтернативный способ: отключение через плагин
Если вы предпочитаете не трогать код, можно использовать плагин Clearfy Pro (https://wpshop.ru/plugins/clearfy), который позволяет управлять многими оптимизациями WooCommerce, включая отключение Cart Fragments в пару кликов.
Проверка результата после отключения
- Обновите страницу и откройте вкладку Network в консоли разработчика.
- Убедитесь, что запросы
wc-ajax=get_refreshed_fragmentsотсутствуют. - Проверьте отображение корзины — она перестанет обновляться динамически на всех страницах, кроме страницы корзины и оформления заказа.
- Измерьте скорость загрузки страниц с помощью инструментов Google PageSpeed Insights или GTmetrix до и после изменений.
Частые ошибки при отключении Cart Fragments и как их исправить
- Корзина не обновляется после добавления товара
Отключение Cart Fragments убирает динамическое обновление. Чтобы избежать путаницы у пользователей, добавьте на страницу корзины и оформления заказа явное обновление через перезагрузку или уведомления. - Кэширование и отключение Cart Fragments
Если на сайте включено кэширование страниц, убедитесь, что страницы с корзиной и оформлением заказа исключены из кэша, иначе пользователи увидят устаревшие данные. - Конфликты с плагинами кэширования
Некоторые плагины кэширования имеют собственные настройки для Cart Fragments. Убедитесь, что вы не отключаете их дважды или не нарушаете логику работы.
Практические советы по безопасности и производительности
- Исключайте страницы корзины и оформления заказа из кэша — это предотвратит отображение устаревших данных.
- Тестируйте изменения на staging-сайте перед применением на боевом.
- Используйте плагин Clearfy Pro для комплексной оптимизации WooCommerce и отключения ненужных функций безопасно и удобно.
- Минимизируйте количество активных плагинов, чтобы уменьшить нагрузку на сайт.
- Оптимизируйте изображения и используйте CDN для снижения времени загрузки.
Сравнение способов отключения WooCommerce Cart Fragments
| Способ | Плюсы | Минусы |
|---|---|---|
| Через код (functions.php) | Быстро, бесплатно, контроль над процессом | Требует навыков, возможны ошибки при редактировании кода |
| Плагин Clearfy Pro | Удобно, дополнительные функции оптимизации, безопасно | Платно, требует изучения интерфейса |