Одна страница — один адрес. Как убрать дубли страниц 1С-Битрикс

Это вторая статья серии о Битрикс и SEO:

Как убрать дубли страниц 1С-Битрикс

Доктор слушает пациента и приговаривает:
— Хорошо, хорошо...
— Доктор, а что хорошего-то?!
— Хорошо, что у меня такого нет!

С точки зрения SEO плохо, когда одна и та же страница доступна по двум разным ссылкам.

Поисковый робот путается в том, какую страницу показывать.

SEO-шнику непонятно какую из копий продвигать. Неважно, он покупает ссылки или пользуется более современными методами продвижения — адрес страницы желательно иметь фиксированным.

Причин для появления дублей может быть несколько.

Причина первая. Один элемент в нескольких секциях инфоблоков Битрикс. Дубли

С точки зрения пользователя и программиста иногда у одной страницы должны быть несколько адресов.

Например, если один и тот же товар присутствует в нескольких группах каталога.


Разумеется, попасть на его страницу можно двумя разными маршрутами.

Тогда в “хлебных крошках” должны быть разные цепочки групп. А для этого потребуется чтобы у страниц были разные адреса.

Казалось бы, все логично.



   


Единственное различие между этими страницами — слово “Платья” или “Штаны” в хлебных крошках. Для оптимизатора это — вредный дубль.

Вариант решения: нужно выбрать один основной адрес, например /catalog/pants/pants-flower-glade/ и сделать так, чтобы при переходе даже из группы /catalog/dresses/ переход шел на эту основную страницу.

Это простой путь почти без недостатков. Почти — потому что “хлебные крошки” будут вести себя нелогично и не будут удобным средством навигации.

Более изящно — проставить атрибут rel="canonical" тега link на страницах всех “дублей” и указать основную страницу, которую и продвигать. Все поисковики учитывают этот атрибут.


Это идеальное решение, так как оно сохраняет удобный пользовательский интерфейс и выполняет все требования оптимизатора.

Настройку атрибута canonical можно сделать:

  • для единичных страниц — с помощью модуля Маркетплейса 1С-Битрикс “ Инструменты SEO-специалиста ”,

  • для целого раздела — силами программиста.

Причина вторая. Адреса c /index.php и / на Битрикс. Дубли

— ААААА!!! Доктор, посмотрите, что это у меня?!!!
— ААААА!!! Господи, ЧТО это у вас?!!!!!

Одна из распространенных проблем с дублями страниц на Битрикс — появление в индексе поисковых машин страниц с именем файла index.php в адресе и без него.

Пример.

Сайт компании 1С-Битрикс показывает главную страницу и при вводе адреса http://1c-bitrix.ru , так и при указании имени файла http://www.1c-bitrix.ru/index.php

Очевидно, разработчики не считают это проблемой. В самом деле, проблемы нет, пока ссылки с именем файла не будут сгенерированы кем-то по ошибке или злому умыслу, а потом проиндексированы.

Стандартные компоненты Битрикса почти никогда не генерируют ссылки на страницы с именем файла index.php (почти — потому что нужно убирать index.php в настройке шаблонов страниц новых инфоблоков).

Тем не менее желательно подавить появление таких страниц раз и навсегда.

Это проще всего сделать добавлением трех строк в файл .htaccess (если вы применяете web-сервер Apache):

 RewriteCond %{ENV:REDIRECT_STATUS} ^$

 RewriteCond %{REQUEST_FILENAME} !/bitrix/(.*)$

 RewriteRule (^|.*?/)index\.php$ http://%{HTTP_HOST}/$1 [R=301,QSA,L]

Что получается? Получается что index.php корректно вырезается из строки адреса с простановкой 301 редиректа и сохранением get-параметров. Все будет работать:

Для полноты картины можно еще закрыть такие страницы от индексации в robots.txt.

Например, так:

 Disallow: */index.php

Яндекс, Google и ваш SEO-специалист будут довольны.

Причина третья. Дубли из-за “лишних” get-параметров в адресе

— Доктор, когда я так делаю — мне больно!
— Ну не делайте так.

Тема дублей страниц на этом не исчерпана.

Что будет, если к адресу страницы приписать произвольный параметр?

Например http://www.1c-bitrix.ru/?who_are_the_champions

Сайт просто показывает ту же самую страницу.

С точки зрения программиста это нормально. Вы у сайта спросили что-то специфическое, передали хитрый параметр. Он всем компонентам все передал, может какой-то и отреагировал. Все в порядке.

SEO-специалисту такое не нравится. Он всю ночь читал webmaster.ya.ru и не выспался. Ему мерещатся дубли.

SEOшник хочет, чтобы любые “нелегальные” параметры в адресе страницы вырезались.

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

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

Если программист сделает так, чтобы ненужные параметры блокировались, он может нарушить работу компонентов Битрикса или систем веб-аналитики.

Гораздо проще сделать вот что:

  • проследить за тем, чтобы сам сайт не генерировал “неправильных” ссылок;

  • исключить проблемные страницы из индекса (например, обычно так поступают со страницами результатов поиска);

  • своевременно добавлять в индекс поисковой машины новые осмысленные страницы, чтобы их “параметризованная” копия не была проиндексирована раньше.

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

Например, чуть выше в этой статье я разместил такую “неправильную” ссылку http://www.1c-bitrix.ru/?who_are_the_champions

Ссылка работает, индексируется, однако умный поисковик правильно “склеит” страницы и вреда никакого не будет.

Если и программист и оптимизатор будут просто мыть руки аккуратно делать свое дело, никакого вреда от лишних get-параметров не будет. А вот параноидальная попытка защититься от них будет стоить вам непредсказуемых глюков на сайте в будущем.

Читайте другие статьи серии:

Написать нам