wpquiz.ru wordpress WPQuiz.ru

WordPress 404 на страницах пагинации: как исправить ошибки в архиве и рубриках

Если у вас нормально открывается первая страница рубрики, а /page/2/ или следующие страницы архива отдают 404, проблема почти всегда не в «битом WordPress», а в одном из трех мест: правилах пермалинков, конфликте с плагином кэша/SEO или в том, как тема выводит архивы. Это типичный технический сбой, который легко маскируется под «индексация сломалась», хотя на деле страдает обычная пагинация.

Ниже — практический разбор: как быстро диагностировать источник 404, что проверить в админке и на сервере, как исправить без лишних костылей и как убедиться, что все действительно заработало.

Когда проблема именно в пагинации, а не в индексации

Сначала важно отличить реальную ошибку маршрутизации от SEO-ограничений. Если страница существует, но закрыта от индексации через noindex или canonical, это одна история. Если же URL физически возвращает 404, это уже проблема запроса к WordPress или веб-серверу.

Типичные симптомы

  • первая страница рубрики открывается, а вторая и дальше — 404;
  • в админке в разделе «Записи» все нормально, но архивы категорий пустые на страницах 2+;
  • после смены темы или плагина SEO пагинация ломается только в некоторых типах архивов;
  • 404 появляется не везде, а только на URL вида /category/news/page/2/ или /tag/seo/page/3/;
  • в логах сервера нет ошибок PHP, но WordPress отдает не тот шаблон.

Что проверить в первую очередь

  • открывается ли URL напрямую в браузере без редиректов;
  • есть ли проблема только на архивных страницах или и на обычных страницах тоже;
  • не менялись ли недавно структура постоянных ссылок, рубрики или префикс категорий;
  • не включен ли плагин, который переписывает архивные URL;
  • не стоит ли агрессивный кэш на уровне сервера или CDN.

Диагностика: где именно ломается маршрут

Для начала проверьте, не сломаны ли правила перезаписи. В WordPress пагинация архивов строится на rewrite rules, и если они не обновились после изменений, часть URL начинает вести в 404.

Шаг 1. Сбросьте правила пермалинков

Самый безопасный тест — просто пересохранить структуру постоянных ссылок в админке: Настройки → Постоянные ссылки, ничего не меняя, нажать «Сохранить изменения». Это заставляет WordPress пересобрать rewrite rules.

Если у вас есть доступ к WP-CLI, можно проверить и обновить правила так:

wp rewrite flush --hard

Используйте это осознанно: команда переписывает правила и может быть лишней на высоконагруженном сайте, если запускать ее без причины. Для разовой диагностики это нормально.

Шаг 2. Посмотрите, не конфликтует ли плагин

Часто пагинацию ломают плагины, которые вмешиваются в архивы: SEO-плагины, фильтры контента, плагины кэша, мультиязычность, кастомные хлебные крошки. Самый быстрый способ — временно отключить все плагины, кроме необходимых для входа в админку, и проверить проблемный URL.

Если 404 исчезает, включайте плагины по одному. Обычно виновник находится быстро: либо плагин меняет query_vars, либо подменяет canonical/redirect, либо кеширует старую структуру.

Шаг 3. Проверьте шаблон архива в теме

Если тема пишет собственные запросы через WP_Query, она может неправильно передавать номер страницы. Это особенно заметно в кастомных архивах, блоках «похожие записи» и на главной, если она собрана вручную.

Частая ошибка — использовать paged не из глобального запроса или забыть его передать в параметры запроса. Для архивов это критично.

$paged = max( 1, get_query_var( 'paged' ) );

$query = new WP_Query( array(
    'post_type'      => 'post',
    'posts_per_page' => 10,
    'paged'          => $paged,
) );

Если paged не передан, WordPress будет считать, что это первая страница, и пагинация начнет вести себя странно: ссылки есть, а страницы 2+ не находятся.

Пошаговое решение без лишних рисков

Ниже порядок, который обычно дает результат без переустановки и «магических» плагинов.

1. Обновите правила перезаписи

После изменения структуры ссылок, рубрик, языковых префиксов или установки SEO-плагина сначала пересохраните постоянные ссылки. Это самый частый и самый недооцененный шаг.

2. Проверьте functions.php и кастомные запросы

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

$paged = max( 1, get_query_var( 'paged' ) );

$args = array(
    'post_type'      => 'post',
    'posts_per_page' => 12,
    'paged'          => $paged,
);

$archive_query = new WP_Query( $args );

Если вы выводите записи на статической странице-шаблоне, иногда нужен другой подход: get_query_var( 'page' ). Но это уже зависит от того, как именно устроен шаблон. Не смешивайте эти переменные наугад.

3. Уберите конфликтующие редиректы

Плагины безопасности и SEO иногда пытаются «исправить» URL и перенаправляют пагинацию на первую страницу архива. В результате пользователь видит не 404, а редирект, который потом снова ломается. Проверьте, нет ли правил, которые трогают страницы вида /page/2/.

Если используете собственный код редиректов, не делайте жесткий редирект для всех URL с /page/. Это слишком грубо и ломает нормальную пагинацию.

4. Очистите кэш

После исправления правил обязательно очистите:

  • кэш плагина;
  • серверный кэш, если он есть;
  • CDN-кэш;
  • браузерный кэш для теста в режиме инкогнито.

Иначе можно принять старую 404-страницу за незавершенное исправление.

Сравнение подходов: плагин, код или настройка сервера

ПодходКогда подходитПлюсыМинусы
Пересохранить постоянные ссылкиПосле миграции, смены темы, установки SEO-плагинаБыстро, безопасноНе помогает, если ошибка в шаблоне или плагине
Исправить запрос в темеКастомные архивы, собственные шаблоныТочное решениеНужен доступ к коду
Отключить конфликтующий плагинПосле обновления SEO, кэша, мультиязычностиНаходит источник проблемыТребует проверки по одному

Как проверить, что исправление сработало

После изменений не ограничивайтесь открытием первой страницы архива. Проверьте именно те URL, которые раньше отдавали 404.

  • Откройте /category/slug/page/2/ и /page/3/, если проблема была на главной или в архиве.
  • Посмотрите HTTP-статус через DevTools или curl -I.
  • Проверьте, что на странице есть ожидаемые записи, а не пустой шаблон.
  • Убедитесь, что canonical указывает на текущую страницу, а не на первую страницу архива.

Пример проверки через консоль:

curl -I https://example.com/category/news/page/2/

В ответе должен быть не 404 Not Found, а нормальный 200 OK. Если у вас есть мониторинг логов, полезно посмотреть, не продолжают ли приходить 404 на старые адреса после очистки кэша.

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

Используют paged там, где нужен page

Это типичная ошибка в шаблонах статических страниц. В результате вторая страница не находится, хотя код выглядит «почти правильно». Если шаблон работает с WP_Query на странице, проверьте, какой тип запроса у вас реально используется.

Не сбрасывают правила после изменения структуры ссылок

После смены префикса рубрик или переноса сайта rewrite rules могут остаться старыми. WordPress продолжает искать старые маршруты и отдает 404. Пересохранение постоянных ссылок обычно решает это без ручного редактирования .htaccess.

Путают 404 и noindex

Если страница открывается, но не индексируется, это не ошибка пагинации. Не лечите noindex через rewrite rules. Сначала проверьте статус ответа, потом уже SEO-настройки.

Ставят жесткий редирект на первую страницу

Иногда в коде добавляют редирект для всех URL с /page/, чтобы «убрать дубли». В итоге ломается нормальная навигация по архивам. Если нужен контроль индексации, лучше работать с canonical и мета-тегами, а не с грубым редиректом.

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

Если проблема была вызвана кастомным кодом, не оставляйте его в виде временного хака в functions.php без проверки. Лучше вынести логику в небольшой mu-plugin или хотя бы в отдельный файл, чтобы не потерять ее при смене темы.

Для сайтов с большим количеством архивов полезно:

  • не запускать тяжелые WP_Query без необходимости;
  • не делать лишние запросы в цикле пагинации;
  • не генерировать ссылки вручную, если можно использовать paginate_links();
  • следить, чтобы кэш не хранил старые 404 после деплоя.

Если вам нужен более широкий контроль над SEO-настройками, чисткой дублей и техническими мелочами, иногда проще использовать инструментальный плагин вроде Clearfy Pro, но только как дополнение к диагностике, а не вместо нее: сначала выясните причину 404, потом уже автоматизируйте рутину.

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

×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее