Вот вроде бы и завершился переезд сайта SComedy с домена standupcomedyportal.com на scomedy.com. В трафике не потерял, по нужным запросам вывожусь в выдаче новым сайтом, все страницы проиндексировались успешно. Впору инструкцию написать. Хотя получится больше не абстрактная инструкция, а просто мой опыт, т. к. в разных случаях могут быть разные же особенности и подводные камни.
Итак, для переезда сайта со старого домена на новый с минимальными потерями, следует выполнить следующие пункты.
1. Сайт-заглушка на новом домене
Создаем сайт, вешаем на него одностраничник-заглушку, привязываем к нему домен, на который планируем переехать.
Я создал заглушку с таким текстом:
Stand-Up Comedy
Just in a few days this domain will be a new home for a Stand-Up Comedy Portal, currently located at standupcomedyportal.com (a rather long URL, huh, scomedy.com is a little bit shorter, though).
Для чего это нужно? Во-первых, чтобы новый домен на момент переезда на него уже был в индексе. Ну и во-вторых проверить, не зафильтрован ли наш домен, для этого и нужна пара предложений текста, чтобы пробивать по ключевым словам из них сайт в выдаче. Если выводится в топе - все ОК, нет - повод задуматься.
Для ускорения индексации заглушки имеет смысл добавить ее в AddUrl форму гугла или же поставить внешнюю ссылку. Я разметил ссылку на новый домен в подвале сайта, с которого и планировал съезжать. Бот гугла пришел уже через час, а сама заглушка появилась в индексе спустя три дня.
2. Два домена и один сайт
Наша заглушка проиндексировалась, сайт показывается в поиске, все хорошо. Переходим к следующему этапу. Нужно сделать, чтобы и старый домен и новый вели на один и тот же сайт. Можно, конечно, держать на сервере как бы два сайта, по одному на домен, и с одного сайта на старом домене редиректить всех на сайт на новом домене. Но лишняя папка же...
Намного проще и правильней будет держать один сайт, просто сделать новый домен основным, а старый его алиасом. Как я и поступил. Все что требуется, это немного отредактировать файл нашего виртуального хоста (в моем случае это scomedy.com.conf):
# domain: scomedy.com
# public: /home/tulvit/public/scomedy.com/
ServerAdmin admin@scomedy.com
ServerName scomedy.com
ServerAlias www.scomedy.com standupcomedyportal.com www.standupcomedyportal.com
# Index file and Document Root (where the public files are located)
DirectoryIndex index.html index.php
DocumentRoot /home/tulvit/public/scomedy.com/public
# Log file locations
LogLevel warn
ErrorLog /home/tulvit/public/scomedy.com/log/error.log
CustomLog /home/tulvit/public/scomedy.com/log/access.log combined
Естественно, не забываем при этом сначала отключить сайт, перезагрузить апач, отредактировать конфигурационный сайт, потом включить сайт с новой конфигурацией и снова перезагрузить апач. Все, теперь что по старому домену, что по новому нам отдается один и тот же сайт (понятное дело не заглушка, а именно основной сайт, сайт с заглушкой можно уже удалить).
3. Настраиваем редирект
Теперь надо сделать так, чтобы при обращении к сайту по старому домену нас перебрасывало на новый домен 301-ым редиректом. Или, если брать в общем, то чтобы с сайтов:
old.site
www.old.site
www.new.site
нас перебрасывало на new.site.
Для этого потребуется прописать в корневом файле .htaccess правило для модуля mod_rewrite. Сразу признаюсь, я в этом не силен, просто бегло почитал документацию и немного модифицировал уже имеющийся .htaccess. Вроде работает, но гарантировать оптимальность решения не могу.
RewriteCond %{HTTP_HOST} ^www\..+$ [NC,OR]
RewriteCond %{HTTP_HOST} ^standupcomedyportal\.com$ [NC]
RewriteRule ^ http%{ENV:protossl}://scomedy\.com%{REQUEST_URI} [L,R=301]
После чего все проверяем руками, ожидаемо ли работает. Ну и ответы сервера тоже проверяем каким-нибудь сервисом для удобства, я использовал HTTP Status Code Checker:
Замечание: браузер частенько кэширует все подряд, в том числе и редиректы, т. е. если мы поставили на домен 301-ый редирект, зашли на него, потом поменяли на 200 OK и снова зашли - браузер весьма вероятно нас все равно средиректит. Это может слегка запутать, дескать все вроде сделал правильно, ан не работает. Обновление кэша по Ctrl+R не помогло, открытие анонимных окон тоже. Поэтому тут только один 100%-ый вариант - обращаться к доменам с каким-нибудь случайным GET параметром, вида site.com?jkl.
4. Сервисы гугла
Можно считать, что мы уже переехали. Сайт по новому домену начнет неспешно индексироваться, но в выдаче некоторое время будет отдаваться все еще старый домен. Спустя пару недель (может быстрее, может дольше, в зависимости от самого сайта, одно дело сайт из двух страниц, другое дело из миллиона) проиндексируется значительная часть страниц по новому домену и в выдаче соответственно будет уже новый сайт.
Если наш сайт зарегистрирован в Гугл Вебмастерс и Аналитиксе, явно не лишним будет их перенастроить.
В Вебместерсе надо добавить наш новый домен как совершенно новый сайт (т. е. с подтверждением прав). Потом зайти в настройки старого сайта и там указать, что мы переехали (выбрав из списка новый сайт, который мы только что добавили). Делается это в пункте Change of Address, который можно выбрать, кликнув по пиктограмме с шестеренкой в правом верхнем углу экрана.
Что касается Аналитикса, то код остается старым, просто в административных настройках нужного сайта и его представления (колонка VIEW) меняем старый адрес сайта на новый. Скришноты с инструкцией делать не буду, уже забыл что там и как. Соглашусь, поначалу процесс кажется ну ни разу не интуитивным. Но метод научного тыка в данном случае работает на ура.
5. И никаких изменений на сайте!
Обычно переезд сайта на новый домен планируется совместно с какими-то еще глобальными изменениями, например сменой структуры или редизайном. Ни в коем случае не надо это делать одновременно. Гугл запутается. Мы ему говорим, что дескать старый сайт теперь на новом домене живет. Он заходит туда и туда, видит что таки да, старый сайт переехал, все нормально. А если мы сделаем редизайн? Гугл заходит на старый домен - там редирект. Заходит на новый домен - а там совершенно другой сайт, с точки зрения гугла. Совершенно другая верстка, другой исходный код и т. д. Может он в конечном итоге и разберется что к чему, но зачем ему жизнь усложнять.
В общем, ждем несколько недель после переезда на новый домен прежде чем вносить какие-то существенные изменения. Да даже несущественные. Например, на старом сайте у меня был формат тайтла "Blah-Blah-Blah | Stand-Up Comedy Portal" и, понятное дело, с переездом его надо было сменить на "Blah-blah-blah | SComedy". Я и сменил. Но только совсем недавно, через собственно несколько недель после переезда.
6. Внешние ссылки
Хорошо бы, конечно, отписаться самым топовым ресурсам, которые ссылаются на нас, чтобы они поменяли адрес ссылки. Но я не стал этим заниматься, хотя некоторое количество "вкусных" ссылок имеется. Ленивый я. Только вчера вот дошли руки в аккаунтах в соц. сетях заменить старый адрес сайта на новый, а тут по почтам кому-то писать. Но это не помешало бы, да.
PS
Также не лишним будет и прочитать статью Best practices when moving your site на официальном блоге гугла и посмотреть видео от Мэтта Кацца:
PS2
Ну а можно поступить по-другому - ни о чем не думая просто не продлить старый домен и развернуть сайт на новом. Как я и сделал с этим блогом, например. Т. е. все зависит от самого сайта и стоящих задач. В каких-то случаях надо делать по уму, в каких-то сойдет и решение спустя рукава.