Пагинация в WordPress сама по себе не проблема. Проблема начинается, когда поисковик видит несколько версий одного и того же списка: главная рубрики, её страницы /page/2/, /page/3/, иногда ещё параметры фильтрации или сортировки. В итоге в индексе оказываются слабые страницы, а канонический URL выбирается не так, как вы ожидали.
Ниже разберём, как понять, что у вас именно дубли пагинации, какие варианты исправления реально работают и как проверить результат без гадания по логам.
Когда это действительно дубли пагинации, а не другая проблема
Сначала стоит отличить пагинацию от похожих сценариев. Если у вас одинаковый контент доступен по разным адресам из-за параметров ?orderby=, ?filter=, UTM-меток или слэшей, это уже другая задача. Дубли пагинации обычно выглядят так:
- страницы архивов, рубрик, тегов или блога имеют продолжение вида
/page/2/; - в title и description этих страниц почти нет отличий от первой страницы;
- в индексе появляются страницы пагинации, которые не должны ранжироваться отдельно;
- в отчётах Search Console видны URL с
/page/, которые получают показы, но не дают полезного трафика.
Что проверить перед правкой
Откройте несколько архивов и посмотрите исходный HTML. Важно понять, как тема выводит канонический URL и не ломает ли его плагин SEO. Также проверьте, не закрыты ли страницы пагинации случайно через noindex на уровне шаблона или SEO-плагина, если они всё же нужны для обхода роботом.
- есть ли на страницах пагинации корректный
rel=canonical; - не дублируются ли заголовки и мета-описания без необходимости;
- не создают ли фильтры и сортировки отдельные индексируемые URL;
- не генерирует ли тема два набора ссылок пагинации одновременно.
Какой подход выбрать: canonical, noindex или правка шаблона
Универсального решения нет. Иногда достаточно поправить каноникал, иногда лучше закрыть страницы пагинации от индексации, а иногда нужно исправить саму логику вывода ссылок в теме. Ниже короткое сравнение.
| Подход | Когда подходит | Компромисс |
|---|---|---|
| Canonical | Если страницы пагинации нужны для обхода, но не должны ранжироваться отдельно | Не всегда убирает URL из индекса быстро |
| Noindex | Если страницы пагинации не несут самостоятельной ценности | Робот может продолжать обходить их, если на них есть ссылки |
| Правка шаблона | Если тема выводит некорректную навигацию или дублирует ссылки | Требует аккуратной работы с темой и тестирования |
Пошаговое решение: убрать дубли пагинации без поломки архива
Шаг 1. Проверьте канонический URL
Если вы используете SEO-плагин, сначала убедитесь, что он не конфликтует с темой. Для архивов пагинации каноникал обычно должен указывать на саму страницу пагинации, а не на первую страницу архива. Иначе поисковик может игнорировать последующие страницы как дубли первой.
Если каноникал отсутствует или подставляется неверно, можно добавить его вручную для архивов пагинации. Пример ниже не заменяет SEO-плагин целиком, а только исправляет конкретный случай.
<?php
add_filter('wpseo_canonical', function ($canonical) {
if (is_paged()) {
return get_pagenum_link(get_query_var('paged'));
}
return $canonical;
});Этот пример рассчитан на Yoast SEO. Если у вас другой плагин, проверьте его фильтры перед внедрением. Не стоит вешать такой код «на всякий случай» везде: он нужен только там, где каноникал реально сбивается.
Шаг 2. Закройте от индексации страницы пагинации, если они не нужны в выдаче
Если для вашего сайта страницы архива на второй и последующих страницах не должны ранжироваться отдельно, проще и безопаснее поставить noindex,follow именно для пагинации. Это не мешает роботам переходить по ссылкам, но снижает шанс, что в индекс попадут слабые страницы.
<?php
add_filter('wp_robots', function (array $robots) {
if (is_paged()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Такой подход удобен для блогов, рубрик и тегов, где ценность сосредоточена на первой странице архива. Но если у вас длинные подборки материалов, которые сами по себе полезны, не закрывайте пагинацию автоматически без анализа.
Шаг 3. Уберите лишние варианты URL из темы
Иногда дубли создаёт не поисковик, а тема: одна и та же навигация выводится дважды, ссылки строятся с разными параметрами или в шаблоне есть ручная генерация пагинации поверх стандартной. В таком случае нужно оставить один механизм.
Проверьте шаблоны archive.php, category.php, home.php и части, где подключается навигация. Для стандартной пагинации WordPress безопаснее использовать the_posts_pagination() или paginate_links(), а не собирать URL вручную.
<?php
if (have_posts()) :
while (have_posts()) : the_post();
get_template_part('template-parts/content', get_post_type());
endwhile;
the_posts_pagination([
'mid_size' => 1,
'prev_text' => 'Назад',
'next_text' => 'Вперёд',
]);
endif;Если дубли создают параметры сортировки и фильтры
На практике пагинация часто идёт в связке с параметрами ?orderby=, ?filter= или кастомными query vars. Тогда проблема уже не только в /page/2/, а в комбинации адресов. Например, одна и та же рубрика может открываться как /category/news/, /category/news/page/2/ и /category/news/?orderby=date.
Для таких случаев важно не плодить отдельные индексируемые URL без необходимости. Если параметр нужен только для интерфейса, его обычно стоит исключить из индексации и не использовать в каноникале как основную версию страницы.
Чек-лист перед публикацией правок
- на страницах пагинации остался один канонический URL;
noindexприменяется только там, где это действительно нужно;- в шаблоне не осталось дублирующей навигации;
- параметры сортировки не создают отдельные индексируемые страницы;
- robots.txt не закрывает нужные страницы случайно;
- в sitemap не попали служебные URL пагинации, если они не должны индексироваться.
Как проверить, что решение сработало
Проверка должна быть не визуальной, а технической. Откройте страницу пагинации и посмотрите исходный код: каноникал должен указывать на ожидаемый URL, а в meta robots должен быть нужный режим. Затем проверьте ответ сервера и сравните несколько страниц архива между собой.
Полезно сделать быстрый контроль через curl:
curl -I https://example.com/category/news/page/2/В ответе вас интересуют не только код 200, но и отсутствие неожиданных редиректов на первую страницу архива. После этого откройте HTML и проверьте, что:
- каноникал не указывает на нерелевантную страницу;
noindexстоит только на тех URL, которые вы действительно хотите исключить;- внутренние ссылки ведут на один вариант адреса, без параметрических дублей;
- страницы пагинации не исчезли из обхода, если они нужны для навигации.
Если используете Google Search Console, посмотрите отчёт по страницам и проверку URL. Изменения не всегда отражаются сразу, но по мере переобхода должно стать меньше мусорных URL с пагинацией в индексе.
Частые ошибки и как их исправить
Ставят noindex на все архивы подряд
Это частая ошибка после попытки «почистить индекс». В результате из поиска исчезают и полезные страницы рубрик. Исправление простое: ограничьте правило только пагинацией или только конкретными типами архивов, которые не нужны в выдаче.
Меняют canonical, но не убирают дубли ссылок
Если тема продолжает генерировать два набора пагинации или выводит ссылки с параметрами, поисковик всё равно будет видеть несколько вариантов URL. Каноникал помогает, но не лечит плохую архитектуру шаблона.
Закрывают пагинацию в robots.txt
Это не лучший способ для такой задачи. Если робот не может обойти URL, он не увидит каноникал и meta robots. Для пагинации обычно лучше управлять индексацией через HTML-мета-теги и нормальную структуру ссылок, а не через жёсткий запрет обхода.
Ломают пагинацию после правки permalink-структуры
После изменения ЧПУ или переноса сайта иногда остаются старые правила rewrite. Тогда /page/2/ может отдавать 404 или редиректить не туда. В таком случае нужно обновить правила постоянных ссылок и проверить, нет ли конфликтов с плагинами кэширования или редиректов.
Что учесть для безопасности и производительности
Если вы добавляете код в functions.php, лучше делать это в дочерней теме или через небольшой mu-plugin, а не править родительскую тему напрямую. Так изменения не потеряются при обновлении. Для сайтов с кэшем проверьте, не сохраняется ли старая версия каноникала или meta robots после деплоя.
Ещё один практический момент: не пытайтесь решать проблему массовой генерацией редиректов для всех страниц пагинации. Это может ухудшить обход сайта и сломать навигацию для пользователей. Если нужен более широкий аудит дублей, техническую чистку и контроль индексации удобнее делать через инструменты вроде Clearfy Pro, но только после проверки, какие именно URL у вас реально лишние.
Если у вас уже есть SEO-плагин, не дублируйте его логику самописными фильтрами без необходимости. Сначала проверьте, что именно он выводит на страницах пагинации, и только потом добавляйте точечную правку. В таких задачах лишний код чаще вредит, чем помогает.