Бесплатный экспресс-аудит сайта Безопасность, SEO, AI-поиск и 152-ФЗ — отчёт с баллами за минуту Проверить сайт
Обсудить проект

Дубли страниц на 1С-Битрикс: откуда берутся и как убрать

Оценить статью

Дубль — это когда одна и та же страница доступна по нескольким адресам. Поисковая система считает их разными документами, выбирает главный сама и далеко не всегда так, как хотелось бы. На сайтах 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, www301 на основное зеркало

На 1С-Битрикс редиректы удобно собирать в одном месте — обработчиком на событие OnBeforeProlog в local/php_interface/. Это нагляднее, чем правила в urlrewrite.php, и переносится вместе с кодом. Важно предусмотреть исключения: служебные каталоги, файлы с расширением, запросы к API — иначе редирект поломает то, что работало.

И не забывайте про query-строку: редирект должен сохранять параметры, иначе рекламные переходы с метками потеряют статистику.

Главная ошибка

Закрыть дубли в robots.txt и ждать, что они выпадут. Так не работает: запрет обхода означает, что робот на страницу не зайдёт, а значит, не увидит ни noindex, ни редиректа, и адрес останется в индексе как «неизвестный документ».

Чтобы адрес ушёл, обход нужно разрешить, а на странице отдать запрет индексации или редирект. Подробный разбор — в материале про то, как закрыть сайт от индексации.

Чек-лист

  1. Проверить коды ответа у вариантов адреса: со слешем, без, с index.php.
  2. Проверить старые адреса до перехода на ЧПУ, если переход был.
  3. Настроить 301 на единый вариант, сохранив параметры запроса.
  4. Поставить canonical на страницах с метками, фильтрами и сортировками.
  5. Проверить, что мусорные адреса закрыты noindex, а не запретом обхода.
  6. Пересобрать карту сайта и убедиться, что в ней только основные адреса.
  7. Через две-четыре недели посмотреть в Вебмастере, что дубли ушли из индекса.

Если разбираться некогда, этот список мы закрываем отдельной услугой, а начать можно с экспресс-аудита: он показывает часть дублей и то, как сайт отвечает роботам.

Статья была полезна?

Оцените первым — так другие читатели поймут, стоит ли читать

Частые вопросы

Чем дубли опасны?

Поисковая система видит несколько адресов с одинаковым содержимым и выбирает, какой показывать, сама. Выбор не всегда совпадает с вашим: в выдачу попадает адрес с меткой кампании или без слеша, ссылки и поведенческие сигналы размываются между копиями, а обход сайта тратится на лишние страницы.

Хватит ли одного canonical?

Canonical — рекомендация, а не команда. Для вариантов одной страницы её обычно достаточно, но если дубль доступен по прямому адресу и на него ведут ссылки, надёжнее редирект. Для фильтров и сортировок canonical подходит, для адресов со слешем и без — нет, там нужен 301.

Можно закрыть дубли в robots.txt?

Это самая частая ошибка. Запрет обхода не убирает адрес из индекса: робот не зайдёт на страницу и не увидит там запрета индексации. Чтобы адрес выпал, обход должен быть разрешён, а на странице должен стоять noindex или отдаваться редирект.

Что делать с UTM-метками?

Добавить canonical без параметров и указать параметры в разделе Вебмастера, чтобы робот не считал их разными страницами. Редирект, обрубающий метки, ставить нельзя: он сломает статистику рекламных кампаний.

Как понять, что дубли ушли?

Через две-четыре недели после правок посмотреть в Вебмастере количество страниц в поиске и раздел с исключёнными адресами. Моментального эффекта не будет: роботу нужно обойти старые адреса и увидеть редирект.