Как отключить AJAX в WooCommerce для ускорения страницы корзины

Диагностика проблемы с производительностью страницы корзины WooCommerce

Страница корзины WooCommerce может загружаться медленно из-за активного использования AJAX для обновления содержимого без перезагрузки. Это полезно для UX, но на больших магазинах с большим числом товаров и плагинов AJAX-запросы могут создавать нагрузку и увеличивать время ответа сервера.

Проверьте производительность страницы корзины с помощью инструментов браузера (Chrome DevTools) во вкладке Network. Обратите внимание на частоту и длительность AJAX-запросов типа wc-ajax=get_refreshed_fragments. Если запросы занимают существенное время, это повод для оптимизации.

Пошаговое решение: отключение AJAX обновления корзины

1. Отключаем AJAX-обновление корзины через фильтр

WooCommerce позволяет отключить обновления с помощью AJAX, вернув false из фильтра woocommerce_cart_item_remove_link или более правильно — через JavaScript, отключая скрипты AJAX.

Лучший способ — отключить скрипты, которые отвечают за AJAX на странице корзины. Для этого добавьте следующий код в файл functions.php вашей темы или в свой плагин:

add_action('wp_enqueue_scripts', 'disable_woocommerce_cart_ajax', 99);
function disable_woocommerce_cart_ajax() {
    if (is_cart()) {
        wp_dequeue_script('wc-cart-fragments');
        wp_dequeue_script('woocommerce');
        wp_dequeue_script('wc-checkout');
    }
}

2. Удаляем AJAX обработчики кнопок обновления корзины

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

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

Очистите кеш браузера и сайта, зайдите на страницу корзины и откройте DevTools. Вкладка Network должна показать отсутствие или значительное уменьшение вызовов wc-ajax=get_refreshed_fragments. Кнопка "Обновить корзину" теперь перезагружает страницу.

Проверьте скорость загрузки страницы через инструменты типа Google PageSpeed Insights — время отклика должно снизиться.

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

  • Ошибка: Отключение скриптов приводит к сломанной корзине.
    Причина: Плагины или тема зависят от AJAX для динамических функций.
    Решение: Тестируйте на тестовом сайте, отключайте плагины по очереди, чтобы выявить конфликт.
  • Ошибка: После отключения AJAX кнопка "Обновить корзину" не работает.
    Причина: Кастомные скрипты перекрывают стандартное поведение формы.
    Решение: Проверьте консоль браузера на ошибки JavaScript, отключите кастомные скрипты, исправьте ошибки.
  • Ошибка: Время загрузки страницы корзины не улучшилось.
    Причина: Причина в другом (медленный хостинг, тяжелые плагины).
    Решение: Проведите комплексный аудит производительности, используйте профилирование.

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

  • Отключая AJAX, уменьшаете нагрузку на сервер, но теряете часть интерактивности. Балансируйте.
  • Используйте кэширование страниц корзины, если отключаете AJAX, это значительно ускорит загрузку.
  • Проверяйте совместимость с плагинами кеширования (например, WP Rocket, LiteSpeed Cache) — они часто конфликтуют с AJAX корзиной.
  • Регулярно обновляйте WooCommerce и тему, чтобы использовать последние оптимизации.

Сравнение вариантов отключения AJAX в WooCommerce

МетодПреимуществаНедостатки
Отключение скриптов через wp_dequeue_scriptПолное отключение AJAX, простота реализацииПотеря интерактивности, возможные конфликты с плагинами
Отключение отдельных AJAX-обработчиков через фильтрыТонкая настройка, сохраняет часть функционалаСложнее реализовать, требует тестирования
Использование плагинов оптимизации (например, Clearfy Pro)Автоматизация, дополнительные возможности очисткиДополнительные зависимости, может быть платным

Пример кода для отключения AJAX обновления корзины

add_action('wp_enqueue_scripts', 'disable_woocommerce_cart_ajax', 99);
function disable_woocommerce_cart_ajax() {
    if (is_cart()) {
        // Отключаем фрагменты корзины AJAX
        wp_dequeue_script('wc-cart-fragments');
        // Отключаем основные скрипты WooCommerce AJAX
        wp_dequeue_script('woocommerce');
        wp_dequeue_script('wc-checkout');
    }
}

Пример проверки AJAX запросов в Chrome DevTools

1. Откройте страницу корзины.

2. Нажмите F12, перейдите во вкладку Network.

3. В фильтре введите wc-ajax и обновите страницу.

4. Проверьте наличие запросов get_refreshed_fragments. Их должно быть минимум или нет.

Оценка и оптимизация загрузки картинок в WooCommerce для ускорения сайта
08.05.2026
Как автоматизировать проверку и удаление спам-комментариев в WordPress
25.01.2026
Как создать автоматические уведомления в WordPress с помощью хуков и AJAX
10.03.2026
Как избежать конфликтов между плагинами WordPress: практическое руководство
09.12.2025
Как автоматизировать обновление WordPress и плагинов с помощью кода
25.11.2025