Дубль — это когда одна и та же страница доступна по нескольким адресам. Поисковая система считает их разными документами, выбирает главный сама и далеко не всегда так, как хотелось бы. На сайтах 1С-Битрикс набор дублей обычно один и тот же, и собирается он годами.
Откуда они берутся
- Слеш в конце адреса.
/uslugi/auditи/uslugi/audit/отдают одно и то же с кодом 200. Самый массовый случай: дублируется каждая страница сайта. - index.php. Раздел открывается и как
/uslugi/, и как/uslugi/index.php. - Старые адреса до ЧПУ.
/blog/detail.php?ID=352и/blog/kak-proverit-mesto-na-servere/— одна статья, два адреса. Если старый не отдаёт редирект, он живёт в индексе своей жизнью. - Метки рекламных кампаний. Адрес с
utm_sourceдля робота отличается от чистого. - Фильтры, сортировки и пагинация. Умный фильтр порождает тысячи комбинаций, и все они доступны по уникальным адресам.
- http и https, с www и без. Четыре варианта одного сайта, если не настроены редиректы.
Мы прошли этот список на собственном сайте: детальные страницы блога, базы знаний и раздела интеграций отдавали 200 и со слешем, и без, а старые адреса вида detail.php?ID= возвращали страницу вместо редиректа. Внутри сайта ссылки везде вели на правильный вариант, поэтому проблема и не бросалась в глаза.
Как найти
Самый простой способ — проверить коды ответа руками:
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" https://example.ru/uslugi/audit
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" https://example.ru/uslugi/index.php
Ожидаемый ответ для дубля — 301 с адресом основной страницы. Если приходит 200, дубль живой.
Дальше смотрите Вебмастер: раздел страниц в поиске и список исключённых адресов с причиной «дубль». Там же видно, какую версию поисковая система выбрала основной — иногда это сюрприз.
Чем закрывать
| Случай | Решение |
|---|---|
| Адрес со слешем и без | 301 на вариант со слешем |
| index.php в конце | 301 на адрес раздела |
| Старые detail.php?ID= | 301 на ЧПУ элемента |
| Метки кампаний | canonical без параметров, параметры в Вебмастере |
| Фильтры и сортировки | canonical на раздел, noindex для комбинаций |
| http, www | 301 на основное зеркало |
На 1С-Битрикс редиректы удобно собирать в одном месте — обработчиком на событие OnBeforeProlog в local/php_interface/. Это нагляднее, чем правила в urlrewrite.php, и переносится вместе с кодом. Важно предусмотреть исключения: служебные каталоги, файлы с расширением, запросы к API — иначе редирект поломает то, что работало.
И не забывайте про query-строку: редирект должен сохранять параметры, иначе рекламные переходы с метками потеряют статистику.
Главная ошибка
Закрыть дубли в robots.txt и ждать, что они выпадут. Так не работает: запрет обхода означает, что робот на страницу не зайдёт, а значит, не увидит ни noindex, ни редиректа, и адрес останется в индексе как «неизвестный документ».
Чтобы адрес ушёл, обход нужно разрешить, а на странице отдать запрет индексации или редирект. Подробный разбор — в материале про то, как закрыть сайт от индексации.
Чек-лист
- Проверить коды ответа у вариантов адреса: со слешем, без, с index.php.
- Проверить старые адреса до перехода на ЧПУ, если переход был.
- Настроить 301 на единый вариант, сохранив параметры запроса.
- Поставить canonical на страницах с метками, фильтрами и сортировками.
- Проверить, что мусорные адреса закрыты noindex, а не запретом обхода.
- Пересобрать карту сайта и убедиться, что в ней только основные адреса.
- Через две-четыре недели посмотреть в Вебмастере, что дубли ушли из индекса.
Если разбираться некогда, этот список мы закрываем отдельной услугой, а начать можно с экспресс-аудита: он показывает часть дублей и то, как сайт отвечает роботам.
Статья была полезна?
Частые вопросы
Чем дубли опасны?
Поисковая система видит несколько адресов с одинаковым содержимым и выбирает, какой показывать, сама. Выбор не всегда совпадает с вашим: в выдачу попадает адрес с меткой кампании или без слеша, ссылки и поведенческие сигналы размываются между копиями, а обход сайта тратится на лишние страницы.
Хватит ли одного canonical?
Canonical — рекомендация, а не команда. Для вариантов одной страницы её обычно достаточно, но если дубль доступен по прямому адресу и на него ведут ссылки, надёжнее редирект. Для фильтров и сортировок canonical подходит, для адресов со слешем и без — нет, там нужен 301.
Можно закрыть дубли в robots.txt?
Это самая частая ошибка. Запрет обхода не убирает адрес из индекса: робот не зайдёт на страницу и не увидит там запрета индексации. Чтобы адрес выпал, обход должен быть разрешён, а на странице должен стоять noindex или отдаваться редирект.
Что делать с UTM-метками?
Добавить canonical без параметров и указать параметры в разделе Вебмастера, чтобы робот не считал их разными страницами. Редирект, обрубающий метки, ставить нельзя: он сломает статистику рекламных кампаний.
Как понять, что дубли ушли?
Через две-четыре недели после правок посмотреть в Вебмастере количество страниц в поиске и раздел с исключёнными адресами. Моментального эффекта не будет: роботу нужно обойти старые адреса и увидеть редирект.