Пагинация архивов в WordPress часто создаёт не очевидную, но вполне реальную проблему: страницы /page/2/, /page/3/ и дальше начинают конкурировать между собой, а иногда ещё и дублируют заголовки, описания и часть контента первой страницы архива. Это особенно заметно на блогах с рубриками, метками и архивами авторов.
Полностью закрывать пагинацию от индексации — не всегда правильный шаг. Если архив полезен пользователю и даёт уникальные страницы списка записей, лучше сначала убрать технические дубли и только потом решать, нужно ли ограничивать индексацию отдельных типов архивов.
Когда проблема действительно есть
Сначала стоит понять, что именно вы исправляете. Не каждая пагинация — дубль. Проблема возникает, если:
- страницы архива с разными номерами показывают одинаковые title и description;
- в
<link rel="canonical">на всех страницах стоит URL первой страницы; - в индекс попадают служебные страницы, которые не несут самостоятельной ценности;
- в поиске видны URL вида
/page/2/,/page/3/, но они не дают трафика и только распыляют сигналы; - архивы меток, авторов или дат генерируются автоматически и почти не отличаются по содержанию.
Как быстро диагностировать
Проверьте несколько страниц архива вручную:
- Откройте первую и вторую страницу рубрики.
- Сравните title, meta description и canonical в исходном коде.
- Посмотрите, меняется ли основной заголовок и список записей.
- Проверьте, нет ли в sitemap URL пагинации, если ваш SEO-плагин добавляет их туда.
Если canonical указывает на первую страницу, а в индекс попадают все страницы пагинации, это уже повод пересмотреть настройку.
Что делать: сравнение подходов
Есть три рабочих сценария. Выбор зависит от того, нужен ли вам индексируемый архив как точка входа.
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Исправить canonical и мета-теги | Архив нужен пользователям и поиску | Сохраняет структуру сайта, убирает путаницу | Требует аккуратной настройки темы или SEO-плагина |
Поставить noindex,follow на пагинацию | Страницы списка не должны ранжироваться | Просто внедрить, меньше дублей в индексе | Нужно следить, чтобы не закрыть полезные разделы |
| Сделать редирект на первую страницу | Пагинация не нужна вообще | Убирает лишние URL | Можно сломать навигацию и ухудшить UX |
На практике чаще всего достаточно первого или второго варианта. Редирект — это крайний случай, а не универсальное решение.
Пошаговое решение через код темы
Если вы не хотите полагаться только на SEO-плагин, можно точечно управлять мета-роботами и canonical для архивной пагинации. Ниже пример для functions.php дочерней темы или собственного мини-плагина.
add_filter('wp_robots', function ($robots) {
if (is_paged() && (is_category() || is_tag() || is_author() || is_date())) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});
add_filter('get_canonical_url', function ($canonical) {
if (is_paged() && (is_category() || is_tag() || is_author() || is_date())) {
return get_pagenum_link(1);
}
return $canonical;
});Что делает этот код:
- на страницах пагинации архивов добавляет
noindex,follow; - canonical возвращает на первую страницу архива;
- не трогает обычные записи и другие типы страниц.
Если вам нужно не закрывать архивы, а только убрать дубли title, можно отдельно изменить шаблон заголовка в теме. Но это уже зависит от конкретной реализации.
Если нужен редирект с пагинации
Редирект имеет смысл только тогда, когда страницы /page/2/ и дальше не должны существовать как отдельные точки входа. Делайте его аккуратно, без зацикливания.
add_action('template_redirect', function () {
if (is_paged() && (is_category() || is_tag() || is_author() || is_date())) {
wp_safe_redirect(get_pagenum_link(1), 301);
exit;
}
});Не применяйте такой редирект ко всем страницам подряд. Если у вас длинные рубрики с полезной навигацией, вы просто сломаете доступ к старым материалам.
Если используете SEO-плагин
В большинстве случаев удобнее настроить поведение через SEO-плагин, а код оставить как запасной вариант. Но важно проверить, не конфликтует ли плагин с темой и не переписывает ли canonical своими фильтрами.
Что обычно нужно проверить в настройках:
- индексация архивов рубрик и меток;
- правила для архивов авторов и дат;
- наличие
noindexна страницах пагинации; - генерация canonical для второй и последующих страниц;
- не попадают ли пагинированные URL в sitemap.
Если SEO-плагин уже умеет ставить noindex на архивы, не дублируйте это кодом без необходимости. Двойная логика часто приводит к тому, что один фильтр отменяет другой.
Как проверить, что решение сработало
После внедрения не ограничивайтесь визуальной проверкой. Нужны именно технические признаки:
- в исходном коде страниц пагинации появился
noindex,followили нужный вам вариант; canonicalуказывает на ожидаемый URL;- страницы пагинации не редиректят друг на друга по кругу;
- в Search Console нет резкого роста ошибок сканирования по этим URL;
- страницы архива по-прежнему открываются для пользователя, если вы не ставили редирект.
Проверить мета-роботы можно прямо в браузере через просмотр кода страницы или через команду:
curl -I https://example.com/category/news/page/2/Если вы используете редирект, в ответе должен быть 301 и конечный URL первой страницы архива. Если применяете noindex, заголовок ответа может остаться 200 — это нормально.
Частые ошибки и как их исправить
Закрывают всю рубрику вместо пагинации
Ошибка появляется, когда условие написано слишком широко. Например, is_category() без проверки is_paged() закроет и первую страницу архива, которая часто нужна для индексации.
Исправление: всегда проверяйте именно пагинированные страницы.
Ставят canonical на главную сайта
Это ломает смысл архива. Canonical должен вести либо на первую страницу конкретного архива, либо оставаться без изменений, если страница действительно самостоятельная.
Исправление: используйте get_pagenum_link(1), а не произвольный URL.
Делают редирект без проверки типа архива
Если редиректить всё подряд, можно повредить архивы, которые реально нужны для навигации. Особенно это заметно на больших сайтах с глубокой структурой рубрик.
Исправление: ограничьте редирект только нужными архивами и протестируйте несколько сценариев вручную.
Не проверяют sitemap
Иногда URL пагинации продолжают попадать в карту сайта, даже если на страницах уже стоит noindex. Это создаёт лишний шум для поисковых систем.
Исправление: проверьте настройки SEO-плагина и исключите пагинированные URL, если они не должны индексироваться.
Практические советы по безопасности и производительности
Любые изменения лучше вносить не в основной файл темы, а в дочернюю тему или небольшой mu-plugin. Так вы не потеряете правки при обновлении.
- не правьте
functions.phpактивной темы на живом сайте без резервной копии; - после изменений очистите кеш страницы и объектный кеш, если он есть;
- проверьте мобильную версию архива — иногда шаблон пагинации отличается;
- если используете несколько SEO-расширений, оставьте только одно место, где управляются canonical и robots;
- не закрывайте от индексации всё подряд ради «чистоты» — сначала смотрите на реальные URL в отчётах поиска.
Если на сайте уже накопились служебные дубли, полезно сначала навести порядок в архивной структуре, а потом уже заниматься более тонкой SEO-оптимизацией. В ряде случаев для этого удобен Clearfy Pro, но только если он действительно закрывает вашу задачу и не конфликтует с текущим стеком.
После внедрения изменений ещё раз откройте несколько архивов, проверьте исходный код и убедитесь, что поведение одинаковое на первой и последующих страницах. Именно это и показывает, что дубли из пагинации вы убрали, а сам архив не сломали.