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

Опубликовано 9 мая, 2009 в Сайтостроительство

Переносил я блог на другой домен.

Итак,теперь о том, как правильно перенести сайт на другой домен с минимальными потерями в поисковиках.

При переносе сайта с домена на домен, необходимо помнить прежде всего о поисковиках. Чтобы передать старые показатели (тИЦ и PR) новому домену, а также ускорить переиндексацию, мы должны «склеить» оба домена. У Яндекса и Гугла разные методы склейки. Для гугла нужен 301 редирект, для Яндекса – запись в файле robots.txt старого домена – «host: newdomain.ru».

Редирект также нужен для перенаправления посетителей с URL старого домена на URL нового. В индексе поисковиков еще долго будут странички со старого домена, люди будут кликать по ссылкам в выдаче, попадать на старый домен. Их необходимо перенаправлять на ту же страничку на новом домене.

Чтобы осуществить редирект со всех старых URL на новые, необходимо всего несколько строк в файле .htaccess (он должен лежать в корне сайта):

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://newdomain.ru/$1 [R=301,L]

Теперь все посетители и роботы будут вежливо отправляться на новый домен с полным сохранением правой части URL.

Одна только беда. Теперь при обращении к /robots.txt робот будет отправляться на новый домен. Как же тогда склеить домены в Яндексе? Необходимо просто сделать исключение для этого файла в .htaccess

<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://newdomain.ru/$1 [R=301,L]

Теперь домены будут спокойно склеиваться и в Яндексе и Гугле одновременно.




Комментарии «Правильный перенос сайта на новый домен»:
Комментариев: 38. Обязательно оставьте свой!
pistol 19.05.2009 в 4:48

Сайт переиндексировался на новом домене за 1 неделю, обоими поисковиками.

Александр 20.07.2009 в 17:10

Жаль что не прочитал эту статью раньше, потерял посетителей ии попал в БАН яндекса как не уникальный контент, если есть выход, поскажите плиз

pistol 20.07.2009 в 17:33

Если уже забанили, вижу один выход – писать Платону (http://feedback.yandex.ru/?from=webmaster) с доказательствами того, что оба домена ваши (можно повесить страницу на старом домене с копией письма).

Наталья 18.10.2009 в 12:04

Так на старый домен будет отправляться же не только робот Яндекса но и Гугла и все остальные? Как гугловский робот помет что на сайте 301 редирект?

pistol 18.10.2009 в 12:17

> Так на старый домен будет отправляться же не только робот
> Яндекса но и Гугла и все остальные? Как гугловский робот помет
> что на сайте 301 редирект?

Ничего не понял :) На старый домен никто перенаправляться не будет, со старого все (и поисковики и пользователи) будут 301 редиректом отправляться на новый. Все страницы обратятся в 301 редирект на новый домен, только robots.txt будет доступен на старом.

Наталья 18.10.2009 в 14:35

Ну вот, поисковые роботы (всякие-разные), если я правильно понимаю, ищут файлик robots.txt. А этот файлик мы как раз в данном случае и не редиректим, чтобы яндекс все правильно склеил. А придет гугловский робот в поисках robots.txt и также попадет на старый домен. Или гугловский бот гуглит не так как яндекс и для него robots.txt не показатель?

pistol 18.10.2009 в 14:46

Да, гугл руководствуется только 301 редиректом, запись в роботсе только для яндекса что-то значит. Можно даже в User-agent задать только яндекс.

Дмитрий 03.12.2009 в 13:40

Спасибо Илья. Это очень полезная статья. Я долго ломал голову, что делать, мне нужно было перенести блог из подпапки на главную страницу своего домена, но не хотелось терять все накопленные до этого входящие ссылки. Теперь понял, что решение есть, буду пробовать.

PS: поставьте плагин для быстрого добавления статей в социальные закладки.

Дмитрий 03.12.2009 в 13:48

В вордпрессе есть возможность изменить адрес блога. При этом мне нужно изменить всего лишь :
mysite.ru/blog
на
mysite.ru или другой домен на этом же хостинге

Что мне нужно будет еще сделать – нужно ли переносить файлы из папок, перепрописывать базу данных или все это автоматом произойдет и у меня будет просто 2 файла .htaccess в корне и в папке /blog?

Нужно ли будет что-то вручную делать с базой данных?

Заранее спасибо за ответ.

pistol 03.12.2009 в 14:31

Нужно сделать так:

1) Перенести все файлы в новую папку blog.
2) Сделать экспорт базы данных (в пхпмайадмин)
3) Открыть блокнотом только что сделанный дамп (если файл большой – справится только AkelPad).
4) Сделать автозамену в файле (правка – заменить, что: mysite.ru на: mysite.ru/blog. Это делается, чтобы не только настроечный адрес блога заменить, но и адреса всех картинок и ссылок из постов.
5) Удалить все впшные таблицы базы, импортировать только что измененный бекап в пустую базу.
6) Создать на старом месте (в корне) роботс и хтаццесс из первого поста.

Дмитрий 06.12.2009 в 0:50

Блягодаря вашим рекомендациям я перенес свой блог на WP с адреса http://xxx.ru/blog/ на http://yyy.ru через 301 редирект в .htaccess (в точности как написано в этом посте)

при этом
http://xxx.ru/blog/ работает нормально, а вот
http://xxx.ru/blog никуда не переадресовывается, в чем может быть проблема?

Чем я могу отблагодарить за помощь?

pistol 06.12.2009 в 12:09

Вероятнее всего, отсутсвие слеша на конце говорит серверу о том, что юзер обратился не к папке, а к файлу. Соостветственно, запрос перехватывает htaccess, находящийся в корне, в не в папке blog.

Если при запросе /blog открывается 404 ошибка от WP, вот решение:

1) Открываем header.php текущей темы.
2) В самое начало файла вписываем:

<?php
if($_SERVER['REQUEST_URI'] == '/blog') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: /");
die();
}
?>
Дмитрий 06.12.2009 в 13:07

Попробовал вставить этот код в heder.php – ничего не изменилось.
Странно то, что старый домен на новый перекидывает в любом случае, но при этом вместо корня newsite.ru в адресе высвечивает http://newsyte.ru//home/d/логинстарогохостинга/public_html/blog – путь к папке на хостинге. Т.е. .htaccess работает тот который нужно?
А в окне выдает ошибку Whoops! That Page Isn’t Here (404 ошибка вроде как). Попробовал в настройках хостинга 404 ошибку переадресовывать на корень, ничего не меняется.

Дмитрий 06.12.2009 в 13:14

Прописал в коде:

Стала открываться главная страница, но вот путь в адресе http://newsyte.ru//home/d/логинстарогохостинга/public_html/blog так и отображается, а это не прикольно.

Дмитрий 06.12.2009 в 13:15

В коде вместо /blog прописал путь /home/d/логинстарогохостинга/public_html/blog

Дмитрий 06.12.2009 в 13:19

Все заработало – Спасибо огромное за поддержку! За эти пару с вашей помощью я очень сильно прокачался в вопросе переноса сайта с одного домена на другой.

zael 23.04.2010 в 4:48

поздно прочитал , уже и в бан попал и в плагиат, следующий раз умнее буду и детям своим расскажу.

Alexey 15.11.2010 в 16:18

Здравствуйте.
Нужно ли после того как поставил редирект 301 уже новый сайт регистрировать в http://webmaster.yandex.ru/ и соответственно в Google и Yahoo (на страницах вебмастера)???
Заранее спасибо за ответ !!!

pistol 15.11.2010 в 16:22

Alexey, не обязательно, поисковики сами узнают о новом сайте по редиректу. Но не помешает.

Alexey 15.11.2010 в 17:54

А не получится так:
я сейчас добавлю НОВЫЙ сайт в ЯНДЕКС (через панель вебмастера), он его проиндексирует и позже …
… при посещении СТАРОГО сайта перейдет по редиректу 301 на НОВЫЙ, который УЖЕ будет проиндексирован …
Не забанит ли по каким-либо причинам ???

pistol 15.11.2010 в 18:42

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

Alexey 15.11.2010 в 18:49

Тогда вопрос:
как узнать, что новые страницы уже проиндексировались ???
Правильно ли я понял: добавлять сайт через панель вебмастера нужно после того, как поисковый робот уже перешел со СТАРОГО сайта и проиндексировал все страницы НОВОГО сайта ???

pistol 15.11.2010 в 18:55

Alexey, все верно. Но в принципе, это неважно. Очень маловероятны проблемы. Яндекс умный, без разбирательств никого не банит.

Alexey 15.11.2010 в 18:58

Pistol, так ка же узнать что робот уже посетил сайт ???

pistol 15.11.2010 в 19:09

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

Alexey 15.11.2010 в 19:17

ОК, про панель вебмастера забыли …
Pistol, может я не правильно задаю вопрос …
Как, когда и где можно понять, что переиндексация нового сайта УЖЕ произошла ???

pistol 15.11.2010 в 19:21

Alexey, ввести в поисковике запрос «site:newdommain.ru» без кавычек.

Alexey 15.11.2010 в 19:27

Спасибо !!!

Роман 15.01.2011 в 22:14

А файлы старого сайта удалять? На каком этапе – сразу или после склейки? или не удалять?

pistol 15.01.2011 в 22:43

Роман, удалить на любом этапе.


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

Html 17.01.2011 в 3:26

Вот такой пример заказчик не оплатил сайт. Домен его – поменял хост он соотв. Я сайт себе оставил – страницы у него проиндексировались. Что делать?

pistol 17.01.2011 в 6:15

Продвижение сайтов, на новый конечно.
Html, уже ничего не сделать.

Виктор 22.04.2011 в 19:11

Здравствуйте! Я перенес сайт на другой домен и сделал все по Вашим рекомендациям: на старом домене в файле robots.txt указал хост на новый домен, и на этом же старом домене сделал 301 редирект в файле .htacces. Вопрос вот в чем: надо ли на новом домене в файле robots.txt указывать хост на этот же домен? И можно ли на новом домене добавлять на сайт статьи(а то я где то читал что пока не проиндексируется новый домен сайты должны быть полностью одинаковыми)?

pistol 22.04.2011 в 20:52

Виктор, указывать хост на новом домене не обязательно, но и не помешает точно :) Статьи добавлять можно.

Виктор 23.04.2011 в 9:08

Спасибо!

Виктор 16.05.2011 в 18:40

Здравствуйте! Подскажите пожалуйста, ситуация такая: я перенес сайт на новый домен и хостинг, старый домен был изначально проиндексирован яндексом(на бесплатном хостинге), я укаал яндексу хост на новый домен и поставил редирект для гугла(с Вашими рекомендациями), но тут три дня назад вебмастер пишет что мой сайт не проиндексирован, а служба поддержки яндекса говорит, что мол сайты на бесплатном домене были ограничены по индексации. так вот подскажите можно заново зарегистрировать новый домен в вебмастере а старый удалить? Или может стоит поступить как то иначе?
Заранее спасибо!

pistol 16.05.2011 в 19:13

Виктор, тут какой-то нетипичный случай, попробуйте на Серче у сеошников спросить.

Ваш комментарий: