Если в Search Console растут страницы-дубли, а в индексе всплывают теги, архивы авторов, страницы пагинации и URL с параметрами, проблема обычно не в «плохом SEO», а в том, что WordPress по умолчанию отдаёт слишком много точек входа для одного и того же контента. Закрывать всё подряд нельзя: часть архивов нужна для навигации и внутренней перелинковки. Поэтому задача не в том, чтобы поставить noindex на весь сайт, а в том, чтобы оставить полезные страницы и убрать мусорные.
Ниже — рабочая схема: как диагностировать дубли, что именно закрывать в WordPress, чем отличаются noindex, canonical и robots.txt, и как проверить, что после изменений сайт не потерял важные страницы из индекса.
Какие дубли чаще всего появляются в WordPress
На практике чаще всего индексируются не только записи и страницы, но и системные архивы. Это нормально для движка, но не всегда нормально для сайта. Особенно если контент небольшой, а архивов много.
Типовые источники дублей
- архивы тегов и рубрик, которые повторяют записи почти без добавленной ценности;
- архивы автора на сайтах с одним автором;
- страницы дат, если вы их не используете как отдельный раздел;
- пагинация архивов, когда в индекс попадают страницы
/page/2/,/page/3/и дальше; - URL с параметрами сортировки, фильтров, UTM и внутренних поисков;
- страницы вложений медиафайлов, если они открыты как отдельные URL.
Отдельная история — дубли из-за неправильных canonical. Например, запись доступна по нескольким адресам, а плагин SEO ставит canonical на саму себя, но в индексе всё равно остаются архивы с тем же текстом и заголовками.
Диагностика: где именно у вас дубли
Сначала не меняйте настройки. Посмотрите, что уже видит поисковик и какие URL реально создаёт WordPress. Это экономит время и помогает не закрыть нужные страницы вместе с мусорными.
Что проверить вручную
- Откройте Search Console и посмотрите отчёт по страницам: какие URL помечены как дубли, какие исключены, какие выбраны как канонические.
- Проверьте, индексируются ли архивы тегов, авторов и дат.
- Откройте несколько URL с параметрами:
?utm_source=...,?replytocom=..., внутренний поиск?s=.... - Посмотрите исходный код проблемных страниц и найдите
<link rel="canonical">.
Если у вас есть доступ к серверным логам или аналитике, полезно посмотреть, какие URL реально получают трафик. Иногда архив тегов вообще не нужны, но уже успели попасть в индекс и отъедают краулинговый бюджет.
Быстрая проверка через командную строку
Если на сервере есть WP-CLI, можно быстро увидеть, какие типы архивов включены и сколько опубликованных записей у каждого типа. Это не заменяет аудит, но помогает понять масштаб.
wp post list --post_type=post --post_status=publish --fields=ID पोस्ट_title --format=tableЕсли WP-CLI недоступен, достаточно пройтись по основным архивам в браузере и проверить мета-теги. Для диагностики дублей важнее не количество команд, а понимание, какие URL вообще существуют и доступны для индексации.
Что закрывать от индексации, а что оставить
Здесь часто ошибаются: ставят noindex на всё подряд или, наоборот, закрывают в robots.txt то, что уже должно было уйти из индекса через canonical и мета-тег. Рабочий подход — разделить страницы на три группы: оставить, закрыть и убрать из обхода.
| Вариант | Когда использовать | Плюс | Минус |
|---|---|---|---|
noindex,follow | Для архивов, которые не нужны в поиске, но полезны для переходов | Поисковик видит ссылки, но не индексирует страницу | Страница должна быть доступна для обхода |
canonical | Когда есть близкие копии одной и той же страницы | Помогает объединить сигналы | Не всегда быстро убирает URL из индекса |
robots.txt | Для служебных разделов и тяжёлых URL, которые не должны обходиться | Снижает нагрузку на обход | Не гарантирует удаление уже проиндексированных страниц |
Для большинства WordPress-сайтов разумно закрывать архивы тегов, архивы автора на однoавторском сайте, страницы дат и служебные страницы поиска. Рубрики обычно лучше оставить, если они реально помогают навигации и содержат уникальные описания.
Пошаговое решение: как убрать дубли в WordPress
Самый безопасный путь — не править ядро, а использовать SEO-плагин или код в теме/мини-плагине. Если у вас уже стоит SEO-плагин, начните с его настроек. Если нет — можно сделать точечно через хуки.
Шаг 1. Закройте архивы, которые не несут ценности
В популярных SEO-плагинах обычно есть отдельные переключатели для архивов тегов, авторов и дат. Логика простая: если архив не нужен пользователю и не даёт уникального контента, его лучше исключить из индекса. Но не путайте отключение индексации с удалением страницы: URL должен открываться, если вы хотите, чтобы follow работал корректно.
Если вы предпочитаете код, можно добавить мета-robots для архивов через фильтр wp_robots:
add_filter( 'wp_robots', function( $robots ) {
if ( is_tag() || is_author() || is_date() || is_search() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Этот вариант лучше размещать в мини-плагине или в functions.php дочерней темы, а не в родительской теме, чтобы не потерять настройку при обновлении.
Шаг 2. Уберите страницы вложений из индекса
Страницы вложений часто создают пустые или почти пустые URL. Если они не используются как отдельные посадочные, их лучше редиректить на сам файл или на родительскую запись. В SEO-плагинах это обычно настраивается отдельно. Если нужен код, можно сделать редирект вложений на родительскую запись:
add_action( 'template_redirect', function() {
if ( is_attachment() ) {
$parent = wp_get_post_parent_id( get_queried_object_id() );
if ( $parent ) {
wp_safe_redirect( get_permalink( $parent ), 301 );
exit;
}
}
} );Это не универсальное решение для всех сайтов, но для большинства контентных проектов оно уменьшает количество бесполезных URL.
Шаг 3. Ограничьте мусорные параметры URL
Если в индекс попадают URL с параметрами, сначала выясните, откуда они берутся. Часто это внутренний поиск, сортировки, фильтры или ссылки из писем и рекламы. Для UTM и похожих параметров обычно достаточно canonical на чистый URL. Для внутренних параметров, которые создают отдельные страницы без ценности, лучше не допускать их индексации.
Пример: если на сайте есть страницы поиска, можно явно задать noindex для результатов поиска и не давать им конкурировать с обычными страницами:
add_filter( 'wp_robots', function( $robots ) {
if ( is_search() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Если у вас сложные фильтры на фронтенде, не пытайтесь закрыть их через robots.txt вслепую. Сначала проверьте, не используются ли эти URL внутри сайта как реальные точки входа.
Шаг 4. Проверьте canonical на основных шаблонах
Canonical должен указывать на основную версию страницы без лишних параметров. В большинстве случаев SEO-плагин делает это сам. Проблемы начинаются, когда тема или кастомный код выводят альтернативный canonical, либо когда на архиве и записи стоят конфликтующие правила.
Если вы пишете свой шаблон, не дублируйте canonical вручную без необходимости. Один лишний <link rel="canonical"> в <head> может сломать логику плагина и создать путаницу для поисковика.
Проверка результата после внедрения
После изменений не ограничивайтесь тем, что страница «открывается». Нужно проверить, как она отдается поисковому роботу и что реально попадает в HTML.
- Откройте проблемный URL и проверьте исходный код: есть ли
noindexи правильный canonical. - Проверьте несколько архивов: тег, автор, дата, поиск, пагинация.
- В Search Console отправьте на повторную проверку ключевые URL и посмотрите, изменился ли статус через некоторое время.
- Убедитесь, что важные рубрики не закрылись случайно.
- Проверьте, не появились ли ошибки 404 после редиректов вложений или чистки параметров.
Если используете кэш, очистите его после правок. Иначе вы будете смотреть на старую версию HTML и решите, что настройка не сработала.
Как быстро проверить мета-robots и canonical
Для точечной проверки удобно смотреть заголовки и HTML через curl:
curl -I https://example.com/tag/sample/
curl -s https://example.com/tag/sample/ | grep -i canonicalЕсли canonical указывает на сам архив, а вы ожидали noindex, значит правило не применилось или его перебил SEO-плагин. В таком случае сначала ищите конфликт настроек, а не добавляйте ещё один фильтр.
Частые ошибки и как их исправить
Закрыли в robots.txt, но URL остались в индексе
robots.txt не удаляет уже проиндексированные страницы. Он лишь ограничивает обход. Если URL уже в индексе, нужен noindex, canonical или редирект — в зависимости от задачи.
Поставили noindex на страницу, которая должна передавать вес
Если архив полезен для навигации, но не должен ранжироваться, используйте noindex,follow. Если вы полностью закрыли страницу от обхода, поисковик может хуже видеть ссылки с неё.
Сломали рубрики вместе с тегами
Частая ошибка — одинаковое правило для всех архивов. Рубрики часто нужны, а теги — нет. Разделяйте их по смыслу, а не по шаблону.
Добавили второй canonical вручную
Если SEO-плагин уже выводит canonical, не дублируйте его в теме. Поисковик может проигнорировать оба варианта или выбрать не тот URL.
Редиректнули вложения без проверки медиа
Если на сайте есть страницы изображений, которые используются как посадочные или в галереях, массовый редирект может быть лишним. Сначала проверьте, нужны ли эти URL вообще.
Что ещё помогает уменьшить дубли без риска
Иногда проблема не в индексации как таковой, а в том, что сайт сам создаёт слишком много однотипных страниц. Здесь полезны не только настройки SEO, но и чистка шаблонов.
- уберите лишние архивы из меню и внутренних блоков, чтобы не стимулировать обход мусорных URL;
- не создавайте теги ради тегов — пустые и слабые архивы почти всегда лишние;
- если используете блоки «похожие записи», проверьте, не ведут ли они на параметры сортировки;
- не плодите отдельные страницы под один и тот же запрос, если можно усилить одну основную;
- после крупных правок пересмотрите карту сайта: в ней должны быть только те URL, которые вы действительно хотите индексировать.
Если нужен более системный подход к чистке дублей и технических мелочей, имеет смысл смотреть в сторону инструментов, которые умеют управлять SEO-настройками и служебными страницами без ручного кода. Но даже с плагином базовую логику лучше понимать самому: что закрываем, зачем и чем это подтверждается в коде страницы.
В итоге рабочая схема простая: сначала находите источник дубля, потом выбираете правильный способ обработки — noindex, canonical или редирект — и только после этого проверяете результат в HTML и Search Console. Если пропустить диагностику, можно легко убрать из индекса не мусор, а полезные страницы.