Пагинация в WordPress часто создаёт не одну, а сразу несколько SEO-проблем: в индекс попадают страницы архивов вида /page/2/, поисковик тратит краулинговый бюджет на повторяющийся контент, а в отчётах появляются дубли заголовков и мета-описаний. На небольшом сайте это может быть незаметно, но на каталоге записей, новостном проекте или блоге с сотнями материалов проблема быстро становится системной.
Ниже разберём, как понять, что именно у вас ломает индексацию, какие варианты решения реально работают в WordPress и как проверить результат после внедрения.
Когда пагинация становится SEO-дублем
Сам по себе архив с постраничной навигацией не ошибка. Проблема начинается, когда:
- страницы
/page/2/,/page/3/и дальше повторяют один и тот же шаблон заголовка и описания; - в индексе оказываются страницы, которые не несут самостоятельной ценности;
- пагинация дублируется через категории, теги, авторские архивы и поиск по сайту;
- внутренние ссылки ведут на несколько вариантов одного и того же архива с разными параметрами;
- CMS или тема выводят canonical некорректно, и поисковик выбирает не ту страницу как основную.
Что обычно видно в диагностике
Проверьте в Google Search Console или Яндекс.Вебмастере страницы с параметрами и архивами. Если в отчётах много URL, которые отличаются только номером страницы, а трафика почти нет, это первый сигнал. Второй признак — в выдаче появляется не первая страница архива, а внутренняя, например /category/news/page/4/. Третий — у страниц пагинации одинаковые title и description.
Диагностика проблемы перед правкой
Не стоит сразу ставить noindex на всё подряд. Сначала нужно понять, как именно у вас формируются архивы и что уже делает тема или SEO-плагин.
- Откройте несколько архивов категорий и тегов, включая вторую и третью страницу пагинации.
- Посмотрите исходный код страницы и найдите тег
link rel="canonical". - Проверьте, не закрывает ли SEO-плагин архивы автоматически.
- Сравните title и meta description на первой и второй странице архива.
- Посмотрите, нет ли в sitemap страниц пагинации. Обычно их там быть не должно.
Если canonical на второй странице указывает на саму себя, а не на первую страницу архива, это не всегда ошибка. Но если такие страницы не должны индексироваться, canonical сам по себе проблему не решит.
Пошаговое решение: что делать в WordPress
На практике есть три рабочих сценария: закрыть пагинацию от индексации через SEO-плагин, поправить вывод мета-тегов кодом или ограничить индексацию только для отдельных архивов. Выбор зависит от темы и того, насколько аккуратно у вас устроены шаблоны.
Вариант 1. Закрыть пагинацию через SEO-плагин
Если у вас уже стоит плагин для SEO, сначала проверьте его настройки архивов. В большинстве случаев удобнее управлять индексированием там, а не вшивать логику в тему. Для части сайтов этого достаточно: архивы категорий остаются доступны пользователям, но не лезут в индекс.
Плюс подхода — меньше кода и меньше риска сломать шаблон. Минус — не все плагины одинаково гибкие, и иногда они закрывают слишком много, включая полезные страницы.
Вариант 2. Добавить noindex для страниц пагинации кодом
Если нужно точечно закрыть именно вторую и последующие страницы архивов, можно добавить мета-тег noindex,follow через wp_head. Это рабочий и проверяемый способ, если тема не выводит конфликтующие теги.
<?php
add_action( 'wp_head', function () {
if ( is_paged() && ( is_category() || is_tag() || is_author() || is_archive() ) ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1 );Этот код лучше размещать в дочерней теме или в небольшом функциональном плагине, а не в functions.php основной темы, если она часто обновляется.
Вариант 3. Исправить canonical для пагинации
Иногда проблема не в индексации как таковой, а в том, что canonical указывает не туда. Тогда поисковик может считать страницы дублями и игнорировать нужный URL. Если вы хотите, чтобы первая страница архива была основной, а остальные не конкурировали с ней, canonical должен быть предсказуемым.
<?php
add_filter( 'get_canonical_url', function ( $canonical, $post ) {
if ( is_paged() && ( is_category() || is_tag() || is_author() || is_archive() ) ) {
return get_pagenum_link( 1 );
}
return $canonical;
}, 10, 2 );Этот вариант подходит не для всех сайтов. Если у вас новостной архив, где страницы пагинации реально нужны для обхода контента, слишком агрессивный canonical может ухудшить индексацию новых материалов. В таком случае лучше ограничиться noindex только там, где страницы не несут ценности.
Сравнение подходов
| Подход | Когда использовать | Плюсы | Минусы |
|---|---|---|---|
| SEO-плагин | Если уже есть готовый инструмент и нужно быстро закрыть архивы | Без кода, проще сопровождать | Не всегда хватает точности |
noindex,follow через код | Если надо закрыть только пагинацию | Точечное управление | Нужно следить за конфликтами с плагинами |
| Правка canonical | Если поисковик выбирает не ту страницу | Помогает управлять дублями | Можно ошибиться и ухудшить индексацию |
Как проверить, что решение сработало
После правок не ограничивайтесь просмотром кода страницы. Проверка должна быть в нескольких слоях:
- откройте
/page/2/и убедитесь, что на странице есть нужныйmeta robotsили canonical; - проверьте исходный код на отсутствие второго, конфликтующего тега robots;
- посмотрите, не попала ли страница в XML-карту сайта;
- в Search Console отправьте URL на повторную проверку;
- через несколько дней сравните отчёт по индексированию и количество дублей в архивных разделах.
Если используете кэш, очистите его после внесения изменений. Иначе можно проверить старую версию страницы и сделать ложный вывод, что код не работает.
Частые ошибки и как их исправить
Два тега robots на одной странице
Так бывает, когда SEO-плагин уже выводит index,follow, а вы добавляете свой noindex поверх. В результате поисковик видит конфликт. Решение простое: оставьте только один источник мета-тегов.
Закрыли не только пагинацию, но и полезные архивы
Если в условии стоит только is_archive(), под него могут попасть страницы, которые вы не планировали закрывать. Лучше уточнять типы архивов и тестировать на категории, тегах и авторских страницах отдельно.
Canonical ведёт на несуществующий URL
Это случается после смены структуры постоянных ссылок или при кастомных фильтрах. Проверяйте, что get_pagenum_link( 1 ) возвращает реальный адрес первой страницы архива, а не URL с редиректом или 404.
Страницы пагинации всё ещё в sitemap
Если sitemap генерируется плагином, он может не учитывать вашу логику noindex. Тогда поисковик продолжит находить URL через карту сайта. Нужно исключить пагинацию на уровне генератора sitemap или через настройки SEO-плагина.
Практические советы по безопасности и производительности
Любая правка SEO-логики в WordPress должна быть обратимой. Не редактируйте ядро и не вносите изменения в файлы темы напрямую, если проект живёт дольше одного релиза. Используйте дочернюю тему или мини-плагин, чтобы быстро откатить правку при конфликте с обновлением.
Если на сайте много архивов и фильтров, полезно проверить, не создают ли они лишние URL с параметрами. Иногда проблема с пагинацией на самом деле маскирует более широкую проблему дублей. В таких случаях помогает чистка технических дублей и лишних архивов на уровне шаблонов и SEO-настроек. Для этого можно посмотреть в сторону инструментов вроде Clearfy Pro: https://wpshop.ru/plugins/clearfy.
Если у вас высоконагруженный сайт, не проверяйте изменения только в браузере. Используйте curl или просмотр исходника, чтобы убедиться, что кэш-плагин и CDN не подменяют заголовки и мета-теги.
curl -I https://example.com/category/news/page/2/
curl -s https://example.com/category/news/page/2/ | grep -i "robots\|canonical"Такой быстрый контроль помогает поймать ситуацию, когда на сервере всё уже исправлено, а посетители и поисковики ещё видят старую версию из кэша.