Перенос сайта на новый домен с минимальными потерями

Filed Under (Хостинг и Домены) by admin on 06-09-2009

Условия задачи:

Для определенности и простоты изложения будем исходить из следующий условий:
•    Мы хотим переехать с домена example.ru на example.com
•    Наш сайт доступен по обоим этим доменам, т. е. они оба припаркованы на один и тот же сервер и папку.
•    Рассматриваем только Яндекс и Гугль как две основные ПС, example.ru проиндексирован ими, а example.com – нет.

Решаем задачу

Главная сложность состоит в том, что Яндекс в упор не понимает 30x редиректов и если просто поставить этот редирект, то старый сайт из индекса вылетит, а вот проиндексируется ли новый – непонятн; Гугль, в свою очередь, игнорирует директиву Host из robots.txt, на которую ориентируется Яндекс.
Поэтому миграция будет осуществляться в два этапа: для Яндекса и для Google.

Этап первый. В robots.txt для обоих доменов прописываем директиву

Host: example.com
и для нового домена добавляем так же:
User-agent: Googlebot
Disallow: /

Это позволит нам в течение первого периода избежать санкций от гугля за дублированный контент.
Единственная сложность состоит в том, что у нас robots.txt физически один и тот же для обоих доменов. Тем не менее, это легко преодолеть, либо разруливая запросы на разные файлы с помощью .htaccess и mod_rewrite, либо с помощью вспомогательного скрипта, который вы найдете в конце поста.

После того, как robots.txt приведен в надлежащий вид, нам нужно дождаться, пока Яндекс не обнаружит зеркало и не сделает его основным. После этого можно заняться Гуглем.

Этап второй. Для переопределения основного домена для Гугля нужно установить 301-й редирект со старого домена на новый, при чем обязательно с сохранением страниц. Т. е. адрес http://example.ru/page1.html должен перенаправляться на http://example.com/page1.html.

Это делается при помощи такого кода в .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !example.com
RewriteRule (.*)
http://example.com/$1 [R=301,L]

При этом, важно не забыть убрать из robots.txt запрет Гуглю индексировать example.com ;-)

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

Использование вспомогательного скрипта

Сам по себе, скрипт крайне прост – он считывает ваш robots.txt, добавляет к нему нужные инструкции и отдает в браузер/поисковому боту. Установка и настройка:

1.    Находим в коде скрипта строку
define(‘NEW_DOMAIN’, ‘example.com’); // Новый домен
и заменяем в ней example.com на ваш новый домен.
2.    Помещаем скрипт в корневую папку сайта под именем robots.php
3.    В .htaccess добавляем код:
RewriteEngine On
RewriteRule robots.txt robots.php
4.    Открываем в браузере http://example.com/robots.txt и http://example.ru/robots.txt и убеждаемся, что скрипт работает и отдает разный код в зависимости от домена.

По завершении переиндексации Яндексом вы просто удаляете добавленные строки из .htaccess и сам скрипт.

Скачать скрипт

Разруливание robots.txt через .htaccess

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

1.    Создайте две копии вашего robots.txt: robots-old.txt и robots-new.txt. Отредактируйте их так, как нужно для нового и старого домена соответственно.
2.    В .htaccess добавьте такой код:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !example.com
RewriteRule robots.txt robots-old.txt [L]
RewriteRule robots.txt robots-new.txt

Опять же, не забудьте заменить example.com на ваш новый домен.

После окончания первого этапа указанные строки из .htaccess уберите и сами файлы robots-new.txt и robots-old.txt – тоже.

P. S. Описанная выше методика является компиляцией многих опубликованных в сети советов, снабженной конкретными техническими решениями

По материалам сайта http://www.prodvinemvmeste.ru

Post a comment