Как убрать дубли страниц пагинации из индексации в WordPress

Проблема с пагинацией в WordPress обычно всплывает не в момент запуска сайта, а позже: в индексе появляются страницы вида /category/page/2/, /tag/page/3/, архивы автора дублируются, а в Search Console растёт число «Просканировано — сейчас не проиндексировано». Самая частая ошибка — пытаться лечить это одним универсальным noindex на всё подряд. В результате можно случайно закрыть от индексации полезные страницы, а дубли останутся в обходных вариантах URL.

Когда проблема действительно в пагинации

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

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

тогда имеет смысл ограничить индексацию именно пагинированных архивов, а не всего архива целиком.

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

Откройте несколько типовых URL и сравните исходный код. Важно проверить не только метатег robots, но и канонический адрес, а также заголовки ответа сервера, если у вас подключены серверные правила.

<meta name="robots" content="noindex,follow">
<link rel="canonical" href="https://example.com/category/">

Если на странице /category/page/2/ каноникал указывает на первую страницу архива, это не всегда ошибка. Но если одновременно страница доступна по нескольким адресам, например с параметрами сортировки, с www и без www, с разными слешами, дубли множатся.

Какой вариант решения выбрать

Есть три рабочих подхода: через SEO-плагин, через код темы или через комбинацию обоих. Ниже — короткое сравнение, чтобы не делать лишнего.

Подход Когда подходит Минус
SEO-плагин Если нужен быстрый и предсказуемый результат без правки темы Не всегда удобно тонко настраивать отдельные типы архивов
Код в теме или mu-plugin Если нужна точечная логика для конкретных архивов Требует аккуратного тестирования после обновлений
Комбинация Если часть архивов надо оставить в индексе, а часть закрыть Нужно следить, чтобы правила не конфликтовали

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

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

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

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

    return $robots;
});

Этот вариант использует стандартный фильтр wp_robots, который есть в современных версиях WordPress. Он безопаснее, чем прямой вывод метатега в шаблоне, потому что не ломает разметку и не зависит от конкретного файла темы.

Если нужно закрыть только часть архивов

Иногда закрывать авторские архивы не хочется, а вот теги и пустые категории — да. Тогда логику можно сузить:

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

    return $robots;
});

Такой подход полезен, если авторские страницы у вас реально собирают переходы или используются как навигационный слой по контенту.

Настройка через SEO-плагин

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

Если плагин позволяет задавать шаблоны robots для таксономий, проверьте, не включено ли там одновременно noindex и каноникал на первую страницу. Иногда это нормально, но иногда создаёт путаницу при отладке: в коде видно одно, а в индексе поисковик ведёт себя по-другому из-за внутренних сигналов сайта.

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

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

  • Откройте /category/page/2/ и убедитесь, что в исходнике есть noindex,follow.
  • Проверьте, что первая страница архива не получила тот же robots-тег.
  • Сравните canonical на первой и второй странице архива.
  • Посмотрите, не закрылись ли случайно архивы, которые должны оставаться в индексе.
  • В Search Console отправьте URL на повторную проверку только после того, как убедились в корректной разметке.

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

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

Закрыли весь архив вместо пагинации

Это случается, когда правило написано через is_category() без проверки is_paged(). В итоге первая страница категории тоже получает noindex. Исправление простое: добавьте условие is_paged() и протестируйте URL /category/ отдельно от /category/page/2/.

Поставили noindex, но оставили дубли в параметрах

Если на сайте есть сортировки, фильтры или UTM-параметры, одних правил для пагинации недостаточно. Поисковик может находить альтернативные URL с тем же контентом. В этом случае нужно отдельно проверить canonical, правила редиректов и, при необходимости, очистку лишних параметров в ссылках.

Сломали шаблон темы прямым выводом meta robots

Иногда разработчики вставляют метатег вручную в header.php. После обновления темы или подключения дочерней темы правило теряется, а в некоторых шаблонах появляется дублирующий тег. Лучше использовать штатные фильтры WordPress или возможности SEO-плагина.

Ожидали мгновенного исчезновения из индекса

noindex не удаляет URL моментально. Поисковику нужно переобойти страницу и увидеть новый сигнал. Поэтому после правки важно не только проверить исходник, но и дождаться повторного обхода. Если страница долго не переобходится, проверьте внутренние ссылки на неё и общую доступность сайта для ботов.

Практические советы по безопасности и производительности

Если вы вносите код, лучше не править активную тему напрямую. Для точечных SEO-правил удобнее использовать дочернюю тему или небольшой mu-plugin. Так настройка не исчезнет после обновления, а риск случайно сломать шаблон ниже.

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

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

  • Проверили, какие архивы должны индексироваться, а какие нет.
  • Убедились, что правило применяется только к страницам пагинации.
  • Сверили canonical и robots на первой и второй странице архива.
  • Проверили исходный код, а не только визуальный результат в браузере.
  • Не трогали шаблон напрямую, если можно обойтись фильтром или настройкой плагина.
  • После правки отправили на повторную проверку только проблемные URL.

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

⭐⭐⭐⭐⭐