Если в Search Console появляются дубли, а в индексе всплывают лишние URL, проблема часто не в robots.txt как таковом. Обычно сайт сам генерирует несколько версий одной и той же страницы: с параметрами, архивами, пагинацией, страницами вложений, тегами, авторскими архивами или техническими URL темы и плагинов. После настройки sitemap это становится заметнее: поисковик быстрее находит всё, что доступно по ссылкам.
Ниже — рабочий сценарий: как сначала понять источник дублей, потом убрать их без риска сломать индексацию нужных страниц.
Как понять, что это именно дубли, а не обычная индексация
Сначала проверьте, какие URL реально попали в индекс и чем они отличаются. Не ориентируйтесь только на количество страниц в отчётах. Один и тот же контент может быть доступен по нескольким адресам:
- страница записи и её версия с
?replytocom=; - архив рубрики и архив тега с одинаковым набором записей;
- страницы вложений изображений;
- страницы пагинации архивов;
- URL с параметрами сортировки, фильтрации или UTM;
- дубли главной страницы на
/page/2/, если тема строит нестандартную навигацию.
Что смотреть в первую очередь
Откройте в Search Console отчёт по страницам и сравните:
- какой URL выбран как канонический;
- какие страницы помечены как дубли, но не выбраны каноническими;
- есть ли в индексе страницы вложений и архивы, которые не несут ценности;
- не растёт ли число URL с параметрами.
Если у вас нет Search Console под рукой, проверьте сайт вручную через поиск по оператору site:example.com и через карту сайта. Это не заменяет полноценную диагностику, но помогает быстро увидеть мусорные адреса.
Какие дубли WordPress создаёт чаще всего
У WordPress и типичных тем есть несколько источников дублей, которые встречаются чаще других. Их удобно разделить на три группы: контентные, технические и навигационные.
| Источник | Что происходит | Что делать |
|---|---|---|
| Страницы вложений | Каждое изображение получает отдельный URL | Редиректить на файл или на родительскую запись |
| Архивы тегов и рубрик | Одинаковые записи повторяются в разных архивах | Оставить только нужные архивы, остальные закрыть от индексации |
| Параметры в URL | Одна страница доступна с разными query string | Настроить canonical и не индексировать параметрические версии |
| Пагинация архивов | Создаются страницы /page/2/, /page/3/ | Оставить, если они нужны для обхода, но не плодить лишние архивы |
| Версии для комментариев | Параметр replytocom создаёт отдельные URL | Отключить индексирование и при необходимости убрать генерацию ссылок |
Пошаговое решение: от диагностики до правок
Шаг 1. Уберите источники дублей на уровне настроек
Если используете SEO-плагин, проверьте, не индексируются ли архивы, которые вам не нужны. Для небольших сайтов часто достаточно оставить рубрики, а теги и архивы автора закрыть от индексации. Но это зависит от структуры контента: универсального правила нет.
Также проверьте:
- страницы вложений — должны ли они вообще существовать отдельно;
- архивы дат — если сайт не новостной, они часто не нужны;
- параметры сортировки и фильтрации, если они есть;
- канонические URL у записей и страниц.
Шаг 2. Настройте редирект со страниц вложений
Если изображения открываются как отдельные страницы, это почти всегда лишний индексируемый слой. Безопасный вариант — отправлять такие URL на сам файл или на родительскую запись, если она есть.
<?php
add_action('template_redirect', function () {
if (!is_attachment()) {
return;
}
$parent_id = wp_get_post_parent_id(get_queried_object_id());
if ($parent_id) {
wp_redirect(get_permalink($parent_id), 301);
exit;
}
$file_url = wp_get_attachment_url(get_queried_object_id());
if ($file_url) {
wp_redirect($file_url, 301);
exit;
}
});Этот код лучше добавлять в мини-плагин или в functions.php дочерней темы. Перед внедрением проверьте, нет ли у вас отдельной логики для медиа-страниц в SEO-плагине, чтобы не получить двойной редирект.
Шаг 3. Закройте от индексации лишние архивы
Если вы не хотите использовать SEO-плагин для этой задачи, можно управлять мета-robots на уровне шаблона. Но для большинства проектов проще делать это через SEO-плагин, потому что он уже умеет выставлять canonical и noindex без ручной правки шаблонов.
Когда нужен именно код, логика обычно такая: не трогаем полезные архивы, а служебные переводим в noindex,follow. Это не удаляет страницу, но снижает риск дублей в индексе.
<?php
add_filter('wp_robots', function (array $robots) {
if (is_author() || is_date()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Важно: не ставьте noindex на всё подряд. Если вы закроете рубрики, по которым реально приходят посетители, потеряете нормальные посадочные страницы.
Шаг 4. Уберите дубли с параметрами
Параметры вроде ?utm_source= обычно не создают отдельный контент, но поисковик может обнаружить их как отдельные URL. Здесь задача не в том, чтобы запрещать все параметры, а в том, чтобы у каждой страницы был один основной адрес.
Проверьте, что:
- canonical указывает на чистый URL без маркетинговых параметров;
- внутренние ссылки на сайте не размножают адреса с параметрами;
- в sitemap попадают только канонические версии.
Шаг 5. Проверьте sitemap и robots.txt
Частая ошибка — закрыть URL в robots.txt, но оставить их в sitemap. Тогда поисковик видит конфликт: URL есть в карте сайта, но доступ к нему ограничен. Это не всегда критично, но почти всегда лишнее.
Правильная логика простая:
- в sitemap — только страницы, которые вы хотите индексировать;
- в robots.txt — не блокировать то, что нужно сканировать для canonical и noindex;
- служебные URL лучше не включать в карту сайта вообще.
Как проверить результат после внедрения
После правок не ограничивайтесь визуальной проверкой. Смотрите на поведение поискового робота и на фактические URL.
- Откройте несколько старых дублей и убедитесь, что они отдают
301или мета-robotsnoindex. - Проверьте исходный код страниц: canonical должен вести на чистый адрес.
- Сравните sitemap до и после: лишние URL не должны туда попадать.
- В Search Console отправьте на повторную проверку страницы, где были дубли.
Если используете серверный редирект, проверьте заголовки через curl:
curl -I https://example.com/?replytocom=12В ответе должен быть либо 301 на чистый URL, либо страница должна быть недоступна для индексации по вашей схеме. Если видите 200 OK и тот же контент, дубль всё ещё жив.
Частые ошибки и как их исправить
Закрыли URL в robots.txt, но не убрали из sitemap
Так делать не стоит. Поисковик продолжит видеть адреса в карте сайта, но не сможет нормально обработать их содержимое. Исправление: уберите URL из sitemap и оставьте только осмысленные страницы.
Поставили noindex на нужные архивы
Это часто случается с рубриками, которые реально собирают трафик. Если архив полезен пользователям, не закрывайте его только потому, что он похож на другие страницы. Лучше доработать структуру и canonical, чем убирать страницу из индекса.
Сделали редирект всех вложений на главную
Это плохой компромисс. Пользователь и робот теряют контекст. Если у изображения есть родительская запись, редиректите туда. Если нет — решайте отдельно, нужен ли вообще такой URL.
Оставили в теме генерацию лишних архивов
Некоторые темы создают страницы авторов, дат, тегов и нестандартные архивы без явной необходимости. Если вы не используете их в навигации, отключайте или закрывайте от индексации на уровне темы или SEO-плагина.
Что делать, если дублей много и сайт уже в индексе
Когда мусорных URL накопилось много, не пытайтесь всё исправить одним большим редиректом. Сначала разложите их по типам:
- что нужно сохранить;
- что можно редиректить;
- что должно стать noindex;
- что вообще не должно генерироваться.
Если сайт большой, удобно вести список в таблице: старый URL, новый URL, тип действия, дата проверки. Это экономит время, когда приходится разбирать повторные обходы и старые ссылки из внешних источников.
Для проектов, где нужен более жёсткий контроль дублей и технической индексации, часто помогает связка SEO-настроек и чистки лишних сущностей. Например, Clearfy Pro уместен именно там, где нужно убрать служебные страницы, дубли и лишнюю техническую нагрузку без ручной правки каждого шаблона: https://wpshop.ru/plugins/clearfy.
Мини-чек-лист перед публикацией правок
- Проверены страницы вложений и настроен их сценарий.
- Лишние архивы закрыты или убраны из индексации.
- Canonical ведёт на чистый URL.
- Sitemap содержит только нужные страницы.
- Robots.txt не конфликтует с картой сайта.
- Редиректы отдают корректный код ответа.
Если после этого в индексе всё ещё остаются старые дубли, это не всегда ошибка настройки. Иногда поисковику нужно время, чтобы переобойти старые адреса и обновить представление о сайте. Но если новые дубли продолжают появляться, источник всё ещё генерируется на стороне темы, плагина или внутренних ссылок.