Как отключить AJAX-отображение товаров WooCommerce без перезагрузки страницы

Диагностика проблемы с AJAX-отображением товаров

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

Чтобы понять, используется ли AJAX для загрузки товаров, откройте страницу каталога, вызовите инструменты разработчика (F12 в браузере) и перейдите на вкладку Network. При переходе по страницам каталога или фильтрам посмотрите, загружаются ли данные через AJAX-запросы (XHR). Если да — WooCommerce применяет AJAX.

Пошаговое решение: как отключить AJAX-подгрузку товаров

1. Отключение AJAX в фильтрах и пагинации WooCommerce

Для отключения AJAX-подгрузки можно использовать фильтр woocommerce_enqueue_styles и деактивировать скрипты AJAX, ответственные за динамическую загрузку товаров. Но чаще AJAX добавляет тема или плагин. Универсальный способ — отключить скрипт wc-ajax, который отвечает за AJAX-запросы WooCommerce.

add_action('wp_enqueue_scripts', 'disable_woocommerce_ajax', 99); 
function disable_woocommerce_ajax() {
    wp_dequeue_script('wc-add-to-cart'); // отключаем AJAX добавление в корзину
    wp_dequeue_script('wc-single-product'); // если влияет на AJAX
    wp_dequeue_script('wc-cart-fragments'); // отключаем обновление корзины через AJAX
}

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

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

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

3. Принудительное обновление URL и переход по страницам

После отключения AJAX пагинация должна работать через обычные переходы по URL (например, /shop/page/2/), что улучшит SEO и совместимость.

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

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

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

  • Ошибка: Пагинация перестала работать после отключения AJAX.
    Причина: Тема или плагин жестко завязаны на AJAX для навигации.
    Решение: Проверьте шаблоны темы, верните скрипты и попробуйте другой подход — например, отключить AJAX только для SEO-ботов.
  • Ошибка: Добавление товаров в корзину перестало работать без AJAX.
    Причина: Скрипт wc-add-to-cart отключен полностью.
    Решение: Не отключайте wc-add-to-cart, если хотите сохранить AJAX добавление в корзину, отключайте только AJAX пагинацию.
  • Ошибка: AJAX запросы продолжают выполняться.
    Причина: Скрипты подгружаются из темы или сторонних плагинов.
    Решение: Найдите и отключите эти скрипты или настройте параметры плагина.

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

  • Отключение AJAX пагинации улучшает индексацию сайта поисковиками, так как страницы доступны по уникальным URL.
  • При работе с кэш-плагинами (WP Rocket, W3 Total Cache) убедитесь, что кэширование страниц каталога настроено корректно, чтобы избежать проблем с AJAX-загрузкой.
  • Избегайте отключения критичных для WooCommerce скриптов, таких как wc-cart-fragments, если не уверены в последствиях — это может повлиять на обновление мини-корзины.
  • Если нужно отключать AJAX только для поисковых роботов, используйте проверку user-agent и фильтры WordPress.

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

МетодПлюсыМинусыПример кода
Отключение скриптов wc-ajax через wp_dequeue_scriptПростая реализация
Минимальное вмешательство в тему
Возможны конфликты с темой или плагинами
Может сломать AJAX добавление в корзину
add_action('wp_enqueue_scripts', 'disable_woocommerce_ajax', 99);
function disable_woocommerce_ajax() {
    wp_dequeue_script('wc-add-to-cart');
}
Отключение AJAX в настройках плагинов фильтровГибко
Не требует кода
Не всегда доступно
Зависит от плагина
Через интерфейс плагина
Изменение шаблонов темы для стандартной пагинацииМаксимальный контроль
Полное отключение AJAX
Требует навыков PHP
Может сломать тему при ошибках
Правка файлов темы archive-product.php

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как создать беспроводной AJAX-черновик в WordPress: практическое руководство
16.01.2026
Как создать автоматический журнал активности пользователей в WordPress
21.02.2026
Как добавить авторизацию по телефону в WordPress с примерами плагинов и кода
04.01.2026
Как создать автоматический журнал изменений в WordPress с подробными примерами
13.01.2026
Как создать интерактивный журнал в WordPress с использованием плагинов и кода
08.02.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее