Как избавиться от дублей страниц в Bitrix
Наличие дублирующих страниц – частая проблема, с которой приходится сталкиваться оптимизаторам. Наличие таких страниц на сайте ведёт к «замусориванию» индекса, трате краулингового бюджета на ненужные страницы, появлению на выдаче дублей вместо продвигаемых страниц. Всё это в конечном итоге ведёт к ухудшению ранжирования сайта.
Среди разных CMS в моём личном рейтинге 1С-Битрикс не занимает первого места по количеству типичных проблем с дублями. Например, от Joomla можно ожидать куда большего числа проблем с разными типами дублей. Но и 1С-Битрикс не лишена своих особенностей. Наиболее часто сложности возникают с фильтром, товарами и страницами пагинации.
Но сперва расскажу про те случаи возникновения дублей, которые характерны для всех типов сайтов и CMS.
Дубли главной страницы
Чтобы проверить их наличие, следует проверить доступность главной страницы по следующим адресам:
https://www.oridis.ru/index.php
https://www.oridis.ru/home.php
https://www.oridis.ru/index.html
https://www.oridis.ru/home.html
https://www.oridis.ru/index.htm
https://www.oridis.ru/home.htm
(наиболее распространённые варианты)
Корректным ответом сервера при открытии подобных страниц будет 404 или 301.
Если же страница возвращает 200 ОК, это говорит нам о наличии дубля.
Быстро и удобно проверить главную страницу на наличие дублей можно при помощи данного сервиса:
https://apollon.guru/duplicates/
WWW/без-WWW
Перед началом продвижения обязательно следует определиться с тем, какой адрес сайта считать главным зеркалом – с www или без него.
Оба варианта имеют свои плюсы и минусы. Вариант без www короче. При длинном доменном имени добавление ещё четырёх символов не всегда выглядит красиво. А к плюсам варианта с www можно отнести, что при написании адреса сайта с www в некоторых редакторах адрес автоматически становится гиперссылкой.
Форма отправки письма Outlook
На нашем сайте основным зеркалом выбрана версия www.oridis.ru
Теперь для проверки корректности настройки следует проверить, что страницы без префикса www перенаправляют на страницы с www в адресе.
Пример:
В данном случае страница перенаправляет на www-версию. Проблем нет.
Код ответа страницы можно проверить при помощи инспектора браузера либо при помощи онлайн-сервиса, например:
https://bertal.ru/index.php?a7054246/https://oridis.ru/seo/#h
О том, как правильно настроить редирект, можно узнать в материале https://www.oridis.ru/articles/301-redirect.html
GET-параметры
Прекрасный способ отыскать дубли и другие «мусорные» страницы – это посмотреть проиндексированные страницы в поисковых системах:
https://yandex.ru/search/?text=host%3Awww.oridis.ru&lr=213&clid=2186620
Часто там можно обнаружить совершенно удивительные страницы, о которых даже сложно было предположить.
В индекс попадают и страницы с метками (например, UTM). Чтобы исключить такие страницы можно использовать директиву Clean-param:
https://yandex.ru/support/webmaster/robot-workings/clean-param.html
Именно таким способом пользуется OZON.RU:
https://www.ozon.ru/robots.txt
Другой альтернативный метод борьбы с дублями GET-параметров – это закрывать их в robots.txt через директиву Disallow. Google не воспринимает директиву Clean-param, зато директиву Disallow прекрасно понимает как Google, так и Яндекс.
Крупный интернет-магазин Эльдорадо (работающий, кстати, на Битрикс), использует Disallow для закрытия ненужных GET-параметров:
https://www.eldorado.ru/robots.txt
Если вы хотите закрыть от индексации все страницы с GET-параметрами, то достаточно прописать строчку:
Disallow: /*?
Далее перейдём к более специфичным особенностям 1С-Битрикс.
Страницы пагинации
В Битрикс подобные страницы, как правильно имеют вид:
https://site.ru/catalog/inventar/?PAGEN_1=7
Что же с ними делать? Как избавиться от подобных страниц в индексе? И нужно ли это делать в принципе?
Читаем рекомендации поисковых систем.
Яндекс:
Если в какой-либо категории на вашем сайте находится большое количество товаров, могут появиться страницы пагинации (порядковой нумерации страниц), на которых собраны все товары данной категории. Если на такие страницы нет трафика из поисковых систем и их контент во многом идентичен, то советую настраивать атрибут rel="canonical" тега <link> на подобных страницах и делать страницы второй, третьей и дальнейшей нумерации неканоническими, а в качестве канонического (главного) адреса указывать первую страницу каталога, только она будет участвовать в результатах поиска.
https://yandex.ru/blog/platon/2878
Т.е. Яндекс рекомендует ставить нам canonical на пагинаторные страницы, ведущие на основную категорию.
Сами рекомендации датированы 2015-м годом. Обращался в техподдержку Яндекса, чтобы узнать не потеряли ли актуальность данные рекомендации. Техподдержка актуальность рекомендаций подтвердила.
Google ранее советовал настраивать link rel next/prev для пагинаторных страниц. Но на данный момент от данной рекомендации он отказался:
https://twitter.com/googlewmc/status/1108726443251519489
Google также сообщает, что использование canonical на пагинаторных страницах со ссылкой на основную категорию (первую страницу) является ошибкой:
https://webmasters.googleblog.com/2013/04/5-common-mistakes-with-relcanonical.html
Таким образом получается, что рекомендации Яндекс и Google противоречат друг другу.
Что делать в этой ситуации – каждый должен решить для себя.
Например, я обычно проставляю canonical на основную категорию, следуя рекомендациям Яндекса. Причина такого решения заключается в том, что продвижение мы в основном ведём под Рунет, где доля Яндекса пока ещё больше Google. Если же вы продвигаетесь в иностранном сегменте интернета, где царствует Google, старайтесь ориентироваться на актуальные рекомендации этой поисковой системы.
Страницы фильтра
При работе с интернет-магазином на 1С-Битрикс можно часто столкнуться со страницами с /filter/clear/apply/ в адресе.
Один из вариантов решения – прописать каноникал на основную категорию.
Т.е. страница:
https://site.ru/catalog/aksessuary/podsumki-i-patrontashi/filter/clear/apply/
должна содержать canonical, ведущий на:
https://site.ru/catalog/aksessuary/podsumki-i-patrontashi/
Решение можно считать правильным (по крайней мере, с точки зрения Яндекса). Однако такой подход требует определённых трудозатрат программиста на написание нужного функционала.
К тому же каноникал не является панацеей и строгой рекомендацией для поисковых систем (в отличии, например, от файла robots.txt). Канонические страницы вполне могут попадать в индекс, если поисковая система сочтёт это нужным:
https://webmaster.yandex.ru/blog/nekanonicheskie-stranitsy-v-poiske
Наименее трудозатратный и наиболее простой способ быстро решить данную проблему – это прописать соответствующие директивы в файле robots.txt.
Например, можно полностью закрыть все страницы с «filter»:
Disallow: /*filter
Часто встречаю подобный вариант написания директив:
Disallow: /*filter*
Однако, нет никакой необходимости ставить звёздочку на конце строчки. Дело в том, что по умолчанию в конце записи, если не указан спецсимвол «$», всегда подразумевается звёздочка.
Стандартный файл robots.txt для Битрикс
Из коробки 1C-Битрикс не содержит файла robots.txt. Чтобы его создать необходимо перейти в административную панель и выбрать:
Маркетинг > Поисковая оптимизация > Настройка robots.txt
Далее можно выбрать «Стартовый набор» и нажать кнопку «Сохранить».
В результате создастся файл robots.txt. Его содержимое может иметь следующий вид:
User-Agent: *
Disallow: */index.php
Disallow: /bitrix/
Disallow: /*show_include_exec_time=
Disallow: /*show_page_exec_time=
Disallow: /*show_sql_stat=
Disallow: /*bitrix_include_areas=
Disallow: /*clear_cache=
Disallow: /*clear_cache_session=
Disallow: /*ADD_TO_COMPARE_LIST
Disallow: /*ORDER_BY
Disallow: /*PAGEN
Disallow: /*?print=
Disallow: /*&print=
Disallow: /*print_course=
Disallow: /*?action=
Disallow: /*&action=
Disallow: /*register=
Disallow: /*forgot_password=
Disallow: /*change_password=
Disallow: /*login=
Disallow: /*logout=
Disallow: /*auth=
Disallow: /*backurl=
Disallow: /*back_url=
Disallow: /*BACKURL=
Disallow: /*BACK_URL=
Disallow: /*back_url_admin=
Disallow: /*?utm_source=
Disallow: /*?bxajaxid=
Disallow: /*&bxajaxid=
Disallow: /*?view_result=
Disallow: /*&view_result=
Allow: /bitrix/components/
Allow: /bitrix/cache/
Allow: /bitrix/js/
Allow: /bitrix/templates/
Allow: /bitrix/panel/
Host: www.1097lab.bitrixlabs.ru
Закрыты от индексации основные технические разделы и страницы. Отрыты – пути к CSS и JS-файлам. Если этого не сделать, поисковые системы могут воспринимать сайт некорректно. Например, сервис Google Mobile-Friendly Tools не сможет увидеть корректный дизайн и сайт может не пройти проверку на мобильность.
Также стоит отметить, что строчка Host лишняя и её можно смело удалять (особенно, если у вас настроены редиректы). Яндекс отменил данную директиву, но Битрикс продолжает по-прежнему генерировать файл robots.txt вместе с ней.
Один товар в нескольких категориях
Распространённая трудность не только с сайтами на Битрикс, но и с любыми другими интернет-магазинами.
Поэтому расскажу, как решить этот вопрос в общем случае. Существует как минимум два подхода для устранения таких дублей.
Сперва приведу примеры. Итак, у нас есть один и тот же товар, который относится к нескольким категориям:
http://site.ru/catalog/phones/honor-10/
http://site.ru/catalog/electronics/honor-10/
Решение №1
Отказаться от вложенных адресов и формировать адреса товаров независимо от категории:
http://site.ru/detail/honor-10/
http://site.ru/detail/xiaomi-mi-9/
Решение №2
Пользоваться canonical. Для этого один из адресов товара выбираем каноническим и проставляем link rel="canonical" на страницах с повторяющимися предложениями.
Как найти все дубли?
Здесь на помощь приходят различные программы-краулеры. Мой личный фаворит - Netpeak Spider. Другой способ, о котором я уже писал выше – изучение индекса поисковых системах.
И конечно же вы всегда можете обратиться к нам. Поможем устранить дубли, исправить технические ошибки и сделаем ваш сайт удобным и привлекательным для пользователей.
Ямщиков Сергей, интернет-маркетолог