Дубли в WordPress часто появляются не на отдельных записях, а на архивах: рубрики, теги, авторы, страницы пагинации, а иногда ещё и версии с параметрами вроде ?amp, ?replytocom или сортировками из плагинов. В итоге поисковик видит несколько URL с одинаковым или почти одинаковым содержимым, а сайт тратит краулинговый бюджет на мусорные адреса.
Ниже разберём, как быстро найти такие дубли, что именно закрывать от индексации, а что лучше оставить и склеить через canonical или 301.
Когда проблема действительно в дублях, а не в индексации
Сначала стоит понять, что именно вы наблюдаете. Если в поиске всплывают одинаковые страницы с разными URL, это один сценарий. Если страницы не попадают в индекс вообще, причина может быть в robots.txt, noindex, ошибках шаблона или в том, что canonical указывает не туда.
Типичные признаки
- в индексе есть
/category/news/и/tag/news/с почти одинаковым контентом; - страницы пагинации
/page/2/,/page/3/индексируются без необходимости; - одна и та же статья открывается с параметрами и без них;
- в Search Console растёт число страниц, но полезных переходов не прибавляется;
- в выдаче видны URL, которые вы не планировали продвигать.
Что проверить в первую очередь
- исходный код страницы: есть ли
<link rel="canonical">и куда он ведёт; - мета-тег
robots: нет ли случайногоnoindexна нужных архивах; - структуру постоянных ссылок и архивов;
- настройки SEO-плагина для рубрик, тегов, авторов и пагинации;
- наличие редиректов для старых URL после смены структуры.
Как найти дубли архивов и пагинации
Самый практичный путь — собрать список URL, которые реально доступны, и сравнить их с тем, что должно индексироваться. Для этого не обязательно сразу лезть в базу данных. Начните с обхода сайта и ручной проверки шаблонов.
Проверка через браузер и Search Console
Откройте несколько типовых страниц: главную, рубрику, тег, автора и страницу пагинации. Посмотрите исходный код и убедитесь, что canonical указывает на саму страницу или на нужную каноническую версию. Если canonical на странице /category/news/page/2/ ведёт на первую страницу архива, это не всегда ошибка, но нужно понимать, что вы делаете: оставляете пагинацию для обхода, но не хотите её индексировать.
В Search Console полезно смотреть отчёт по страницам и проверять, какие URL попали в индекс. Если там есть варианты с параметрами или служебные архивы, это уже сигнал к чистке.
Проверка через WP-CLI и базу
Если сайт большой, удобнее быстро найти архивы и таксономии через WP-CLI. Например, посмотреть список рубрик и тегов, которые реально используются, и убрать пустые или дублирующие таксономии.
wp term list category --fields=term_id,name,slug,count
wp term list post_tag --fields=term_id,name,slug,countЕсли у вас есть подозрение на дубли страниц из-за старых URL, проверьте, не остались ли записи с одинаковым содержимым и разными слагами. Это уже не архивная проблема, но она часто всплывает рядом.
Пошаговое решение: что закрывать, что склеивать, что оставлять
Здесь важно не пытаться «запретить всё подряд». Для WordPress лучше разделить URL на три группы: индексируемые, служебные и наследованные старые адреса.
1. Оставьте индексируемыми только нужные архивы
Если рубрики у вас реально используются как посадочные страницы, оставьте их открытыми. Если теги создаются автоматически и не несут ценности, их лучше закрыть от индексации через SEO-плагин или кодом. То же касается архивов автора на небольших сайтах без нескольких авторов.
Для шаблонов архива можно управлять canonical и robots через фильтры WordPress. Пример ниже показывает, как добавить noindex,follow для страниц пагинации архивов, не ломая сам обход.
add_filter('wp_robots', function ($robots) {
if (is_paged() && (is_category() || is_tag() || is_author() || is_archive())) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот подход подходит, если вы хотите оставить пагинацию доступной для пользователей и ботов, но не тащить её в индекс.
2. Склейте старые и альтернативные URL через 301
Если у вас уже есть старые адреса, которые начали жить своей жизнью, canonical недостаточно. Нужен редирект. Например, после смены структуры рубрик или удаления лишнего префикса в URL.
add_action('template_redirect', function () {
if (is_category() && is_paged()) {
return;
}
$request_uri = $_SERVER['REQUEST_URI'] ?? '';
if (strpos($request_uri, '/tag/') !== false && strpos($request_uri, '?') !== false) {
$clean_url = strtok(home_url($request_uri), '?');
wp_redirect($clean_url, 301);
exit;
}
});Это упрощённый пример, и его нужно адаптировать под конкретный шаблон URL. Смысл в том, чтобы не плодить адреса с параметрами, если они не несут отдельной ценности.
3. Уберите пустые и бесполезные архивы
Пустые теги, авторы без записей, архивы с одной записью и десятки служебных таксономий — типичный источник дублей и мусора. Если архив не нужен пользователю, не держите его открытым только ради «полноты структуры».
Для чистки можно использовать SEO-плагин или вручную отключить вывод архивов в теме. Если речь о массовой технической чистке, в экосистеме WPShop для этого подходит Clearfy Pro: он закрывает часть типовых SEO-дублей и помогает привести архивы к более аккуратному виду. Но даже с плагином логику нужно проверять вручную, а не включать всё подряд.
| Подход | Когда использовать | Минус |
|---|---|---|
| noindex | для пагинации и служебных архивов | URL остаётся доступным, но не должен ранжироваться |
| 301-редирект | для старых и альтернативных адресов | нужно точно понимать целевой URL |
| canonical | для близких версий одной страницы | не всегда убирает дубль из индекса быстро |
Как настроить canonical для архивов без ошибок
Canonical должен быть предсказуемым. Если шаблон страницы сам себе не соответствует, поисковик начинает выбирать канонический URL на своё усмотрение. Это особенно заметно на страницах пагинации и архивов с параметрами.
Проверьте, что canonical:
- не содержит случайных параметров;
- не ведёт на 404 или редирект;
- не меняется от запроса к запросу;
- для пагинации соответствует вашей SEO-логике.
Если вы используете SEO-плагин, не дублируйте его настройки кодом. Частая ошибка — одновременно задавать canonical в плагине и в теме. В результате на странице может оказаться два тега canonical или конфликтующие значения.
Проверка результата после внедрения
После правок не ограничивайтесь открытием страницы в браузере. Нужна проверка на уровне HTML и индексации.
Что именно проверить
- в исходном коде страницы остался один canonical;
- страницы пагинации получили нужный robots-режим;
- старые URL отдают 301, а не 200;
- служебные архивы больше не попадают в карту сайта;
- в Search Console новые правила не создали всплеск ошибок сканирования.
Для быстрой проверки можно использовать curl:
curl -I https://example.com/category/news/page/2/
curl -I https://example.com/old-tag-url/?utm_source=testВ ответе смотрите код статуса, Location при редиректе и отсутствие неожиданных цепочек. Если страница отдаёт 200 там, где вы ожидали 301 или noindex, значит правило не сработало.
Частые ошибки и как их исправить
Закрыли от индексации не то, что нужно
Иногда после массовой настройки noindex исчезают и полезные рубрики. Это происходит, когда условие написано слишком широко, например на все архивы без исключения. Исправление простое: разделите правила для рубрик, тегов, авторов и пагинации.
Canonical указывает на первую страницу архива
Для пагинации это допустимо только если вы осознанно хотите объединять сигналы. Но если пользователь ищет конкретную страницу архива, а canonical всегда ведёт на первую, поисковик может игнорировать остальные страницы. Проверьте, соответствует ли это вашей структуре контента.
Редиректы сделаны через JS или meta refresh
Для технической чистки дублей это слабое решение. Нужен серверный 301, иначе поисковик может воспринимать адрес как доступный дубликат.
Появились цепочки редиректов
После нескольких правок URL легко получить схему A → B → C. Это замедляет обход и усложняет диагностику. Сведите старый адрес сразу к финальному.
Параметры URL продолжают индексироваться
Если у вас есть фильтры, сортировки или UTM-метки, проверьте, не попадают ли они в sitemap и не генерируют ли отдельные страницы в шаблоне. Иногда проблема не в WordPress, а в плагине аналитики или фильтрации.
Практические советы по безопасности и производительности
Чистка дублей полезна не только для SEO. Чем меньше лишних архивов и параметризованных URL, тем меньше запросов к базе и меньше мусора в обходе. Но не стоит превращать это в агрессивную блокировку всего подряд.
- не закрывайте в robots.txt то, что хотите убрать из индекса через noindex: бот должен увидеть директиву;
- не удаляйте архивы, если на них есть внешние ссылки и трафик;
- перед массовыми изменениями сделайте бэкап базы и файлов;
- если используете плагины для SEO и кеша, проверьте, не кэшируется ли старый canonical;
- после правок очистите кеш страницы и объектный кеш, если он есть.
Если нужен более системный подход к SEO-чистке, можно посмотреть в сторону Clearfy Pro от WPShop: он полезен там, где приходится быстро убрать типовые дубли и служебные элементы без ручной правки каждой темы. Но для нестандартной структуры архивов всё равно придётся проверять результат вручную.
Главный критерий успеха простой: в индексе остаются только те URL, которые реально нужны пользователю и поиску, а служебные и повторяющиеся адреса либо склеены, либо исключены из индекса без потери полезного трафика.