06
Перенос сайта на новый домен с минимальными потерями
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

