Безболезненный перенос сайта на WordPress на новый домен

Иногда может возникнуть ситуация, когда необходимо сайт, работающий на движке WordPress, перенести на новый домен. Т.е. суть данного действа заключается только в изменении имени домена, все содержимое же, равно как и структура ссылок, остается прежним. При этом не маловажный момент — сохранение показателей тИЦ и PR.

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

Процесс переноса можно условно разделить на 2 части:

  1. Перенос сайта, работающего на движке WordPress, на новый домен.
  2. Создание 301 редиректа со старого домена на новый.

Перенос сайта, работающего на движке WordPress, на новый домен

В самую первую очередь необходимо сделать 2 вещи:

  • скопировать все фтп-файлы со старого домена на новый;
  • обязательно создать резервную копию базы данных сайта, чтобы в случае чего можно было сделать откат.

Дальнейшие действия могут выполняться одним из трех нижеследующих способов.

Первый способ

Это самый простой способ, требующий от вас минимум действий.

  1. Зайдите в админ-панель вашего сайта на страницу «Настройки — Общие».
  2. В полях «Адрес WordPress» и «Адрес сайта» укажите URL нового домена и подтвердите изменения, нажав на кнопку «Сохранить изменения».
  3. Готово. В тот же момент WordPress переадресует вас на страницу входа в админ-интерфейс, но уже на новом домене.

Второй способ

  1. Откройте сохраненный sql-дамп базы данных в текстовом или PHP редакторе.
  2. Замените все вхождения старого адреса сайта на новый адрес, например, http://domain.ru заменить на http://newdomain.ru, и сохраните изменения.
  3. Загрузите дамп в базу данных на сервере, предварительно удалив из нее все имеющиеся таблицы.
  4. Готово. Сайт на WordPress работает по новому адресу.

Третий способ

  1. Зайдите в phpMyAdmin и выберите базу данных.
  2. Нажмите на вкладку «SQL» и поочередно выполните следующие 3 запроса, заменив http://domain.ru и http://newdomain.ru соответственно на старый и новый адреса сайта (обратите внимание, что в конце адреса не должно быть слеша):
    • UPDATE wp_options SET option_value = replace(option_value, 'http://domain.ru', 'http://newdomain.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
    • UPDATE wp_posts SET guid = replace(guid, 'http://domain.ru','http://newdomain.ru');
    • UPDATE wp_posts SET post_content = replace(post_content, 'http://domain.ru', 'http://newdomain.ru');
  3. Готово. Теперь сайт будет открываться по новому адресу.

Создание 301 редиректа со старого домена на новый

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

Для этого необходимо заменить содержимое файла .htaccess, находящегося в корне старого домена, на следующее (вместо newdomain.ru указывается новый домен):

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

На этом процедуру переноса WordPress-сайта на новый домен можно считать законченной.

Теперь несколько слов относительно сохранения показателей тИЦ и PR сайта.

Вышеуказанная директива кроме своего прямого назначения позволяет перенести на новый домен показатель Google PR, так что с ПиАром проблем возникнуть не должно.

Однако открытым для меня остается вопрос переноса показателя тИЦ Яндекса. Я прочитал по этому поводу достаточно информации, но так и не нашел однозначного решения. В основном рекомендуют на старом домене создать файл robots.txt с указанием параметра Host: newdomain.ru, на это не сработает из-за 301-го редиректа.

Я был бы признателен тому, кто разъяснит мне данный вопрос.

Добавлено 24.04.2010

Сам нашел ответ на свой вопрос. Чтобы при обращении к старому домену срабатывал 301-редирект, но за исключением файла robots.txt, в файле .htaccess старого домена нужно указать следующее:

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

А в файле robots.txt указать следующее:

User-Agent: *
Disallow:
Host: newdomain.ru
Полезные комментарии (2)
Комментарии (230)
  1. 1
    Gregro

    Добрый день!
    Вопрос такой — а почему, если первый способ самый легкий, люди вообще про второй-третий говорят?

    С первым способом какие-то ошибки случаются?

  2. 3

    Спасибо за толковую статью. Воспользовался третьим способом

  3. 4

    Спасибо за статью, не думал что все так просто. Воспользовался первым способом. За 2 минуты перенес сайт на новый домен. Даже в базе данных и файлах ничего править не надо))) Круто!

  4. 5
    Михаил

    Может быть писали, но не заметил, повторюсь тогда:
    После переноса не грузит карту ,выскакивает «При загрузке Google Карт на этой странице возникла проблема. Подробности вы найдете в консоли JavaScript.»
    Сайт на вордпрессе, уже всё перекопал, не пойму где что.

  5. 6
    Данил

    Всем добрый день! Использовал первый способ, сохранил изменения и мне пишет что не удается получить доступ к сайту! не подскажите в чем причина???

  1. 1

    https://wordpress.org/plugins/duplicator/
    Есть вот такой плагин для переноса. В базе и файлах вручную ничего править не надо, указываете настройки нового домена/хостинга и готово.

  2. 2

    Вот описание плагина для переноса настроек виджетов — ссылка.