Дубли пагинации в WordPress обычно всплывают не сразу: сайт уже в индексе, а потом в Search Console появляются одинаковые title и description у страниц архивов, категорий или блога. Чаще всего проблема не в самой пагинации, а в том, как тема или плагин формируют заголовки, canonical и ссылки на страницы списка.
Если у вас уже есть статьи про закрытие дублей через robots.txt и noindex, то здесь задача другая: не прятать пагинацию от поисковиков, а убрать технические дубли так, чтобы страницы 2, 3, 4 оставались доступными и корректно индексировались.
Как понять, что проблема именно в дублях пагинации
Сначала проверьте не ощущения, а факты. Откройте несколько архивов и сравните:
- URL первой страницы и URL второй страницы архива;
<title>иmeta name="description"на разных страницах пагинации;rel="canonical"на страницах/page/2/,/page/3/и т.д.;- не отдает ли сервер одну и ту же страницу по нескольким адресам, например с лишним слешем, параметрами или через старый URL после редиректа.
Типичный симптом — в индексе оказываются почти одинаковые страницы вида /category/news/ и /category/news/page/2/, а canonical у обеих указывает на первую страницу. Для поисковика это сигнал, что вторая страница не самостоятельная, хотя на ней есть уникальный набор записей.
Что проверить в исходном коде
Откройте исходный код страницы и найдите canonical. Для пагинированных архивов он должен указывать на саму страницу, а не на первую страницу раздела. Если тема или SEO-плагин подменяет canonical на первую страницу, это и есть источник путаницы.
<link rel="canonical" href="https://example.com/category/news/page/2/" />Также проверьте, не дублируется ли заголовок. Если на первой и второй странице архива title одинаковый, поисковику сложнее понять, чем они отличаются.
Почему дубли появляются в WordPress
На практике причин немного, и почти все они связаны с шаблоном или SEO-логикой темы:
- canonical всегда ведет на первую страницу архива;
- title и description не учитывают номер страницы;
- пагинация строится через параметры, а не через ЧПУ, и появляются альтернативные URL;
- один и тот же архив доступен через несколько таксономий или фильтров;
- плагин кэширования сохраняет старую версию canonical или мета-тегов.
Если у вас кастомная тема, проверьте файл functions.php и шаблоны архивов. Иногда разработчик вручную добавляет canonical на все страницы архива, не учитывая пагинацию. В готовых темах это чаще делает SEO-плагин в связке с шаблоном.
Как исправить дубли пагинации: рабочая схема
Сначала определитесь, что именно вы хотите оставить в индексе. Для обычного блога и категорий обычно нужно:
- первая страница архива — индексируется;
- страницы пагинации — тоже доступны и могут индексироваться, если на них есть уникальный набор записей;
- canonical на каждой странице должен быть сам на себя;
- title должен отличать страницу 2 от страницы 1.
Если canonical уже корректный, а дубли остаются из-за одинаковых title, исправляйте шаблон вывода мета-тегов. Если canonical неправильный, сначала чините его, а потом уже title и description.
Вариант 1: поправить canonical для архивов
Если тема выводит canonical вручную, лучше убрать самодельную логику и оставить стандартную WordPress-логику либо SEO-плагин. Когда нужно точечно вмешаться, можно использовать фильтр wpseo_canonical в Yoast SEO или аналогичный фильтр вашего SEO-плагина. Ниже пример для случая, когда canonical на страницах пагинации ошибочно указывает на первую страницу архива.
add_filter( 'wpseo_canonical', function( $canonical ) {
if ( is_paged() && ( is_category() || is_tag() || is_post_type_archive() ) ) {
$paged = max( 2, get_query_var( 'paged' ) );
$base = get_pagenum_link( $paged );
return $base;
}
return $canonical;
} );Этот пример не универсален для всех SEO-плагинов, но показывает принцип: canonical должен соответствовать текущей странице пагинации, а не первой странице архива.
Вариант 2: сделать title уникальным для страниц пагинации
Если title одинаковый, добавьте номер страницы. Это можно сделать через фильтр document_title_parts, который работает в ядре WordPress.
add_filter( 'document_title_parts', function( $parts ) {
if ( is_paged() ) {
$paged = max( 2, get_query_var( 'paged' ) );
$parts['title'] .= ' — Страница ' . $paged;
}
return $parts;
} );Такой подход полезен для архивов, категорий и страниц записей, где title формируется шаблоном темы. Не пытайтесь решать это через ручную правку каждого шаблона, если у вас много таксономий: фильтр надежнее и проще сопровождать.
Вариант 3: убрать альтернативные URL пагинации
Иногда проблема не в дублировании контента, а в том, что один и тот же список доступен по нескольким адресам. Например, через параметры ?paged=2, через красивый URL /page/2/ и через старый редирект. В этом случае нужно оставить один канонический вариант и настроить 301-редиректы с остальных.
Если вы работаете на Apache, правило может выглядеть так:
RewriteCond %{QUERY_STRING} (^|&)paged=([0-9]+)(&|$)
RewriteRule ^category/([^/]+)/?$ /category/$1/page/%2/? [R=301,L]Но применять такие правила нужно осторожно: сначала проверьте, как именно WordPress и ваша тема строят ссылки. Неправильный редирект легко ломает пагинацию в категориях и архивах.
Сравнение подходов
| Способ | Когда подходит | Минус |
|---|---|---|
| Исправить canonical | canonical указывает на первую страницу вместо текущей | Нужно понимать, кто именно его генерирует: тема или SEO-плагин |
| Добавить номер страницы в title | title одинаковый на всех страницах архива | Не решает проблему, если canonical уже неверный |
| Редиректы с альтернативных URL | Есть несколько адресов одной пагинации | Можно случайно сломать рабочие ссылки и фильтры |
Проверка результата после внедрения
После правок не ограничивайтесь просмотром страницы в браузере. Проверьте несколько вещей:
- canonical на страницах
/page/2/,/page/3/и т.д. указывает на текущий URL; - title отличается от первой страницы архива;
- страницы пагинации отдают код ответа
200, а не редирект на первую страницу; - внутренние ссылки на пагинацию ведут на один формат URL;
- в Search Console в отчете по страницам нет массовых дублей с одинаковыми метаданными.
Удобно проверить и через командную строку. Например, так можно быстро посмотреть заголовки ответа и canonical:
curl -I https://example.com/category/news/page/2/
curl -s https://example.com/category/news/page/2/ | grep -i canonicalЕсли canonical и title уже исправлены, но в индексе старые данные, это нормально: поисковику нужно время на переобход. Не делайте резких массовых изменений в robots.txt или noindex, если цель — сохранить индексацию пагинации.
Частые ошибки и как их исправить
Canonical ведет на первую страницу архива
Обычно это делает SEO-плагин или кастомный код темы. Проверьте, нет ли в functions.php фильтров, которые подменяют canonical для всех архивов без учета is_paged().
Страницы пагинации закрыты от индексации через noindex
Такой вариант иногда используют по привычке, но он не всегда нужен. Если на страницах пагинации есть полезные записи и вы хотите, чтобы они участвовали в индексации, не закрывайте их автоматически. Сначала оцените структуру сайта и логику внутренней перелинковки.
Пагинация генерирует дубли с параметрами
Если ссылки строятся через query string, проверьте настройки темы и плагинов фильтрации. Часто достаточно переключиться на ЧПУ-пагинацию и убрать лишние параметры из ссылок.
После правок сломались архивы
Это обычно происходит, когда редиректы или фильтры canonical написаны слишком широко. Сужайте условие: применяйте изменения только к архивам, где реально есть пагинация, и тестируйте на категории, теге и архиве записей отдельно.
Что учесть для безопасности и производительности
Если вы правите тему, не вносите изменения прямо в родительскую тему. Используйте дочернюю тему или небольшой mu-plugin, чтобы обновление не затерло правки. Для проектов с несколькими архивами и SEO-логикой это особенно важно: одна неудачная правка в шаблоне может затронуть весь сайт.
Еще один практический момент — кэш. После изменения canonical, title или редиректов очистите:
- кэш плагина;
- серверный кэш, если он есть;
- CDN-кэш, если используется;
- кэш браузера при локальной проверке.
Если у вас стоит плагин для технической чистки и SEO-правок, вроде Clearfy Pro, он может помочь убрать часть дублей и системных хвостов, но логику пагинации все равно нужно проверять вручную. Автоматические настройки не заменяют контроль canonical и title на конкретных архивах.
В итоге правильная схема простая: не прятать пагинацию, а сделать ее однозначной для поисковика. Когда canonical, title и URL согласованы между собой, дубли уходят без потери полезных страниц из индекса.