Диагностика ошибки 404 при пагинации WooCommerce
Ошибка 404 при переходе по страницам пагинации в WooCommerce — распространённая проблема, связанная чаще всего с неправильной настройкой пермалинков или конфликтами с кастомными WP_Query. Основные признаки:
- При переходе на страницу 2 и далее в категориях или на главной странице магазина появляется ошибка 404;
- Пагинация видна, но ссылки не работают корректно;
- Отсутствие пагинации при наличии большого количества товаров.
Для начала нужно проверить настройки постоянных ссылок в WordPress и убедиться, что WooCommerce корректно интегрирован с ними.
Пошаговое решение проблемы 404 при пагинации WooCommerce
1. Сброс структуры пермалинков
Перейдите в Консоль > Настройки > Постоянные ссылки и просто нажмите «Сохранить изменения» без изменений. Это сбросит правила перезаписи и часто решает проблему.
2. Проверка .htaccess (для Apache)
Убедитесь, что файл .htaccess содержит стандартные правила WordPress:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressОтсутствие или повреждение этого файла вызывает 404 на страницах пагинации.
3. Проверка параметра paged в кастомных WP_Query
Если на сайте используются кастомные запросы для товаров, важно правильно передавать параметр 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 пагинация не будет работать.
4. Отключение конфликтующих плагинов
Временно отключите все плагины, кроме WooCommerce, и проверьте пагинацию. Если проблема исчезает, включайте плагины по одному, чтобы выявить конфликт.
5. Использование стандартных шаблонов WooCommerce
Если вы переопределяли шаблоны WooCommerce в теме, проверьте, не нарушена ли логика пагинации. Особенно это касается файлов archive-product.php и loop.
Проверка результата после внедрения
- Перейдите в каталог товаров и перейдите на страницу 2 и дальше — ошибка 404 должна исчезнуть;
- Проверьте URL пагинации: они должны иметь формат
/page/2/, а не содержать лишние параметры; - Если используется AJAX-пагинация, убедитесь, что новые страницы загружаются без ошибок;
- Проверьте консоль браузера на наличие ошибок JavaScript.
Частые ошибки и способы их исправления
- Неправильный параметр paged в WP_Query: часто используют
pageвместоpaged, что ломает пагинацию. - Кэширование страниц: старый кэш может отдавать 404. Очистите кэш плагинов (например, WP Super Cache, W3 Total Cache) и браузера.
- Конфликты с плагинами SEO: например, Yoast или Rank Math могут влиять на пермалинки. Проверьте настройки и исключения.
- Неправильные правила перезаписи: если вы используете Nginx, убедитесь, что конфигурация содержит правильные правила для WordPress.
Практические советы по производительности и безопасности
- При использовании кастомных WP_Query для товаров добавляйте параметр
no_found_rows => falseпо умолчанию, чтобы пагинация работала корректно. Если пагинация не нужна, ставьтеtrue, чтобы улучшить производительность. - Используйте кеширование страниц и объектное кеширование (Redis, Memcached) для снижения нагрузки при пагинации.
- Обновляйте WooCommerce и тему, чтобы избежать уязвимостей, связанных с пагинацией.
Сравнение вариантов решения ошибки 404 при пагинации WooCommerce
| Способ | Плюсы | Минусы |
|---|---|---|
| Сброс постоянных ссылок | Простое и быстрое решение | Не всегда помогает при сложных конфликтах |
Исправление параметра paged в WP_Query | Гарантирует корректную пагинацию при кастомных запросах | Требует навыков разработки |
| Отключение плагинов | Выявляет источники конфликтов | Временная мера, требует тестирования |
| Проверка .htaccess или Nginx конфигурации | Исправляет проблемы с перезаписью URL | Нужны права доступа к серверу |