Как убрать 404 на страницах пагинации в WordPress и не сломать индексацию

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

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

Как понять, что проблема именно в пагинации

Сначала не трогайте код. Проверьте, где именно возникает ошибка: на всех архивах, только в рубриках, только в записях блога или только после переезда на HTTPS/новый домен. Это важно, потому что причина у пагинации архива и у пагинации главной страницы блога может быть разной.

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

  • открывается ли /page/2/ у рубрики, где точно есть больше 10–20 записей;
  • не меняли ли вы недавно Настройки → Постоянные ссылки;
  • нет ли в SEO-плагине правил, которые закрывают архивы или переписывают canonical;
  • не стоит ли кэш-плагин с агрессивной оптимизацией HTML и редиректов;
  • не отключены ли архивы у темы или через фильтры в functions.php.

Если 404 появляется только на страницах /page/2/, /page/3/ и дальше, а первая страница архива работает, почти всегда проблема в rewrite rules, конфликте с плагином или неверной настройке пагинации в шаблоне.

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

У WordPress пагинация архива строится на rewrite rules. Если правила устарели, не сброшены после изменения структуры ссылок или перехвачены другим кодом, сервер может отдавать 404 даже при наличии контента.

Начните с простого: откройте проблемный URL в браузере и посмотрите, что именно происходит — 404 от WordPress, 404 от сервера или редирект на главную. Это разные сценарии.

Проверка через админку и логика шаблона

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

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <!-- вывод записи -->
    <?php endwhile; ?>

    <?php the_posts_pagination( array(
        'mid_size'  => 2,
        'prev_text' => '&laquo; Назад',
        'next_text' => 'Вперёд &raquo;',
    ) ); ?>
<?php endif; ?>

Если вместо the_posts_pagination() используется самописный вывод ссылок, проверьте, не подставляется ли в URL неправильная база. Для архивов WordPress сам умеет строить корректные ссылки, и ручная сборка часто ломает /page/N/.

Проверка rewrite rules

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

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

Если нужен кодовый способ, используйте его только один раз при активации темы или плагина, а не на каждом запросе:

<?php
register_activation_hook( __FILE__, function () {
    flush_rewrite_rules();
} );

Важно: flush_rewrite_rules() нельзя вызывать постоянно. Если поставить его в init или в шаблон, сайт начнет тормозить, а правила будут пересобираться на каждом хите.

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

Если вы не уверены, где именно конфликт, двигайтесь по порядку. Так проще понять, что именно сломало пагинацию.

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

Откройте настройки постоянных ссылок и сохраните их заново. После этого проверьте проблемный URL. Если 404 исчезла, причина была в устаревших rewrite rules.

Шаг 2. Отключите конфликтующие плагины по одному

Особенно часто мешают плагины кэша, редиректов и SEO. Они могут менять canonical, перенаправлять страницы архива или подменять ответ на уровне сервера.

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

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

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

<?php
$paged = max( 1, get_query_var( 'paged' ) );
$args  = array(
    'post_type'      => 'post',
    'posts_per_page' => 10,
    'paged'          => $paged,
);

$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        the_title( '<h2>', '</h2>' );
    }

    echo paginate_links( array(
        'total'   => $query->max_num_pages,
        'current' => $paged,
    ) );
}
wp_reset_postdata();

Если забыть 'paged' => $paged, WordPress будет всегда показывать первую страницу запроса, а ссылки на следующие страницы могут вести в 404 или на пустой контент.

Шаг 4. Проверьте canonical и robots

Иногда сама страница не 404, но поисковик считает её проблемной из-за неправильного canonical или запрета в robots. Это особенно заметно, если SEO-плагин пытается «склеить» архивы.

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

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

ПодходКогда подходитМинус
Сброс постоянных ссылокПосле миграции, смены структуры URL, обновления темыНе решает конфликт в шаблоне или плагине
Правка шаблона и WP_QueryЕсли 404 только в кастомных архивах или блокахНужна аккуратность с paged и reset postdata
Отключение конфликтующего плагинаЕсли проблема появилась после установки SEO/кэша/редиректовНужно вручную искать конкретную настройку

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

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

После исправления не ограничивайтесь открытием одной страницы. Проверьте несколько уровней пагинации и несколько типов архивов.

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

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

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

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

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

Пагинация работает только на первой странице

Обычно это значит, что в кастомном запросе не передан paged, либо шаблон использует query_posts(). Последний вариант лучше не использовать: он ломает глобальный запрос и часто создает побочные ошибки.

После сохранения постоянных ссылок ничего не изменилось

Значит, проблема не в rewrite rules, а в конфликте темы, плагина или сервера. Проверьте, не включен ли редирект на уровне Nginx/Apache или в плагине безопасности.

Пагинация открывается, но поисковик видит дубли

Это уже не 404, а проблема индексации. Проверьте canonical, мета robots и то, не дублируется ли архив через несколько путей: с www и без, со слешем и без, с параметрами фильтрации.

404 появляется только у старых URL после переезда

Тогда нужен не только сброс правил, но и корректные 301-редиректы со старых адресов. Если просто закрыть проблему 404, можно потерять трафик и накопленные ссылки.

Что делать для безопасности и производительности

Если вы правите код, не вставляйте сброс rewrite rules в шаблон или на каждый запрос. Это лишняя нагрузка и потенциальный источник нестабильности.

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

Если у вас кастомная тема, храните правки пагинации в дочерней теме или в собственном плагине, а не в файлах обновляемой темы. Так вы не потеряете исправление после апдейта.

Итоговая логика простая: сначала выясняете, где именно ломается маршрут, затем сбрасываете правила, проверяете шаблон и только потом трогаете SEO- или кэш-настройки. В WordPress пагинация редко ломается «сама по себе» — почти всегда это следствие конкретной правки, и найти её можно по цепочке проверок, а не гаданием.

Как сделать автоматические отзывы с оценками в WordPress
21.09.2026
Как создать собственный тип записей (Custom Post Type) в WordPress
01.10.2026
Как автоматизировать удаление старых записей в WordPress без риска
01.10.2026
Как создать автоматические записи в WordPress с помощью Cron
03.10.2026
Как создать автоматическую резервную копию WordPress с помощью WPRemark
02.10.2026