wpcompany.ru wordpress WPCompany

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

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

Почему стоит отключить AJAX в WooCommerce

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

  • Уменьшить количество запросов к серверу;
  • Ускорить полную загрузку страницы;
  • Упростить отладку и совместимость с другими плагинами;
  • Снизить риски конфликтов с кастомными скриптами.

Но стоит учитывать, что пользователям придется видеть обновление корзины и фильтров только после перезагрузки страницы.

Как отключить AJAX обновление корзины в WooCommerce

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

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

function wpcompany_disable_ajax_add_to_cart() {
    // Удаляем скрипт AJAX добавления в корзину
    wp_dequeue_script('wc-add-to-cart');
}
add_action('wp_enqueue_scripts', 'wpcompany_disable_ajax_add_to_cart', 100);

// Отключаем AJAX для кнопок add_to_cart
function wpcompany_disable_ajax_add_to_cart_button($args, $product) {
    $args['ajax_add_to_cart'] = false;
    return $args;
}
add_filter('woocommerce_loop_add_to_cart_args', 'wpcompany_disable_ajax_add_to_cart_button', 10, 2);

Этот код удаляет скрипт wc-add-to-cart, который отвечает за AJAX добавление товаров из каталога, и меняет аргументы кнопок, чтобы они работали с обычным запросом.

Проверка результата

После добавления кода проверьте на фронтенде, что при клике на кнопку «Добавить в корзину» страница перезагружается, а не обновляется динамически.

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

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

Для этого найдите в настройках плагинов фильтрации возможность отключить AJAX или добавьте следующий код:

function wpcompany_disable_woocommerce_widget_ajax() {
    wp_dequeue_script('wc-price-slider');
    // Аналогично отключите другие AJAX скрипты, если они есть
}
add_action('wp_enqueue_scripts', 'wpcompany_disable_woocommerce_widget_ajax', 100);

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

Использование плагинов для оптимизации и управления AJAX

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

  • Clearfy Pro — плагин оптимизации, где есть опции отключения AJAX в WooCommerce;
  • WPRemark — плагин для улучшения отзывов и работы с AJAX на сайте;

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

Как отключить AJAX обновление мини-корзины

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

function wpcompany_disable_fragments_update() {
    wp_dequeue_script('wc-cart-fragments');
}
add_action('wp_enqueue_scripts', 'wpcompany_disable_fragments_update', 100);

Этот код отключит скрипт wc-cart-fragments, отвечающий за обновление мини-корзины без перезагрузки страницы.

Последствия отключения

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

Тестирование и отладка после отключения AJAX

После внесения изменений обязательно проведите тесты:

  • Проверьте, что добавление товаров работает корректно и корзина обновляется после перезагрузки;
  • Оцените скорость загрузки страниц через инструменты PageSpeed Insights или GTmetrix;
  • Проверьте совместимость с другими плагинами, особенно с теми, что работают с корзиной и фильтрами;
  • Если возникают ошибки JavaScript, используйте консоль браузера для диагностики.

При необходимости можно включать или отключать отдельные части кода для поэтапной оптимизации.

Выводы и рекомендации

Отключение AJAX в WooCommerce — полезная практика для сайтов, испытывающих проблемы с производительностью или конфликтами скриптов. Это можно сделать вручную с помощью кода или с помощью специализированных плагинов, таких как Clearfy Pro.

Обязательно учитывайте пользовательский опыт: отключение AJAX означает больше перезагрузок страниц, но взамен — стабильность и скорость.

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

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше