Пагинация сама по себе не проблема. Проблема начинается, когда поисковик видит несколько почти одинаковых URL: первую страницу архива, вторую, третью, а иногда еще и версии с параметрами, где контент отличается только хвостом списка. В WordPress это часто превращается в дубли, размывает сигналы и мешает нормально оценивать основные страницы разделов.
Ниже разберем не абстрактную теорию, а рабочий сценарий: как понять, что дубли действительно есть, где именно они появляются, и что исправлять — в шаблоне, в SEO-настройках или в логике запроса.
Когда пагинация начинает плодить дубли
Чаще всего проблема всплывает в архивах рубрик, меток, авторов, дат и в списках записей на главной. Типичный симптом: в индексе оказываются страницы вида /category/news/page/2/, /category/news/page/3/ и при этом они почти не отличаются от первой страницы, кроме набора карточек внизу. Если на сайте еще есть сортировки, фильтры или нестандартные шаблоны архивов, число похожих URL растет быстро.
Важно не путать полезную пагинацию с мусорными дублями. Страница /page/2/ в большом архиве может быть нормальной и даже нужной для обхода. Дубль — это когда одна и та же смысловая страница доступна по нескольким адресам без необходимости, например с разными параметрами, с лишним слэшем, с дублирующимся архивом в теме или через неправильный canonical.
Диагностика: где искать источник дублей
Начинать лучше не с правок, а с проверки фактических URL. Это экономит время: иногда виноват не WordPress, а тема или плагин, который генерирует лишние ссылки в хлебных крошках, в блоках навигации или в sitemap.
Что проверить в первую очередь
- Есть ли у архивов пагинация в виде
/page/2/,/page/3/и т. д. - Не открывается ли одна и та же страница по двум адресам: с
wwwи без, сhttpиhttps, со слэшем и без него. - Не создают ли плагины фильтров или сортировки дополнительные параметры в URL.
- Совпадает ли canonical на страницах пагинации с реальным адресом страницы.
- Не попадают ли в индекс страницы поиска по сайту, архивы автора и служебные страницы, которые не должны конкурировать с основным контентом.
Проверить это можно вручную через исходный код страницы и через инструменты обхода. В исходнике ищите тег link rel="canonical". Если на второй странице архива canonical указывает на первую, это не всегда ошибка, но для некоторых шаблонов и сценариев такой подход создает путаницу. Особенно если контент на страницах 2+ реально отличается и должен быть доступен для обхода.
Быстрая проверка через WP-CLI и поиск шаблонов
Если есть доступ к серверу, удобно посмотреть, какие архивы вообще генерируются темой и плагинами. Сначала проверьте активные плагины и тему:
wp plugin list --status=active
wp theme list --status=activeДальше имеет смысл найти в теме шаблоны архивов и навигации. Часто дубли появляются не из-за ядра WordPress, а из-за ручной сборки ссылок в archive.php, home.php, category.php или в кастомных блоках.
grep -R "paginate_links\|the_posts_pagination\|get_pagenum_link\|rel=\"canonical\"" wp-content/themes/your-theme -nЕсли в теме есть собственная логика пагинации, проверьте, не подставляет ли она неправильный базовый URL. Это частая причина, когда на сайте появляется несколько вариантов одной и той же страницы архива.
Пошаговое решение без лишних побочных эффектов
Ниже схема, которая обычно работает безопаснее всего: сначала приводим к одному виду адреса, потом проверяем canonical, затем решаем, что делать с пагинацией в индексировании.
Шаг 1. Уберите технические дубли URL
Сначала зафиксируйте один вариант домена и протокола в настройках WordPress и на уровне сервера. В админке это делается в Настройки → Общие. Если сайт должен жить на https://example.com, не оставляйте параллельный доступ через http или www без редиректа.
На уровне сервера редирект должен быть один, а не цепочка из двух-трех переходов. Иначе поисковый робот будет тратить обход на технические адреса.
Шаг 2. Проверьте canonical на страницах пагинации
Если тема или SEO-плагин ставит canonical на первую страницу архива для всех страниц пагинации, это нужно оценивать по факту. Для некоторых разделов это допустимо, но если у вас важны страницы 2+ как отдельные точки обхода, лучше не ломать им адреса без необходимости.
В шаблоне можно явно вывести canonical для архивов пагинации через wp_get_canonical_url() или собственную логику. Пример ниже показывает базовый подход для темы, где нужно сохранить сам адрес страницы пагинации:
<?php
if ( is_paged() ) {
$canonical = get_pagenum_link( get_query_var( 'paged' ) );
} elseif ( is_singular() ) {
$canonical = wp_get_canonical_url();
} else {
$canonical = home_url( add_query_arg( array(), $wp->request ) );
}
if ( $canonical ) {
echo '<link rel="canonical" href="' . esc_url( $canonical ) . '" />' . "\n";
}
?>Это не универсальная панацея, а рабочий пример для темы, где canonical генерируется вручную. Если canonical уже выводит SEO-плагин, не дублируйте его в шаблоне.
Шаг 3. Ограничьте индексирование служебных страниц, но не ломайте навигацию
Не нужно закрывать от индекса всю пагинацию подряд. Грубый noindex на все страницы архивов часто делает хуже: робот перестает нормально ходить по структуре сайта, а внутренние ссылки теряют смысл. Лучше точечно закрывать то, что действительно служебное: поиск по сайту, страницы с параметрами, пустые архивы, внутренние фильтры.
Если нужен точечный контроль в коде, можно добавить noindex только для конкретных шаблонов или условий:
<?php
add_action( 'wp_head', function () {
if ( is_search() || is_404() ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
} );Для пагинации это решение использовать осторожно. Оно подходит только если вы точно понимаете, зачем закрываете конкретный тип страниц.
Шаг 4. Уберите лишние ссылки в шаблонах и виджетах
Иногда дубли создают не архивы, а повторяющиеся ссылки на один и тот же раздел в разных местах темы. Например, в блоке «Последние записи» и в боковой колонке выводится одна и та же пагинируемая лента. В этом случае поисковик получает одинаковые сигналы из разных мест.
Проверьте:
- хлебные крошки;
- блоки похожих записей;
- виджеты с архивами;
- кастомные блоки в шапке и подвале;
- ссылки на страницы рубрик, где вручную прописан неправильный URL.
Сравнение подходов: плагин, код или настройка темы
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Если уже используете плагин и он умеет управлять canonical/robots для архивов | Легко получить конфликт с темой или вторым SEO-плагином |
| Код в теме | Если проблема в шаблоне или в нестандартной пагинации | Нужно аккуратно обновлять тему и не потерять правки |
| Настройка сервера/редиректов | Если дубли идут от http/www/slash/без slash | Не решает проблему лишних архивов и параметров |
На практике часто нужен не один способ, а комбинация: редирект на один канонический хост, нормальный canonical в шаблоне и чистка лишних ссылок в теме.
Проверка результата после внедрения
После правок не ограничивайтесь визуальной проверкой. Откройте несколько страниц вручную и посмотрите исходный код. На страницах архива canonical должен вести на ожидаемый адрес, а не на случайную первую страницу или на URL с параметрами.
Дальше проверьте три вещи:
- Страница открывается только по одному адресу без цепочек редиректов.
- В исходнике нет дублирующихся тегов canonical и robots.
- Пагинация работает, ссылки на страницы 2, 3 и далее не ломаются.
Если используете Google Search Console или другой инструмент для обхода, посмотрите, как робот видит страницы архива. Важно не только отсутствие дублей в индексе, но и то, что нужные страницы не выпали из обхода из-за слишком агрессивных запретов.
Частые ошибки и как их исправить
Ставят noindex на все страницы пагинации
Это самая грубая ошибка. В результате робот хуже понимает структуру разделов, а внутренний вес распределяется не так, как ожидалось. Если проблема только в нескольких служебных URL, закрывайте только их.
Дублируют canonical в теме и в плагине
Когда canonical выводится и шаблоном, и SEO-плагином, в HTML появляется два тега. Поисковик обычно берет один из них, но предсказать поведение не всегда просто. Оставьте один источник правды.
Ломают пагинацию редиректом на первую страницу
Иногда пытаются «починить» дубли, отправляя все страницы архива на первую. Это убивает навигацию по разделу и делает пагинацию бесполезной. Если страницы 2+ нужны пользователю, они должны открываться нормально.
Не проверяют параметры в URL
Даже если базовая пагинация чистая, параметры ?amp, ?replytocom, сортировки и внутренние фильтры могут создавать новые дубли. Их нужно отслеживать отдельно.
Что делать с безопасностью и производительностью
Если вы правите тему, не вносите изменения напрямую в родительскую тему. Используйте дочернюю тему или выносите логику в небольшой mu-plugin. Так правки не слетят после обновления.
Еще один практический момент: не добавляйте тяжелые проверки в каждый запрос без необходимости. Например, если вы выводите canonical через хук wp_head, держите условие простым и не делайте лишних запросов к базе. Для архивов и пагинации этого обычно достаточно.
Если на сайте уже стоит набор SEO- и технических оптимизаций, имеет смысл проверить, не конфликтуют ли они между собой. В таких задачах иногда удобнее использовать один инструмент, который умеет управлять canonical, robots и чисткой дублей без лишнего зоопарка плагинов. Например, у Clearfy Pro есть функции для технической SEO-оптимизации и удаления части дублей, но подключать его стоит только если он реально закрывает вашу задачу и не дублирует уже существующую логику сайта: https://wpshop.ru/plugins/clearfy?utm_source=indexnow.su&utm_medium=article&utm_campaign=kak-najti-i-ubrat-dubli-stranic-iz-za-paginacii-v-wordpress
Если после правок дубли все еще появляются, не ищите проблему только в SEO-настройках. В половине случаев источник сидит в шаблоне, в навигации или в генерации ссылок на уровне темы. Тогда быстрее всего помогает точечный аудит шаблонов и сравнение фактических URL, а не очередная попытка «закрыть все noindex’ом».