Пагинация в WordPress часто создает не одну, а сразу несколько SEO-проблем: в индекс попадают страницы /page/2/, /page/3/ и дальше, хотя они почти полностью дублируют архив или рубрику. На небольшом сайте это может быть незаметно, но на контентном проекте такие страницы быстро раздувают индекс и мешают поисковику сосредоточиться на основных URL.
Задача здесь не в том, чтобы «убрать все страницы пагинации», а в том, чтобы правильно разделить сценарии: где пагинация нужна для пользователя и робота, а где ее лучше закрыть от индексации или хотя бы не давать ей конкурировать с основной страницей архива.
Когда пагинация становится SEO-дублем
Проблема обычно проявляется в трех случаях. Первый — рубрики с короткими текстами и однотипными карточками записей: вторая и третья страницы почти не отличаются от первой. Второй — архивы с сортировкой, где к пагинации добавляются параметры URL, и дубли становятся еще грязнее. Третий — сайты, где в sitemap попадают все страницы архива, включая глубоко вложенные, хотя они не несут самостоятельной ценности.
Если в Search Console вы видите много страниц вида /category/slug/page/2/ или /tag/slug/page/4/, это не всегда ошибка. Но если такие URL получают показы, а основные страницы рубрик проседают, стоит проверить, не размывает ли пагинация релевантность.
Что именно нужно диагностировать
- Есть ли у страниц пагинации уникальный контент или это просто список записей.
- Попадают ли они в индекс Google и Яндекса.
- Есть ли у них canonical на самих себя или на первую страницу архива.
- Не создают ли плагины SEO, фильтров или кеша дополнительные параметры URL.
- Не дублируются ли архивы через теги, авторов, даты и поиск по сайту.
Диагностика проблемы перед правками
Сначала проверьте, как WordPress отдает пагинацию в текущей теме. Откройте несколько URL вручную и посмотрите исходный код страницы. Нас интересуют <meta name="robots">, rel="canonical" и заголовки ответа сервера. Если canonical указывает на саму страницу пагинации, поисковик может воспринимать ее как отдельную страницу. Если canonical всегда ведет на первую страницу архива, это тоже не универсальное решение: иногда так теряется логика обхода.
Полезно сравнить поведение на рубриках, тегах и авторских архивах. Часто оказывается, что закрывать нужно не все подряд, а только часть архивов. Например, рубрики оставить открытыми, а теги и авторов — закрыть, если они не несут самостоятельной ценности. Пагинация в этом случае становится частью общей стратегии индексации, а не отдельной проблемой.
// Быстрая проверка canonical и robots на странице архива через PHP-отладку в шаблоне темы.
// Используйте временно, не оставляйте в продакшене.
<?php
if ( is_paged() ) {
global $wp_query;
echo '<pre>';
var_dump( get_queried_object() );
echo '</pre>';
}
?>Как закрыть пагинацию от индексации в WordPress
Есть три рабочих подхода: через SEO-плагин, через код темы или через комбинацию этих вариантов. Выбор зависит от того, насколько тонко вам нужно управлять архивами.
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы без кода | Меньше контроля над отдельными типами архивов |
| Код в теме или mu-plugin | Нужна точечная логика для рубрик, тегов, авторов | Требует аккуратного тестирования |
| Комбинация | Есть SEO-плагин, но нужна донастройка | Легко получить конфликт правил |
Вариант 1: закрыть пагинацию через robots meta
Если ваша цель — не допустить индексацию глубокой пагинации, но оставить переходы для обхода, можно добавить noindex, follow для страниц архива со второй страницы и дальше. Это не удаляет URL из интернета, но подсказывает поисковику не включать их в индекс.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_paged() && ( is_category() || is_tag() || is_author() || is_archive() ) ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Этот вариант хорош, если вам важно сохранить доступность ссылок на следующие страницы для робота и пользователя. Но он не решает вопрос canonical и не убирает саму страницу из обхода, если на нее активно ведут внутренние ссылки.
Вариант 2: задать canonical на первую страницу архива
Иногда логичнее оставить пагинацию открытой для обхода, но указать canonical на первую страницу рубрики или тега. Такой подход применяют, когда страницы пагинации не должны конкурировать с основной страницей архива. Делать это нужно осторожно: canonical должен соответствовать реальной структуре сайта, иначе поисковик просто проигнорирует подсказку.
<?php
add_filter( 'get_canonical_url', function( $canonical, $post ) {
if ( is_paged() && ( is_category() || is_tag() || is_author() || is_archive() ) ) {
$canonical = get_pagenum_link( 1 );
}
return $canonical;
}, 10, 2 );На практике этот вариант лучше использовать только после проверки в исходном коде темы и в SEO-плагине. Если плагин уже генерирует canonical для архивов, ваш фильтр может не сработать так, как ожидается, или будет перезаписан позже.
Вариант 3: закрыть отдельные архивы полностью
Если рубрики полезны, а теги и авторские архивы не несут ценности, можно закрыть именно их. Это часто дает больший эффект, чем борьба только с пагинацией. В таком случае пагинация перестает быть самостоятельной проблемой внутри уже ненужного архива.
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_tag() || is_author() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
if ( is_paged() && ( is_tag() || is_author() ) ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Если вы используете SEO-плагин, сначала проверьте его настройки. Например, в Clearfy Pro есть инструменты для чистки дублей и управления техническими страницами; это удобнее, чем держать все правила в теме, если сайт уже живет на плагинах и редакторских архивах. Подробности можно посмотреть на странице Clearfy Pro.
Пошаговое решение без лишнего риска
- Определите, какие архивы должны индексироваться: рубрики, теги, авторы, даты.
- Проверьте, как сейчас настроены robots meta и canonical.
- Решите, что делать именно с пагинацией: noindex, canonical или полное закрытие архива.
- Внесите правку в дочернюю тему или mu-plugin, а не в ядро темы.
- Проверьте несколько URL вручную и через Search Console.
- Снимите старые URL из индекса только после того, как убедитесь, что новые правила отдаются стабильно.
Если нужен более безопасный путь без правок кода, можно начать с SEO-плагина и только потом вынести точечные исключения в код. Это особенно полезно, когда на сайте уже есть нестандартные типы записей и архивы, которые нельзя закрывать одинаково.
Как проверить, что решение сработало
Проверка должна быть не формальной, а по факту ответа страницы. Откройте URL второй страницы архива и убедитесь, что в исходном коде появился нужный robots-тег или canonical. Затем проверьте заголовки ответа и кеш: если у вас стоит серверный кеш или CDN, старая версия страницы может еще какое-то время отдаваться из кеша.
- Страница пагинации открывается без 404 и без редиректа на первую страницу, если это не было задумано специально.
- В исходном коде есть нужный
noindexили canonical. - В Search Console страница со временем уходит из индекса или меняет статус на исключенную.
- Основная страница рубрики не теряет доступность и остается в индексе.
Если вы меняли правила через код, проверьте еще и мобильную версию: некоторые темы выводят разные шаблоны для desktop и mobile, и технические мета-теги могут отличаться.
Частые ошибки и как их исправить
Закрывают все архивы подряд
Это типичная ошибка, когда под раздачу попадают и полезные рубрики. В итоге сайт теряет внутреннюю структуру, а поисковику становится сложнее понимать тематические разделы. Исправление простое: закрывайте только те архивы, которые реально не нужны в индексе.
Ставят canonical на первую страницу, но оставляют индексируемые параметры URL
Если на сайте есть сортировки, фильтры или параметры ?replytocom=, canonical сам по себе не спасает. Нужно отдельно убрать лишние параметры, проверить ссылки в шаблоне и, при необходимости, закрыть технические URL на уровне robots или правил сервера.
Правят файл темы напрямую
После обновления тема перезапишется, и проблема вернется. Для таких задач лучше использовать дочернюю тему или небольшой mu-plugin. Это особенно важно, если на сайте несколько разработчиков и изменения должны быть воспроизводимыми.
Не учитывают кеш
После изменения robots meta или canonical старые версии страниц могут еще долго отдаваться из кеша. Очистите кеш плагина, серверный кеш и CDN, иначе проверка даст ложный результат.
Практические советы по безопасности и производительности
Не добавляйте тяжелую логику в каждый запрос без необходимости. Фильтр wp_robots легкий, но если вы начинаете внутри него дергать сложные запросы к базе, это уже лишняя нагрузка. Для точечных правил лучше использовать встроенные условные теги WordPress и не обходить их дополнительными запросами.
Если на сайте много архивов, проверьте, не генерирует ли тема лишние ссылки на пагинацию в сайдбаре, хлебных крошках или блоках «похожие записи». Иногда именно они создают лишний crawl budget, а не сама пагинация как шаблон.
Когда нужен более широкий технический аудит дублей, полезно смотреть не только на пагинацию, но и на архивы тегов, авторов, дат, вложения медиа и страницы поиска. В таких сценариях удобнее сначала навести порядок в технических страницах, а уже потом точечно закрывать пагинацию.
Если у вас задача не только с пагинацией, но и с общей чисткой дублей, можно использовать связку SEO-плагина и ручных правил. Главное — не смешивать несколько источников истины для одного и того же URL-типa: либо правило в плагине, либо правило в коде, либо четко разделенные зоны ответственности.