Как исправить ошибку 404 при пагинации WooCommerce

Диагностика ошибки 404 при пагинации WooCommerce

Ошибка 404 при переходе по страницам пагинации WooCommerce — распространённая проблема, возникающая чаще всего из-за неправильных настроек постоянных ссылок или конфликтов в теме и плагинах. Прежде чем приступать к исправлению, необходимо проверить следующие моменты:

  • Верны ли настройки постоянных ссылок в админке WordPress (Настройки > Постоянные ссылки).
  • Используется ли стандартный или кастомный шаблон для архива товаров.
  • Не конфликтуют ли сторонние плагины, особенно кэширования и SEO.
  • Правильно ли используется параметр paged в WP_Query, если пагинация кастомизирована.

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

Пошаговое решение проблемы 404 на страницах пагинации WooCommerce

1. Сброс постоянных ссылок

В админке перейдите в Настройки > Постоянные ссылки и нажмите «Сохранить изменения» без внесения правок. Это обновит правила перезаписи URL (rewrite rules).

2. Проверка корректности WP_Query с параметром paged

Если вы используете кастомный запрос для вывода товаров, убедитесь, что передаете параметр paged правильно:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = [
    'post_type' => 'product',
    'posts_per_page' => 12,
    'paged' => $paged,
];
$query = new WP_Query($args);

Без правильного определения paged пагинация не будет работать, и при переходе на страницу 2 и дальше будет 404.

3. Использование правильных функций для вывода пагинации

Для WooCommerce рекомендуют использовать стандартную функцию woocommerce_pagination(), которая корректно учитывает все нюансы. Пример вывода пагинации:

if ($query->max_num_pages > 1) {
    woocommerce_pagination();
}

Если вы выводите пагинацию вручную, используйте paginate_links() с правильными параметрами. Например:

echo paginate_links([
    'base' => str_replace(999999999, '%#%', esc_url(get_pagenum_link(999999999))),
    'format' => '?paged=%#%',
    'current' => max(1, get_query_var('paged')),
    'total' => $query->max_num_pages,
]);

4. Проверка шаблонов и хуков WooCommerce

Проверьте, не переопределяете ли вы шаблоны WooCommerce в теме, где пагинация может быть неправильно реализована. Файлы находятся в папке your-theme/woocommerce/. Особенно обратите внимание на archive-product.php и файлы шаблонов для вывода товаров.

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

После внесения изменений:

  1. Очистите кэш сайта и браузера.
  2. Перейдите на страницу каталога товаров.
  3. Переходите по страницам пагинации вперед и назад.
  4. Убедитесь, что URL меняется корректно, и страницы не выдают ошибку 404.
  5. Проверьте, что товары на каждой странице выводятся корректно.

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

  • Не передан параметр paged в WP_Query. Решение: обязательно добавить 'paged' => $paged в аргументы запроса.
  • Конфликт плагинов кэширования и SEO. Решение: временно отключить эти плагины, проверить пагинацию, затем настроить исключения в кэше.
  • Неправильные настройки постоянных ссылок. Решение: сбросить постоянные ссылки в админке.
  • Кастомные шаблоны WooCommerce без вызова стандартных хуков. Решение: использовать функцию woocommerce_pagination() или корректно реализовать пагинацию с paginate_links().

Практические советы для стабильной и безопасной пагинации WooCommerce

  • Используйте стандартные функции WooCommerce для вывода товаров и пагинации — это уменьшит вероятность ошибок при обновлениях.
  • При кастомизации WP_Query всегда учитывайте paged, иначе пагинация не будет работать.
  • Избегайте вывода пагинации на страницах с одним товаром или если товаров нет.
  • Проверяйте темы и плагины на совместимость с последней версией WooCommerce.
  • Для лучшей производительности используйте кэширование страниц и запросов, исключая пагинацию или настраивая её правильно.

Сравнение вариантов реализации пагинации WooCommerce

ВариантПлюсыМинусы
Стандартная пагинация WooCommerce (woocommerce_pagination())Простая, поддерживается официально, учитывает все нюансы WooCommerceМеньше гибкости для кастомизации
Кастомный WP_Query с paginate_links()Полный контроль над запросом и выводомТребует правильной реализации, легко допустить ошибки
Плагины для пагинации (например, WP-PageNavi)Удобство, расширенные настройки, готовые стилиМогут конфликтовать с WooCommerce, требуют дополнительной настройки

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

⭐⭐⭐⭐⭐
Как правильно настроить пагинацию для SEO в WordPress: лучшие практики и примеры
25.12.2025
Как использовать параметр paged в WP_Query для правильной пагинации
13.05.2026
Как исправить неработающую пагинацию при пользовательских запросах WP_Query в WordPress
28.04.2026
Как сделать пагинацию для комплексных запросов WordPress с фильтрацией по таксономиям
25.03.2026
Как сделать пагинацию для многоязычных сайтов WordPress
18.02.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее