Проблема с пагинацией в WordPress обычно выглядит одинаково: в индексе появляются страницы /page/2/, /page/3/ и дальше, а в Search Console растёт число «Просканировано, но не проиндексировано» или дублируются сниппеты. Само по себе наличие пагинации не ошибка, но для части сайтов это лишний шум: поисковик тратит краулинговый бюджет на страницы, которые не должны конкурировать с основной категорией или архивом.
Ниже — рабочий сценарий: как понять, что именно у вас дублируется, чем закрывать пагинацию от индексации, где это делать безопасно и как проверить результат без гадания.
Когда пагинацию действительно нужно закрывать
Не все страницы /page/N/ надо прятать от индекса. Если у вас большой каталог материалов, и вторая-третья страницы помогают пользователю и поисковику добраться до старых записей, оставлять их открытыми может быть нормально. Но если:
- в индексе много страниц пагинации без трафика;
- в выдаче вместо категории показывается
/page/2/или похожая страница; - внутренние ссылки ведут на пагинацию чаще, чем на сам архив;
- на сайте есть фильтры, сортировки или параметры, которые создают почти одинаковые страницы;
тогда имеет смысл ограничить индексацию именно пагинированных URL, а не всего архива целиком.
Диагностика: где именно появляются дубли
Сначала проверьте, что именно индексируется. Не полагайтесь только на плагины — они часто показывают общую картину, но не источник проблемы.
Что смотреть в первую очередь
- Google Search Console — отчёт по страницам и исключённым URL.
- site: запросы в поиске — ищите
/page/, параметры?paged=, архивы автора и рубрик. - Исходный код страниц — есть ли
rel="canonical"на саму страницу пагинации или на первую страницу архива. - robots.txt — не закрывает ли он случайно нужные разделы.
Если у вас включён SEO-плагин, проверьте, не ставит ли он noindex уже на уровне шаблона. Иногда проблема не в WordPress, а в конфликте между темой, плагином SEO и кастомным кодом.
Быстрая проверка через консоль
Можно посмотреть, как сервер отдаёт заголовки и canonical. Например:
curl -I https://example.com/category/news/page/2/И отдельно проверить HTML:
curl -s https://example.com/category/news/page/2/ | grep -i canonicalЕсли canonical указывает на первую страницу архива, это не всегда ошибка. Но если страница пагинации вам не нужна в индексе, лучше явно задать noindex,follow для таких URL.
Как закрыть пагинацию от индексации: три рабочих подхода
Есть три нормальных варианта: через SEO-плагин, через фильтр WordPress или через серверную логику. Выбор зависит от того, насколько у вас сложная тема и есть ли уже SEO-инструмент в проекте.
| Подход | Когда подходит | Плюс | Минус |
|---|---|---|---|
| SEO-плагин | Обычный сайт без сложной логики | Быстро и без кода | Меньше контроля над исключениями |
| Код в теме/плагине | Нужны точечные правила | Гибко и прозрачно | Нужна аккуратность при обновлениях |
| Серверные правила | Редко, когда нужно отдать заголовок на уровне сервера | Не зависит от темы | Сложнее поддерживать |
Вариант 1. Через SEO-плагин
Если у вас уже стоит SEO-плагин, проверьте настройки архивов и пагинации. В большинстве случаев достаточно включить noindex для страниц пагинации архивов, если плагин это умеет. Но важно не закрыть сами категории и теги целиком, иначе вы потеряете полезные посадочные страницы.
Если в проекте используется Clearfy Pro, там есть инструменты для чистки дублей и управления SEO-мета без лишнего кода. Это удобно, когда нужно убрать технический мусор, но не ломать структуру сайта. Смотрите настройки именно для архивов и дублей, а не общие переключатели на весь сайт: Clearfy Pro.
Вариант 2. Через код: noindex для страниц пагинации
Если нужен контроль без зависимости от плагина, можно добавить фильтр в functions.php дочерней темы или в собственный мини-плагин. Ниже пример для выдачи noindex,follow на страницах пагинации архивов, рубрик, меток и таксономий.
add_filter( 'wp_robots', function( array $robots ) {
if ( is_paged() && ( is_home() || is_archive() || is_search() ) ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Этот вариант хорош тем, что не трогает первую страницу архива. Но он сработает только там, где WordPress реально считает страницу пагинированной. Если у вас есть кастомные запросы, отдельные шаблоны или фильтры через GET-параметры, их надо обрабатывать отдельно.
Вариант 3. Через wp_robots с исключениями
Иногда нужно закрыть только часть архивов. Например, авторские страницы оставить открытыми, а рубрики и метки — нет. Тогда логика должна быть точнее:
add_filter( 'wp_robots', function( array $robots ) {
if ( is_paged() && ( is_category() || is_tag() ) ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Такой подход полезен, если рубрики у вас служебные, а авторские страницы реально приводят трафик и должны индексироваться.
Что делать с canonical и rel=next/prev
С canonical нужно быть аккуратным. Для страниц пагинации canonical может указывать на саму страницу или на первую страницу архива — зависит от логики SEO-плагина и структуры сайта. Если вы просто поставите noindex, но оставите внутренние ссылки на пагинацию, это не проблема: поисковик сможет переходить по ним, но не будет хранить страницу в индексе.
Атрибуты rel="next" и rel="prev" Google давно не использует как сигнал ранжирования, но некоторые темы и плагины всё ещё выводят их в коде. Это не критично, но и рассчитывать на них не стоит. Если у вас старый шаблон, проверьте, не генерирует ли он лишние ссылки в <head>.
Пошаговое решение без поломки SEO
- Определите, какие именно URL нужно закрыть: только
/page/N/или ещё и параметры сортировки. - Проверьте, нет ли уже
noindexв SEO-плагине или теме. - Добавьте правило через
wp_robotsили настройку плагина. - Не закрывайте первую страницу категории, если она является посадочной.
- Проверьте canonical и внутренние ссылки.
- После обновления отправьте на переобход только важные страницы, а не весь сайт.
Проверка результата после внедрения
После правки не ограничивайтесь просмотром исходника в браузере. Нужна проверка на нескольких уровнях.
- HTML-код: на странице пагинации должен появиться
noindex,followв мета robots или заголовке robots. - Search Console: через несколько дней/недель статус страниц должен измениться, а число дублей — уменьшиться.
- Логи сервера: если у вас есть доступ, посмотрите, не выросло ли число бесполезных обходов параметров и пагинации.
- Внутренняя навигация: ссылки на архивы должны вести на первую страницу категории, а не на случайную страницу пагинации.
Для точечной проверки удобно открыть страницу /page/2/ и посмотреть исходный HTML. Если используете командную строку, можно проверить заголовки так:
curl -I https://example.com/category/news/page/2/ | grep -i robotsЕсли заголовок не меняется, а в HTML всё корректно, значит мета robots выводится только в разметке. Это допустимо, но лучше понимать, где именно реализовано правило.
Частые ошибки и как их исправить
Закрывают весь архив вместо пагинации
Это самая дорогая ошибка. В итоге из индекса исчезает полезная посадочная страница рубрики, а остаётся только мусорный хвост. Исправление простое: проверяйте условие is_paged() и не ставьте noindex на первую страницу архива.
Ставят noindex через robots.txt
robots.txt не убирает уже известные поисковику URL из индекса так, как это делает noindex. Если страница уже попала в индекс, одного запрета на обход мало. Сначала задайте noindex, потом при необходимости ограничьте обход.
Путают пагинацию и фильтры
Параметры сортировки, фильтры по тегам, даты и поиск — это не всегда пагинация. Если закрыть всё одним правилом, можно случайно убрать полезные страницы или, наоборот, оставить дубли. Для параметров нужна отдельная логика.
Не проверяют тему и плагины на дубли мета-тегов
Иногда тема уже выводит canonical, а SEO-плагин добавляет свой. В результате в коде два canonical, и поисковик выбирает один из них по своему усмотрению. Проверьте исходник и оставьте только один источник мета-данных.
Практические советы по безопасности и производительности
Если вы вносите правки кодом, не редактируйте родительскую тему напрямую. Используйте дочернюю тему или отдельный мини-плагин. Так вы не потеряете изменения после обновления.
Не ставьте тяжёлые условия в wp_head без необходимости. Фильтр wp_robots как раз удобен тем, что работает на уровне логики WordPress и не требует парсить HTML на лету. Для больших сайтов это обычно чище, чем костыли через буферизацию вывода.
Если у вас много технических дублей — архивы, метки, вложения, страницы автора, пагинация — иногда выгоднее сначала навести порядок в базе правил SEO и только потом заниматься точечными исключениями. В таких проектах полезно иметь инструмент, который умеет убирать лишние дубли и не заставляет вручную править каждый шаблон.
Когда лучше не закрывать пагинацию
Если категория сама по себе является полноценной витриной контента и вторая-третья страницы стабильно получают переходы из поиска, закрывать их от индексации не всегда разумно. В этом случае лучше:
- оставить страницы открытыми;
- убрать мусорные параметры;
- сократить число дублей через нормальные canonical;
- следить, чтобы пагинация не перетягивала внутренний вес с первой страницы.
То есть задача не в том, чтобы «спрятать всё лишнее», а в том, чтобы поисковик видел одну понятную версию каждого типа страницы. Для WordPress это обычно решается точечно: без тотального noindex и без ломки архива целиком.