Web Art Solutions
 
robots.txt: стандарт, расширения, аспекты применения
RSS в продвижении сайта
Кривые зеркала или о склейке сайтов
Что такое клоакинг
Составление файла robots.txt

Главная / Статьи / Как склеить зеркала сайта

Как склеить зеркала сайта

Автор:

Два переезда равны одному пожару?.. Насколько справедливо это выражение, если речь идет о переносе сайта на новый домен, или, как еще говоря, «переезде сайта»? Попробуем разобраться, с какими проблемами здесь можно столкнуться.

«Кривые» зеркала

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

С другой стороны следует помнить, что http://example.com и http://www.example.com — фактически два разных сайта. Поэтому отмечены сотни случаев, когда продвигается www.example.com, а «глупые» пользователи поставят пару ссылок на сайт без www, после чего «тупые» роботы начинают индексировать оба сайта по отдельности. Более того, через некоторое время в поисковых системах срабатывает механизм склеивания зеркал, и бывает, что неосновное зеркало, по мнению вебмастера, становится основным, но уже по мнению поисковика. Механизмы склейки у каждой поисковой системы свои (у Яндекса, например, существует специальный робот, с буквой H в имени).

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

Переезд без смены дизайна

Рассмотрим последовательность действий при переезде сайта без смены дизайна и структуры, т.е. когда на разных доменах находятся одинаковые копии страниц. Пусть старый адрес будет www.old-site.com, а новый адрес — main-site.com.

Шаг первый

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

Итак, исправляем ссылки с
<a href="/page.html">
на <a href="http://main-site.com/page.html">
.

Шаг второй

Поскольку для многих Яндекс является приоритетной поисковой системой, то вторым шагом мы указываем основное зеркало специально для Яндекса. Сделать это можно с помощью специальной директивы Host в файле исключений robots.txt. Файл используется для указания роботам тех адресов, которые запрещено индексировать. Директива Host — изобретение Яндекса и понимается исключительно его роботами, в стандарте исключений директива не описана. Значением Host должно быть главное зеркало сайта без http://, в нашем случае — main-site.com

Поскольку директива нестадартная, то использовать ее надо только в секции для Яндекса, но не в секции для всех роботов. Таким образом, в robots.txt следует обязательно cоздать секцию для Яндекса, даже если весь набор правил одинаковый для всех роботов. Пример:

User-agent: *
Disallow: /dir/page.html
 
User-agent: Yandex
Disallow: /dir/page.html
Host: main-site.com

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

User-agent: Yandex
Disallow:
Host: main-site.com

После создания или редактирования файла robots.txt следует ждать посещения робота с буквой H. Склейка или смена адресов происходит, как правило, во время следующего апдейта после посещения "зеркальщика".

Шаг третий

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

Шаг четвертый

После выполнения всех предыдущих шагов и смене зеркал в Яндексе и Рамблере можно с чистой совестью обратить внимание на Запад. Само собой, в сторону Google. Резвость и ресурсы позволяют роботу GoogleBot индексировать большое количество страниц и довольно часто. Поэтому если быть неразборчивым в установке внешних ссылок, то можно получить случай, когда проиндексировано два и более зеркал совсем без склейки. Что же делать в таком случае?

Для Google однозначным выбором главного зеркала является подокументный серверный редирект с кодом 301 — постоянный, а не временный, как 302 — со всех дополнительных зеркал на основное зеркало. Это означает, что робот поисковой системы или обычный пользователь, запросивший любой документ с дополнительного зеркала, перенаправляется сервером на соответствующий документ основного зеркала, например при запросе www.old-site.com/page.html все перенаправляются на main-site.com/page.html. Сделать такой подокументный редирект можно несколькими способами, например при настройке виртуальных хостов в конфиге веб-сервера Apache или же с помощью модуля mod_rewrite. Последний случай как раз и рассмотрим, поскольку возможность управлять правилами перезаписи адресов есть на большинстве хостинг-площадок.

Для работы с правилами mod_rewrite в корневом каталоге сайта следует найти файл .htaccess или создать новый, если его не существует. А в нем записать следующие правила:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?old-site\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.main-site\.com$
RewriteRule ^(.*)$ http://main-site.com/$1 [R=301,L]

Что же мы такого написали в этих строках. Строка 1 включает механизм преобразования адресов.

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

Строки 3 и 4 определяют условие, для которого будет выполняться следующее за ними правило. В нашем случае условием является запрос документа с неосновных зеркал, в третьей строке — другой домен, в четвертой — основной домен, но с www.

Строка 5 и выполняет редирект любого документа на соответствующий документ основного зеркала.

Следует напомнить, что настраивать такой редирект нужно только после правильной склейки, как минимум, в Яндексе.

Резюме

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