Как настроить noindex для страниц пагинации в WordPress

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

Задача здесь не в том, чтобы «спрятать» весь архив, а в том, чтобы аккуратно закрыть от индексации страницы вида /page/2/, /page/3/ и т. п., не ломая переходы между страницами и не убирая их из обхода. Для этого лучше понимать, что именно вы меняете: noindex для поисковика, а не nofollow для пользователей.

Когда пагинация действительно мешает индексации

Проблема обычно проявляется не в отчётах «на глаз», а в сочетании нескольких признаков:

  • в поиске всплывают страницы архивов с /page/2/ и дальше, хотя они не должны ранжироваться отдельно;
  • в индексе много URL с почти одинаковыми title и description;
  • в Search Console растёт число «Просканировано, но не проиндексировано» для архивных страниц;
  • поисковик чаще посещает вторые и третьи страницы рубрик, чем новые записи.

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

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

Сначала проверьте, как WordPress и тема отдают мета-теги на архивных страницах. Откройте несколько URL с пагинацией и посмотрите исходный код страницы. Нужны два момента: есть ли meta robots и не дублируются ли title/description между страницами.

Что смотреть в исходнике

На проблемной странице ищите строки вроде:

<meta name="robots" content="index,follow">

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

Дополнительно проверьте, не добавляет ли SEO-плагин canonical на первую страницу архива для всех страниц пагинации. Это нормальное поведение в некоторых конфигурациях, но в сочетании с index может давать путаницу в индексации.

Какой способ выбрать: плагин, код или SEO-настройка

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

СпособКогда подходитПлюсМинус
SEO-плагинЕсли уже используется Yoast SEO, Rank Math или аналогБез кода, быстроНе всегда удобно для точечной логики
Код в теме/плагинеЕсли нужна точная настройка для архивов и пагинацииКонтроль над условиямиНужно аккуратно тестировать
robots.txtТолько для очень грубых ограниченийПростоНе решает задачу noindex, а лишь ограничивает обход

Для пагинации robots.txt обычно не лучший инструмент. Он может скрыть URL от сканирования, но не заменяет noindex и не убирает уже известные страницы из индекса.

Пошаговое решение через код

Ниже — рабочий вариант для WordPress, который добавляет noindex,follow на страницы пагинации архивов. Его удобно положить в мини-плагин или в functions.php дочерней темы, если вы понимаете риски обновлений.

<?php
add_filter( 'wp_robots', function( array $robots ) {
    if ( is_paged() && ( is_archive() || is_home() || is_search() ) ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
} );

Что делает этот код:

  • is_paged() проверяет, что это не первая страница архива;
  • is_archive(), is_home() и is_search() покрывают основные типы страниц, где пагинация чаще всего лишняя в индексе;
  • wp_robots — штатный фильтр WordPress для управления robots-мета без подмены шаблонов.

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

<?php
add_filter( 'wp_robots', function( array $robots ) {
    if ( is_paged() && ( is_category() || is_tag() ) ) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
} );

Если SEO-плагин уже управляет robots

У некоторых SEO-плагинов есть собственная логика вывода robots. Тогда ваш фильтр может не сработать так, как ожидается, если плагин перезаписывает мета-теги позже. В таком случае сначала проверьте настройки архива в самом плагине, а уже потом добавляйте код. Не стоит одновременно включать noindex в двух местах — это усложняет диагностику.

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

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

  1. Откройте несколько URL пагинации и посмотрите исходный код страницы.
  2. Убедитесь, что на второй и последующих страницах появился meta name="robots" content="noindex,follow" или эквивалентный набор директив.
  3. Проверьте, что ссылки на следующую и предыдущую страницы архива по-прежнему доступны пользователю и не закрыты для обхода.

Если используете Search Console, отправлять страницы на переобход вручную обычно не нужно. Достаточно дождаться повторного сканирования. Для больших сайтов полезно проверить отчёт по страницам и убедиться, что количество индексируемых архивных URL постепенно снижается.

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

Ставят nofollow вместо follow

Это частая ошибка. nofollow на пагинации не нужен в большинстве случаев: он может ухудшить обход внутренних ссылок. Если цель — убрать страницу из индекса, используйте noindex,follow.

Закрывают пагинацию в robots.txt

Так делать можно только если вы понимаете последствия. Для уже известных URL это не равно noindex. Поисковик может продолжать держать адрес в индексе без контента или с устаревшим фрагментом.

Ставят noindex на первую страницу архива

Первая страница рубрики или блога часто важна для SEO и внутренней навигации. Если закрыть её по ошибке, вы потеряете основной входной URL. Проверяйте условие is_paged(), чтобы не затронуть первую страницу.

Дублируют логику в теме и SEO-плагине

Когда robots задаётся и в шаблоне, и в плагине, итоговый HTML становится непредсказуемым. Оставьте один источник истины: либо SEO-плагин, либо код.

Безопасность и производительность: что учесть

Сам по себе фильтр wp_robots почти не влияет на производительность, но есть практические нюансы. Не вставляйте такой код в случайный файл темы, если тема часто обновляется. Лучше вынести его в небольшой mu-plugin или в отдельный плагин проекта — так настройка не потеряется при обновлении.

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

  • не создаёт ли тема бесконечные комбинации URL с параметрами;
  • не индексируются ли страницы поиска по сайту;
  • не дублируются ли архивы по таксономиям с одинаковым контентом.

Для чистки дублей и технических SEO-настроек иногда удобнее использовать специализированные инструменты, например Clearfy Pro, если вам нужен набор точечных отключений без ручного редактирования шаблонов. Но даже в этом случае логику пагинации лучше проверить вручную, а не полагаться на общую настройку «по умолчанию».

Мини-чек-лист перед публикацией

  • Проверил, что noindex стоит только на страницах /page/2/ и дальше.
  • Убедился, что первая страница архива осталась индексируемой.
  • Сохранил follow, а не закрыл внутренние ссылки.
  • Посмотрел исходный код на нескольких типах архивов.
  • Не дублирую настройку в SEO-плагине и в теме одновременно.

Если нужно закрыть от индексации не только пагинацию, но и другие технические дубли, лучше сначала составить карту URL-типов на сайте. Тогда решение будет точечным: где-то достаточно noindex, где-то нужен canonical, а где-то — полное исключение из генерации.