Безболезненный перенос сайта на WordPress на новый домен
Иногда может возникнуть ситуация, когда необходимо сайт, работающий на движке WordPress, перенести на новый домен.
К данному вопросу необходимо подходить с полным пониманием дела, ибо обратное может быть чревато неприятными последствиями.
Процесс переноса можно условно разделить на 2 части:
- Перенос сайта, работающего на движке WordPress, на новый домен.
- Создание 301 редиректа со старого домена на новый.
Перенос сайта, работающего на движке WordPress, на новый домен
В самую первую очередь необходимо сделать 2 вещи:
- скопировать все фтп-файлы со старого домена на новый;
- обязательно создать резервную копию базы данных сайта, чтобы в случае чего можно было сделать откат.
Дальнейшие действия могут выполняться одним из трех нижеследующих способов.
Первый способ
Это самый простой способ, требующий от вас минимум действий.
- Зайдите в админ-панель вашего сайта на страницу «Настройки — Общие».
- В полях «Адрес WordPress» и «Адрес сайта» укажите URL нового домена и подтвердите изменения, нажав на кнопку «Сохранить изменения».
- Готово. В тот же момент WordPress переадресует вас на страницу входа в админ-интерфейс, но уже на новом домене.
Второй способ
- Откройте сохраненный sql-дамп базы данных в текстовом или PHP редакторе.
- Замените все вхождения старого адреса сайта на новый адрес, например, http://domain.ru заменить на http://newdomain.ru, и сохраните изменения.
- Загрузите дамп в базу данных на сервере, предварительно удалив из нее все имеющиеся таблицы.
- Готово. Сайт на WordPress работает по новому адресу.
Третий способ
- Зайдите в phpMyAdmin и выберите базу данных.
- Нажмите на вкладку «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');
- Готово. Теперь сайт будет открываться по новому адресу.
Создание 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
Комментарии (270)
RewriteEngine off
Options +FollowSymLinks
RewriteEngine on RewriteRule (.*) newdomain.ru/$ 1 [R=301,L]
Создается многократный редирект на 255 255 255 255 и сайт ложится.
Проще, конечно, указать новый адрес, как это рассматривается в первом варианте и не беспокоиться
Если нет доступа в админку значительно проще будет просто прописать в wp-config.php (вместо 3го способа):
Благодарю тебя)) two seconds and done!
как скоро будут видны изменения? указала новый адрес, как это рассматривалось в первом варианте и заменила содержимое файла. htaccess
RewriteEngine On RewriteRule ^(.*)$ MCC-transport.pl/$ 1 [R=301,L]
Использовал третий способ, только вместо wp_options у меня было wpyt_options. Ничего в роботе и .htaccess не прописывал. все работает
Единственное, если у вас используется сертификат SSL, то зайдите после третьего способа, как написано в 1 и допишите заместо http https
Выбрал второй способ, буду освобождать домен под передачу его и с негно и поддомена буду сайты переносить на новые домены, но в зоне .РФ различий нет или есть какие-то нюансы при переносе на .РФ?
Не знаю, такими доменами не пользовался.
Все-таки на .ru переведу сайты, описанным выше способом все ссылки перепишутся страницы, посты, адреса рубрик, меток, картинок или надо что-то делать еще?
Только это.
> Однако открытым для меня остается вопрос переноса показателя тИЦ Яндекса.
как-то переносил сайт таким способом, в итоге просел в поисковой выдаче. Здесь надо действовать по инструкции яндекса для склейки доменов — yandex.ru/support/webmaster/yandex-indexing/moving-site.html
Последний перенос домена в яндексе занял чуть больше месяца. Зато позиции сайта остались как есть.
Для переноса сайта на новый домен рекомендую плагин Duplicator -https://ru.wordpress.org/plugins/duplicator/
Спасибо, добрый человек! Супер-статья!
Думаю, что скоро мне пригодятся ваши инструкции!
Добрый день. Когда я переносил свой сайт с одного домена на другой мой сайт потерял позиции. И это было очень ощутимо. До сих пор ощущаю недостаток посетителей. В дальнейшем буду пробовать применять Ваш способ.
Здравствуйте.
Делал то же самое, но плагином better search replace, собственно делал много раз. Но в этот раз где-то слеш поставил, забыл убрать. Сайт работает, но при попытке перевести его на ssl отдает ERR_TOO_MANY_REDIRECTS
Подозреваю что это лишний слеш боком выходит. Возможно подскажете где ковырять? Если сделать запрос замены сайт/ на сайт, то вообще все сломается наверно.
Бред на конец 2019
Полезно, как раз переношу сайт.
Спасибо огромное! Переезжали на новый домен по причине потери старого, не было доступа в админку по прежнему адресу, спасла только ваша инструкция.