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

Диагностика проблемы: почему AJAX может замедлять WooCommerce

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

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

Как измерить влияние AJAX на производительность

  • Используйте вкладку Network в инструментах разработчика браузера (Chrome DevTools, Firefox) и посмотрите количество AJAX-запросов при загрузке страницы.
  • Измерьте время загрузки страницы до и после отключения AJAX с помощью инструментов типа GTmetrix или Pingdom.
  • Проверьте нагрузку на сервер через панель хостинга или SSH (команда top или htop).

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

Отключение AJAX обновления корзины

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

add_filter('woocommerce_add_to_cart_fragments', '__return_empty_array');

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

Отключение AJAX в виджете фильтра по атрибутам (если используется)

Если вы используете виджет «Фильтр по атрибутам» WooCommerce, AJAX можно отключить через настройку виджета в админке. Если такой настройки нет, отключите скрипт:

function disable_woocommerce_layered_nav_ajax() {
    wp_dequeue_script('woocommerce');
}
add_action('wp_enqueue_scripts', 'disable_woocommerce_layered_nav_ajax', 20);

Обратите внимание: это отключит все скрипты WooCommerce, что может повлиять на другие функции. Рекомендуется проверить работу сайта после внесения изменений.

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

  • Обновите страницу магазина и добавьте товар в корзину. Страница должна перезагружаться, а AJAX-запросы в Network не должны появляться.
  • Проверьте фильтры и убедитесь, что они работают без AJAX (страница обновляется при изменении фильтра).
  • Снова измерьте время загрузки страниц с помощью GTmetrix или аналогичных сервисов. Время должно уменьшиться при условии, что AJAX был узким местом.

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

  • Ошибка: Функции WooCommerce перестают работать после отключения AJAX.
    Причина: Отключен скрипт WooCommerce целиком.
    Решение: Отключать только конкретные AJAX-скрипты, избегая удаления основного скрипта. Внимательно тестируйте.
  • Ошибка: Обновление корзины не происходит.
    Причина: Не добавлен фильтр woocommerce_add_to_cart_fragments.
    Решение: Проверьте, что фильтр добавлен правильно и нет конфликтов с другими плагинами.
  • Ошибка: При фильтрации товаров страница не обновляется.
    Причина: Фильтры используют AJAX, но скрипты отключены некорректно.
    Решение: Проверьте настройки виджетов и корректность отключения скриптов.

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

  • Перед изменениями сделайте резервную копию сайта и базы данных.
  • Используйте дочернюю тему для добавления кода, чтобы не потерять изменения при обновлении темы.
  • Отключение AJAX поможет снизить нагрузку, но ухудшит UX — учитывайте баланс.
  • Рассмотрите использование кэширования (например, Redis или Object Cache), чтобы ускорить загрузку без отключения AJAX.
  • Регулярно проверяйте логи ошибок сервера, чтобы выявлять конфликты при внесении изменений.

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

МетодОписаниеПлюсыМинусы
Фильтр woocommerce_add_to_cart_fragmentsОтключает AJAX обновление корзиныПростой код, минимальное влияние на UXКорзина обновляется с перезагрузкой
Отключение скрипта WooCommerceОтключает AJAX у фильтров и других функцийСнижение нагрузки на серверМожет нарушить другие функции WooCommerce
Настройка виджетовОтключение AJAX в настройках фильтровУдобно, не требует кодаНе всегда доступно, зависит от темы и плагинов
Как создать автоматическую регистрацию пользователей в WordPress с помощью WPGPT
10.02.2026
Автоматическое изменение заголовков постов WordPress по заданным правилам
11.03.2026
Автоматическое удаление старых медиафайлов в WordPress
28.02.2026
Как удалить виджеты в WordPress по умолчанию
27.03.2026
Удаление заказов WooCommerce по статусу и дате через код
20.05.2026