Пагинация сама по себе не проблема. Проблема начинается, когда в индексе появляются десятки почти одинаковых страниц архивов, рубрик, тегов или поиска, а поисковик тратит обход на мусорные URL. В WordPress это часто всплывает после установки SEO-плагина, смены темы или включения бесконечной ленты без проверки мета-тегов.
Ниже — рабочая схема, которая помогает убрать дубли от пагинации без лишнего риска. Сначала разберём, что именно ломается, потом покажу варианты решения: через настройки плагина, через код и через проверку результата.
Когда пагинация становится SEO-проблемой
Если у вас есть архивы вида /category/news/page/2/, /tag/wordpress/page/3/ или страницы блога с постраничной выдачей, поисковик видит их как отдельные URL. Это нормально, пока каждая страница реально нужна пользователю и не дублирует первую страницу архива почти полностью.
Типичные симптомы:
- в Google Search Console растёт число проиндексированных URL с
/page/; - в отчётах появляются дубли title и description на страницах архива;
- в выдаче всплывают не те страницы, а вторые и третьи страницы архивов;
- боты тратят обход на малополезные URL вместо важных материалов.
Что проверить до изменений
Сначала откройте несколько страниц пагинации и посмотрите исходный код. Вас интересуют три вещи: robots, canonical и заголовки страницы. Если на второй странице архива стоит canonical на саму себя, а вы хотите, чтобы она не индексировалась, это уже повод для правки.
Проверьте также, не закрывает ли тема или плагин пагинацию слишком грубо. Иногда разработчики ставят noindex,follow на все архивы целиком, а это уже бьёт по индексации полезных страниц рубрик.
Какой вариант решения выбрать
Универсального ответа нет. Для одних сайтов достаточно настроек SEO-плагина, для других нужен фильтр в теме или мини-плагине. Ниже — короткое сравнение.
| Подход | Когда подходит | Минус |
|---|---|---|
| Настройки SEO-плагина | Если нужно быстро закрыть архивы и пагинацию без кода | Не всегда даёт точечный контроль |
| Код через фильтры | Если нужно закрыть только конкретные типы архивов | Нужно аккуратно тестировать после обновлений |
| robots.txt | Если надо ограничить обход, а не индексацию | Не решает проблему дублирования сам по себе |
Пошаговое решение через SEO-плагин
Если у вас уже стоит Yoast SEO, Rank Math или аналогичный плагин, начните с него. Это безопаснее, чем сразу лезть в код, потому что плагин обычно уже умеет правильно ставить meta robots и canonical.
Что менять в настройках
- закройте от индексации служебные архивы, если они не несут ценности;
- проверьте, не индексируются ли страницы поиска по сайту;
- убедитесь, что canonical на страницах пагинации не указывает на первую страницу, если плагин и тема ожидают самоссылку;
- не закрывайте весь архив рубрики, если он реально нужен для навигации и трафика.
В Yoast SEO и Rank Math логика может отличаться по версиям, поэтому ориентируйтесь не на название кнопки, а на результат в HTML-коде страницы. После сохранения откройте /page/2/ и проверьте, появился ли нужный meta robots.
Точечная правка через код
Если SEO-плагин не даёт нужной гибкости, можно добавить фильтр в мини-плагин или functions.php. Я бы рекомендовал именно мини-плагин, чтобы не потерять правку при смене темы.
Ниже пример: закрываем от индексации страницы пагинации архивов, но не трогаем первую страницу. Это не универсальный рецепт для всех сайтов, но для новостных и контентных архивов часто работает нормально.
<?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;
} );Что делает этот код: на второй и последующих страницах главной, архивов и поиска добавляет noindex, follow. Поисковик может переходить по ссылкам, но не должен держать эти страницы в индексе.
Если нужно закрыть только пагинацию рубрик, а не всё подряд, сузьте условие:
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_paged() && is_category() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Когда лучше не использовать noindex
Если у вас маленький сайт и каждая страница архива содержит уникальные материалы, закрывать пагинацию от индексации может быть лишним. В таком случае проблема не в индексации, а в качестве самих архивов: одинаковые сниппеты, одинаковые заголовки, слабая перелинковка. Тогда сначала чинят шаблон архива, а не robots.
Что делать с canonical и robots.txt
Canonical нужен для указания предпочтительной версии страницы. Но он не должен маскировать проблему там, где страница реально уникальна. Частая ошибка — ставить canonical со всех страниц пагинации на первую страницу архива. Это может выглядеть аккуратно, но поисковик теряет сигнал о структуре раздела.
robots.txt полезен, когда нужно снизить обход технических URL, но он не заменяет noindex. Если страница уже запрещена в robots.txt, бот может не увидеть meta robots на самой странице. Поэтому для индексации важнее управлять HTML-мета-тегами, а robots использовать как вспомогательный инструмент.
Пример аккуратного robots.txt
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Этот вариант не закрывает пагинацию напрямую, но ограничивает обход поиска и админки. Для пагинации лучше работать через wp_robots или SEO-плагин.
Как проверить, что решение сработало
После внедрения не ограничивайтесь визуальной проверкой. Откройте исходный код страницы /page/2/ и убедитесь, что там действительно есть нужная директива noindex. Затем проверьте canonical и заголовок страницы.
- в браузере:
view-source:для проблемной страницы; - в Search Console: отчёт по индексированию и проверка URL;
- в логах сервера: уменьшилось ли количество обходов служебных страниц;
- в выдаче: пропали ли дубли пагинированных URL через несколько переобходов.
Если используете кэш-плагин, очистите кэш после правки. Иначе вы можете смотреть на старую версию HTML и решить, что код не работает.
Частые ошибки и как их исправить
Ставят noindex на все архивы сразу
Так делают, когда хотят быстро убрать мусор из индекса. В итоге исчезают и полезные страницы рубрик. Исправление простое: ограничьте условие только пагинацией или только конкретными типами архивов.
Закрывают страницу в robots.txt и ждут удаления из индекса
Это не всегда срабатывает. Если страница уже известна поисковику, запрет в robots.txt не равен удалению из индекса. Для удаления нужен доступ бота к странице и корректный noindex либо ручная обработка через инструменты поисковой системы.
Ломают canonical на страницах архива
Иногда тема или плагин ставят canonical на первую страницу даже там, где пагинация нужна. После этого поисковик может игнорировать структуру раздела. Проверяйте canonical после каждого обновления темы и SEO-плагина.
Не учитывают кэш
Если на сайте включён page cache, правка в functions.php может не проявиться сразу. Очистите серверный кэш, кэш плагина и CDN, если он есть.
Практические советы по безопасности и производительности
Не вносите такие правки прямо в родительскую тему. При обновлении они исчезнут. Лучше использовать мини-плагин или дочернюю тему, если у вас уже выстроен такой процесс.
Если на сайте много архивов и фильтров, подумайте о сокращении числа индексируемых URL на уровне структуры: уберите лишние теги, не плодите пустые рубрики, не создавайте отдельные архивы под каждый служебный сценарий. Это часто даёт больше эффекта, чем точечный noindex.
Для сайтов на WordPress, где техничка уже накопилась, удобно сначала провести чистку дублей и служебных страниц, а потом закрепить правила индексации. В этом сценарии может помочь Clearfy Pro: он закрывает часть типовых дублей и упрощает настройку SEO-логики, но всё равно требует проверки результата в исходнике страницы и в Search Console.
Если после правок у вас остались сомнения, начните с одного типа архива, например только с рубрик. Когда увидите, что мета-теги и индексация ведут себя ожидаемо, переносите правило на остальные разделы. Это безопаснее, чем сразу менять поведение всего сайта.