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

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

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

Проверьте, замедляется ли сайт именно из-за AJAX, с помощью инструментов анализа производительности (Query Monitor, New Relic) и отключите AJAX на тестовом сайте перед применением на боевом.

Какие AJAX-функции можно отключить в WooCommerce

Чаще всего отключают:

  • Обновление корзины в виджете (mini cart)
  • Фильтры товаров на страницах каталога
  • Кнопку «Добавить в корзину» на страницах архивов

Пошаговое отключение AJAX в WooCommerce

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

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

add_filter('woocommerce_widget_cart_is_hidden', '__return_true'); // Мини-корзина не обновляется через AJAX

add_filter('woocommerce_add_to_cart_fragments', '__return_empty_array'); // Отключаем обновление корзины в header через AJAX

2. Отключаем AJAX для кнопки «Добавить в корзину» на страницах архива

Если в вашем шаблоне используется AJAX для добавления товара в корзину с архивных страниц, отключите его так:

function disable_ajax_add_to_cart() {
    remove_action('wp_footer', array(WC_Frontend_Scripts::class, 'localize_printed_scripts'));
}
add_action('wp_enqueue_scripts', 'disable_ajax_add_to_cart', 99);

Это отключит локализацию скриптов, отвечающую за AJAX добавление, но может потребовать корректировок темы.

3. Отключаем AJAX для фильтров и сортировки

Если используете плагин для фильтров с AJAX (например, FacetWP или WOOF), отключите AJAX в настройках плагина. Если фильтры реализованы кастомно, уберите обработчики AJAX в JS и PHP.

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

  • Откройте страницу с корзиной, добавьте товар и убедитесь, что страница перезагружается при обновлении корзины.
  • Проверьте, что кнопка «Добавить в корзину» на страницах каталога перезагружает страницу, а не обновляет корзину без перезагрузки.
  • С помощью инструментов разработчика браузера убедитесь, что не отправляются AJAX-запросы при действиях корзины.
  • Проверьте скорость загрузки и нагрузку на сервер — время ответа должно уменьшиться.

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

  • После отключения AJAX кнопки «Добавить в корзину» перестают работать. Проверьте, не завязаны ли другие скрипты темы или плагинов на AJAX-обработчики. Включите консоль браузера — там могут быть ошибки JS.
  • Мини-корзина не обновляется после добавления товара. Убедитесь, что фильтры woocommerce_add_to_cart_fragments удалены правильно, или полностью отключите мини-корзину, если она не нужна.
  • Фильтры товаров перестали работать. Проверьте настройки плагинов фильтрации, возможно, нужно отключать AJAX именно там, а не вручную.

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

  • Перед внесением изменений создайте бэкап сайта.
  • Тестируйте изменения на тестовом или staging-сайте.
  • Отключайте AJAX выборочно — не всегда его отключение улучшит UX.
  • Используйте кеширование страниц (например, через Clearfy Pro из WPShop), чтобы снизить нагрузку на сервер.
  • Регулярно обновляйте WooCommerce и плагины, чтобы избежать конфликтов.

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

МетодОписаниеПлюсыМинусы
Код в functions.phpОтключение через хуки и фильтрыГибко, бесплатно, нет лишних плагиновТребует навыков, возможны ошибки JS
Настройки плагинов фильтрацииОтключение AJAX в настройках фильтровПросто, без кодаЗависит от плагина, не всегда доступны опции
Полное отключение мини-корзиныУдаление виджета мини-корзиныСнимает нагрузкуПотеря UX, требуется замена функционала
Как удалить или заблокировать роботов в WordPress через robots.txt: практические решения
21.05.2026
Автоматический бэкап WordPress: лучшие плагины и примеры кода
25.11.2025
Как создать и использовать динамические таблицы в WordPress
17.11.2025
Как успешно использовать WPCommunity для создания форума на WordPress
18.01.2026
Как установить разные виды редиректов в WordPress
22.01.2026