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

Проблема с дублями пагинации в WordPress обычно всплывает не в теории, а в Search Console: в индекс попадают страницы вида /page/2/, /page/3/, иногда еще и параметры сортировки или фильтра. На небольшом сайте это может быть незаметно, но на блоге, новостнике или каталоге архивы быстро разрастаются, а поисковик начинает тратить обход на страницы, которые не дают новой ценности.

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

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

Сначала стоит убедиться, что вы боретесь именно с дублями, а не с нормальной пагинацией. Страницы архива /category/news/page/2/ сами по себе не ошибка. Ошибка начинается, когда:

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

Что проверить в первую очередь

  • открывается ли у страниц пагинации корректный <link rel="canonical">;
  • не генерирует ли тема одинаковый <title> для всех страниц архива;
  • нет ли плагина, который добавляет noindex на все архивы без разбора;
  • не создают ли фильтры и сортировки дополнительные URL с тем же контентом.

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

Что именно закрывать: пагинацию, параметры или оба варианта

Не все дубли одинаковы. Пагинация архива — это один сценарий. URL с параметрами вроде ?sort=popular или ?filter=... — другой. Если закрыть все подряд, можно случайно убрать из индекса полезные посадочные страницы. Поэтому сначала разделите источники дублей.

ВариантКогда подходитМинус
noindex,follow для страниц пагинацииАрхивы с большим числом страниц, где важна только перваяСтраницы остаются доступны, но не должны ранжироваться
canonical на первую страницу архиваКогда вторые страницы почти не несут самостоятельной ценностиНужно аккуратно проверить поведение темы и SEO-плагина
robots.txtДля грубого отсечения технических параметровЛегко переусердствовать и закрыть полезные URL

На практике для WordPress чаще всего достаточно noindex,follow для страниц пагинации архивов и отдельной обработки параметров, если они реально создают дубли.

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

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

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

    return $robots;
});

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

Если нужно закрыть только архивы записей и таксономий, но оставить поиск открытым для индексации, сузьте условие:

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

    return $robots;
});

Когда нужен canonical на первую страницу

Если тема или SEO-плагин не выставляет canonical корректно, можно добавить его вручную. Но делать это стоит только после проверки текущего HTML. Слишком агрессивный canonical на первую страницу иногда мешает поисковику понимать структуру архива.

<?php
add_action('wp_head', function () {
    if (is_paged() && (is_home() || is_archive())) {
        $canonical = get_pagenum_link(1);
        echo '<link rel="canonical" href="' . esc_url($canonical) . '" />' . "\n";
    }
}, 1);

Этот прием имеет смысл только если вы точно понимаете, что canonical от темы или SEO-плагина неверный. Иначе вы рискуете создать две версии canonical на странице.

Диагностика после внедрения

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

  • основной архив, например /blog/;
  • страницу пагинации /blog/page/2/;
  • архив рубрики /category/news/page/3/;
  • страницу поиска, если она у вас индексируется.

Дальше проверьте:

  • есть ли в исходнике meta robots или заголовок X-Robots-Tag с нужным значением;
  • не дублируется ли canonical;
  • не исчезли ли ссылки на следующую и предыдущую страницы архива;
  • не изменился ли статус ответа на 200 OK.

Удобно смотреть это через DevTools, curl или инструменты проверки URL в Search Console. Пример запроса:

curl -I https://example.com/blog/page/2/

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

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

Ставят noindex на все архивы подряд

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

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

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

Оставляют одинаковые title и description

Даже если страницы закрыты от индексации, одинаковые мета-теги мешают диагностике и путают админов. Для пагинации лучше явно добавлять номер страницы в title, если она остается доступной пользователю.

Добавляют canonical на первую страницу без проверки SEO-плагина

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

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

  • Проверил, какие именно URL создают дубли.
  • Убедился, что пагинация не закрывает полезные страницы.
  • Проверил текущий canonical и robots в исходном коде.
  • Добавил noindex,follow только туда, где это нужно.
  • Открыл несколько URL вручную и убедился, что они отдаются с 200.
  • Сравнил поведение с SEO-плагином, чтобы не было двойной логики.

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

Если вы вносите правки через код, не редактируйте родительскую тему напрямую. Используйте дочернюю тему или mu-plugin, иначе обновление затрет изменения. Для сайтов с несколькими редакторами лучше вынести логику в отдельный мини-плагин: так проще отключать и тестировать.

Если у вас много технических дублей не только в пагинации, но и в метках, архиве дат, вложениях и служебных страницах, имеет смысл сначала навести порядок в общей SEO-логике. В таких случаях иногда удобнее использовать специализированный инструмент вроде Clearfy Pro, но только как средство управления настройками, а не как замену проверке исходного HTML и индексации.

Еще один практический момент: не добавляйте тяжелую логику в wp_head без необходимости. Для robots и canonical достаточно простых условий и стандартных фильтров WordPress. Чем меньше лишнего кода на каждой странице, тем меньше риск конфликтов с темой и плагинами.

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как отключить автоматическое обновление плагинов в WordPress
26.09.2026
Как закрыть от индексации старые версии CSS и JS файлов в WordPress без поломки кэша
24.09.2026
Как избежать дублирования вариаций товаров в WooCommerce при импорте
11.08.2026
Как использовать WPRemark для создания динамических форм в WordPress
19.09.2026
Как использовать хук pre_get_posts для тонкой фильтрации записей в WordPress
10.09.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »