wpcoding.ru wordpress WP Coding

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

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

Почему стоит отключить AJAX в WooCommerce? Проблемы производительности и UX

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

  • Обновление мини-корзины при добавлении товара
  • Фильтрация товаров и пагинация на страницах магазина
  • Обновление содержимого корзины и страницы оформления заказа

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

  • Задержки в рендеринге контента из-за ожидания ответов сервера
  • Конфликты с другими плагинами, использующими AJAX
  • Повышенная нагрузка на сервер из-за частых AJAX-запросов

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

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

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

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

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

function wpcoding_disable_ajax_add_to_cart() {
    if ( class_exists('WooCommerce') ) {
        wp_dequeue_script('wc-add-to-cart');
    }
}
add_action('wp_enqueue_scripts', 'wpcoding_disable_ajax_add_to_cart', 100);

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

Отключение AJAX фильтров и пагинации

Если на вашем сайте используются AJAX-фильтры (например, с плагином WooCommerce Product Filters) или AJAX пагинация, их необходимо настроить отдельно. Для стандартных функций WooCommerce AJAX пагинация не используется, но сторонние плагины могут её включать.

В случае использования плагина WooCommerce Product Filters можно отключить AJAX в настройках фильтров. Если фильтры реализованы кастомно, необходимо убрать JS-обработчики AJAX и переключиться на обычную отправку формы.

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

Обновление мини-корзины через AJAX также можно отключить, чтобы минимизировать запросы:

function wpcoding_disable_ajax_fragments( $fragments ) {
    return [];
}
add_filter( 'woocommerce_add_to_cart_fragments', 'wpcoding_disable_ajax_fragments' );

Этот фильтр предотвращает обновление мини-корзины после добавления товара, что уменьшает количество AJAX-запросов.

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

После внесения изменений важно проверить работу сайта на разных устройствах и браузерах. Обратите внимание на следующие моменты:

  • Добавление товаров в корзину происходит с перезагрузкой страницы
  • Фильтрация и переход по страницам магазина работают корректно
  • Отсутствие JS-ошибок в консоли браузера

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

Рекомендуемые плагины для управления AJAX и оптимизации WooCommerce

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

  • Clearfy Pro – мощный инструмент для оптимизации и отключения ненужных скриптов, включая AJAX-запросы.
  • WPRemark – плагин для тонкой настройки WooCommerce, включая оптимизацию запросов и кеширование.

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

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

×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙