Перенос сайта на новый домен

  1. Главная
  2. Блог
  3. Разработка
  4. Перенос сайта на новый домен

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

  • перенос содержимого сайта;
  • установка 301 редиректа (для всех url);
  • изменение robots.txt.

Процесс переноса содержимого сайта мы решили показать на примере самой распространенной бесплатной CMS, а именно WordPress.

1. Перенос содержимого сайта

Первым делом необходимо сделать бэкап сайта, например из командной строки SSH:

cd full_path_to_WP // Переходим в папку с установленным wordpress
tar -pczf backup.tar.gz * // Архивируем все файлы в текущей директории

Скопировать архив с бэкапом в папку нового домена и распаковать из SSH можно командой:

tar -xvfz backup.tar.gz

Далее необходимо перенести базу данных (если хостинг не меняется, данные правки не обязательны):

  • Через утилиту phpmyadmin необходимо экспортировать таблицу WordPress в формате SQL.
  • Импортировать dump.sql в новую базу данных.

После переноса всех файлов и базы данных необходимо отредактировать файл wp-config.php, находящийся в корне сайта, заменив в нем следующие строки:

define('DB_NAME', 'you_bd_name'); // имя базы данных
define('DB_USER', 'you_db_user'); // имя пользователя базы данных
define('DB_PASSWORD', 'you_db_password'); // пароль к базе дынных
define('DB_HOST', 'you_db_host'); // host базы данных, чаще всего localhost

После этого сайт заработает на новом домене, но некоторые ссылки будут отображаться некорректно, чтобы это исправить необходимо выполнить несколько команд в базе данных. Для этого необходимо зайти в phpmyadmin, выбрать нужную вам базу данных, нажать SQL и выполнить код (заменив old.name и new.name на нужные вам значения):

UPDATE wp_options SET option_value = replace(option_value, 'http://old.name', 'http://new.name') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://old.name', 'http://new.name');
UPDATE wp_posts SET post_content = replace(post_content, 'http://old.name', 'http://new.name');

Следует обратить внимание на то, что префикс таблиц wp_ хоть и является стандартным, но может отличаться для разных инсталяций WordPress, в таком случае, в запросе необходимо заменить и его. После этого в 99% случаев сайт будет работать корректно. Если же в шаблоне встречаются ссылки содержащие старое доменное имя, следует поправить их вручную, либо запустить небольшой bash скрипт:

#!/bin/bash
for i in `grep -rl 'old.name' .`; do sed -i 's/old.name/new.name/g' $i; done

Предварительно заменив old.name и new.name, сохраните данный код в любом текстовом редакторе (в кодировке utf-8) под именем script.sh. Скопируйте его в папку с WordPress и выполните в SSH следующие команды:

cd full_path_to_WP // Переходим в папку с установленным wordpress
bash script.sh //Запуск скрипта

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

2. Установка 301 редиректа

На старом сайте в файле .htaccess нужно установить 301 редирект на все файлы, кроме robots.txt (new.name замените на ваш новый домен):


RewriteEngine off

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

3. Изменение robots.txt

В файле robots.txt в качестве хоста необходимо указать ваш новый домен:

User-Agent: *
Disallow:
Host: new.name

На этом работы по переносу сайта на новый домен закончены. При правильном выполнении всех трёх пунктов:

  • новому домену передадутся ТИЦ и PR (правда, придется подождать пересчета этих параметров);
  • вес ссылок и другие seo параметры так же будут переданы через 301 редирект;
  • поисковые позиции старого сайта будут восстановлены Яндексом.

Как показывает наша практика при правильном переносе сайта на новый домен весь поисковой трафик удается сохранить на 95-100%, а в некоторых случаях (если старый домен был под санкциями) и приумножить. Если возникли какие-нибудь вопросы, просим задавать их в комментариях.

Понравилось? Репост!
Даша
А как происходит перенос сайта с площадки в Москве на площадку в Амстердаме в пределах )) одного хостера (nic)? Точно так же, как вы описали, или есть тонкости? Может, это вообще может сам хостер сделать, я же продолжаю у него держать сайт. Спасибо.
сергей
Наткнуться бы мне на эту статью раньше!!!! Месяц назад переносил, замучился!!
Женя
Федор, добрый день. Все сделала по вашей инструкции, при переезде все таки пропала часть информации, но это дело поправимое, надеюсь). Еще все таки не все ссылки стали новым доменом, часть попадается со старым адресом. Еще такой момент, новый домен, является не главным зеркалом старого, в яндексе сказали, что просто нужно прописать робот, не делать редирект, ждать. Редирект я сделала как вы написали, я же правильно поняла, что он просто исключает роботс? И можно ли сейчас добавлять статьи на новый домен? Потому что при добавлении в индекс яндекса, он пока выдает что домен является не главным зеркалом и предлагает добавить статью со старым адресом. А еще, что делать с sitemap.xml вручную поменять там ссылки старого домена на новый? Извините за столько вопросов, просто в голове пока их много и хочется все решить. Первый раз перекидываю сайт.
Женя
Федор, большое спасибо за ответ. А запросы, которые вы дали по ссылке, нужно оба выполнить в phpmyadmin, через sql? И еще мне написали в яндексе, что можно ставить статьи на новый домен, но они должны дублироваться и на старом домене, это обязательно? Если их не дублировать на старом, не расклеится сайт? Просто когда перехожу на старый домен, он меня уже перекидывает на новый.
Женя
Большое спасибо. А вот этот момент я правильно поняла: запросы, которые вы дали по ссылке, нужно оба выполнить в phpmyadmin, через sql?
Женя
Спасибо.
Женя
Здравствуйте. Можно я вас еще немного помучаю вопросами. Прошлый раз перенесла сайт, домены не так давно склеились. И вроде бы все хорошо было, но вот сайт попал под агс, а в гугле он не в индексе даже. И теперь предлагают делать редиректы со старых страниц на новые. А разве не должно было получиться так, по вашей инструкции? Как сейчас быть, и как делать постраничный редирект?
Денис Нарижный
Женя, здравствуйте! Фильтр АГС накладывается Яндексом за “качество” сайта (к примеру за не уникальный контент). Связывать наложение АГС с переносом сайта на новый домен нельзя. Пришлите пожалуйста адрес сайта (оба домена) к нам на почту: info@studiof1.ru, я посмотрю, что можно сделать.
Сергей
Скажите пож-ста,,, у моего сайта заблокирован аккаунт и как я понял еще и само имя сайта на гугл адсенс…если я перенесу свой сайт на другой домен, поможет ли мне это вернуть акаунт и опять поставить рекламу
Сергей
причина блокировки на адсенсе от того что я сам кликал по объявленям…мне удалось создать новый аккаунт, но при вставке кода реламы на сайте просто белое поле без рекламы..видмо и домен заблокировали. Вот и думаю перевести своий сайт на другой домен, как думаете может другие способы есть?
Алексей Литовченко
Сергей, принципиально любые варианты накруток и манипуляций, как правило, дают только краткосрочный эффект. Чтобы быть в плюсе на дистанции, нужно подходить к работе с рекламой структурно.
Антон
Доброго времени суток, в данный момент регистратор хочет заблокировать мой домен через 10 дней, мотивирую тем что данные паспорта не совпадают с указанными при регистрации домена. Скажите пожалуйста выполнив пункты 2 и 3 из Вашей инструкции, получится сохранить позиции в ПС ?
Денис Нарижный
Антон, здравствуйте! Позиции сайта при постраничной переклейке восстанавливаются в Яндексе в среднем через 1-2 месяца, в Гугле через 2-3 недели. Единственное, что при смене владельца сайта есть риск обнуления его параметров Яндексом. Сказать на сколько это вероятно в вашем случае не зная адрес сайта очень сложно. Если при переносе на сайте ничего не меняется (структура, дизайн, контактные телефоны, адреса и т.д.), кроме владельца, то вероятность восстановления позиций сайта при простановке постраничного 301 редиректа, очень высока.
Ivan
Есть такой вопрос, допустим сайт был нормально перенесен, со времен, нужно продлевать старый доммен или нет, для правильной работы?
Ваня
Лучше заменить 5 пунктов: UPDATE wp_posts SET guid = REPLACE(guid, ‘http://old-example.com’,'http://new-example.com’); UPDATE wp_posts SET post_content = REPLACE(post_content, ‘http://old-example.com’, ‘http://new-example.com’); UPDATE wp_options SET option_value = REPLACE(option_value, ‘http://old-example.com’, ‘http://new-example.com’); UPDATE wp_usermeta SET meta_value = REPLACE(meta_value, ‘http://old-example.com’, ‘http://new-example.com’); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ‘http://old-example.com’, ‘http://new-example.com’);
Маша
Долго не могла понять как все сделать правильно и решила обратиться в хостинг-компанию WebGuard.pro. Там есть статья о переносе https://webguard.pro/kak-perenesti-sajt-s-drugogo-hostinga. Если клиент не может, например, разобраться предлагают бесплатный перенос) быстро и качественно работают. Я сама не программист, мне кажется проще обратиться в тех.поддержку.
Анатолий
Добрый день. Спасибо большое за подробную статью. Есть такой вопрос: При 301 редиректе у меня на хостинге остаются 2 сайта, старый и новый. Причем на старом можно оставить всего 2 файла: robots.txt и .htaccess, верно? А в какой момент можно удалять старый сайт и домен? Заранее спасибо
Анатолий
Добрый день. Спасибо большое за подробную статью. Есть такой вопрос: При 301 редиректе у меня на хостинге остаются 2 сайта, старый и новый. Причем на старом можно оставить всего 2 файла: robots.txt и .htaccess, верно? А в какой момент можно удалять старый сайт и домен? Заранее спасибо
Ильмира
Здравствуйте! Подскажите, пожалуйста, как мне быть в моей ситуации. Был домен mycosta.ru, не углядела за продлением и его кто-то прикупил по окончании оплаченного срока. Но все файлы с сайта и база данных у меня остались. Теперь есть новый домен espanamar.ru, куда я перенесла сайт (пока выключен из индекса). Но первый сайт почему-то действует и я не понимаю как. Файлы первоначального сайта в админке пока не удаляла. Как мне теперь правильно поступить, чтобы новый сайт не выглядел копипастом перед ПС? Права в гул вебмастере на первый сайт подтвердить никаким способом не могу, файл подверждения размещаю в корне, но гугл его не находит, правленный robots.txt тоже не высвечивается. Заранее благодарю за помощь!
Андрей
День добрый, есть такая ситуация: Два сайта одной тематики. Один из них старый – www.best-t-shirts.ru – заброшен, но имеет трафик и возраст. Сделан ещё на html. Второй www.magazin-futbolok.su – рабочий на Joomla. Видно, что сайты разные по структуре и текстовому контенту. Хочу сделать редирект с первого на второй. Но возникает вопрос – если я сделаю редирект, то контент первого сайта со временем станет недоступен для робота, соответственно позиции и трафик упадут. Есть ли в этом смысл. Или я чего-то не понимаю. Если редирект всё-таки делать, то как? Постранично? На первом сайте всего порядка 70 страниц. Спасибо за помощь.
Анна
Здравствуйте! Подскажите пожалуйста, какие мне стоит предпринять действия. У меня был сайт, который удалили (пропустила момент продления). Я перенесла сайт на новый домен hindirus.ru (Для меня это сделала техподдержка хостинга). Что мне обязательно нужно сделать сейчас, чтобы сайт со временем находился поисковиками корректно. Очень боюсь, что мой сайт воспримут, как копию старого, который не открывается уже как 2 месяца. Заранее благодарю!
Андрей
Добрый день, а что нужно делать в кабинете вебмастера яндекса? нужно удалять старый сайт, а вместо него добавить и подтвердить новый?
Андрей
Яндекс ставит фильтр на сайты с назойливой рекламой(имеется введу кликандр) Скорей всего фильтр поставлен вручную.