Безболезненный перенос сайта на WordPress на новый домен
Иногда может возникнуть ситуация, когда необходимо сайт, работающий на движке WordPress, перенести на новый домен. Т.е. суть данного действа заключается только в изменении имени домена, все содержимое же, равно как и структура ссылок, остается прежним. При этом не маловажный момент - сохранение показателей тИЦ и PR.
К данному вопросу необходимо подходить с полным пониманием дела, ибо обратное может быть чревато неприятными последствиями.
Процесс переноса можно условно разделить на 2 части:
- Перенос сайта, работающего на движке WordPress, на новый домен.
- Создание 301 редиректа со старого домена на новый.
Перенос сайта, работающего на движке WordPress, на новый домен
В самую первую очередь необходимо сделать 2 вещи:
- скопировать все фтп-файлы со старого домена на новый;
- обязательно создать резервную копию базы данных сайта, чтобы в случае чего можно было сделать откат.
Дальнейшие действия могут выполняться одним из трех нижеследующих способов.
Первый способ. Это самый простой способ, требующий от Вас минимум действий.
- Зайдите в админ-панель Вашего сайта на страницу “Настройки - Общие”.
- В полях “Адрес WordPress” и “Адрес блога” укажите URL нового домена и подтвердите изменения, нажав на кнопку “Обновить опции”.
- Готово. В тот же момент WordPress переадресует Вас на страницу входа в админ-интерфейс, но уже на новом домене.
Второй способ.
- Откройте сохраненный sql-дамп базы данных в текстовом редакторе.
- Замените все вхождения старого адреса сайта на новый адрес, например, http://domain.ru заменить на http://newdomain.ru, и сохраните изменения.
- Загрузите дамп в базу данных на сервере, предварительно удалив из нее все имеющиеся таблицы.
- Готово. Сайт на WordPress работает по новому адресу.
Третий способ.
- Зайдите в phpMyAdmin и выберите базу данных.
- Нажмите на вкладку “SQL” и поочередно выполните следующие 3 запроса, заменив http://domain.ru и http://newdomain.ru соответственно на старый и новый адреса сайта (обратите внимание, что в конце адреса не должно быть слеша):
-
1UPDATE wp_options SET option_value = REPLACE(option_value, 'http://domain.ru', 'http://newdomain.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
-
1UPDATE wp_posts SET guid = REPLACE(guid, 'http://domain.ru','http://newdomain.ru');
-
1UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://domain.ru', 'http://newdomain.ru');
- Готово. Теперь сайт будет открываться по новому адресу.
Создание 301 редиректа со старого домена на новый
Остается добиться того, чтобы при обращении к любой странице сайта по старому адресу посетитель автоматически перенаправлялся на ту же самую страницу в новом домене.
Для этого необходимо заменить содержимое файла .htaccess, находящегося в корне старого домена, на следующее (вместо newdomain.ru указывается новый домен):
1 2 3 | Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://newdomain.ru/$1 [R=301,L] |
На этом процедуру переноса WordPress-сайта на новый домен можно считать законченной.
Теперь несколько слов относительно сохранения показателей тИЦ и PR сайта.
Вышеуказанная директива кроме своего прямого назначения позволяет перенести на новый домен показатель Google PR, так что с ПиАром проблем возникнуть не должно.
Однако открытым для меня остается вопрос переноса показателя тИЦ Яндекса. Я прочитал по этому поводу достаточно информации, но так и не нашел однозначного решения. В основном рекомендуют на старом домене создать файл robots.txt с указанием параметра Host: newdomain.ru, на это не сработает из-за 301-го редиректа.
Я был бы признателен тому, кто разъяснит мне данный вопрос.
* * *
P.S. На последок предлагаю прочитать статью о том, почему бесплатный WordPress во многом лучше платного Bitrix’а.
насколько я понимаю, с тИЦ ничего сделать нельзя. тоже интересовался, не нашел ни одного подтвержденного случая переноса. они там видимо считают, что если сайт переехал, то и ссылки на него поправят.
и насчет пиара тоже сомнения большие, что Гугл вот так берет и переносит. кажется, не переходит столько же.
з.ы. форма коментов (скорее всего, капча) у тебя недружелюбная - неправильно ввел код, все заново набирать приходится.
Почему же сомнения? Гугл сам для этой цели предлагает использовать 301 редирект. Читал об этом на сирчэнжинсе, там где-то и ссылку давали.
Па капче - поскольку ты не первый уже это говоришь, буду принимать меры. Есть плагин на аяксе, который как раз призван решить эту проблему, поэтому посмотрю.
Очень плохо, если это действительно так. Мне нужно переносить этот блог на другой домен, а тИЦ 500 не хочется терять.
А как безболезненно переехать с blogspot.com на свой домен?
Skech, я, к сожалению, на этот вопрос ответить не могу, не приходилось сталкиваться. Но, если не ошибаюсь, с блогспота тоже можно организовать 301-й редирект на новый домен.
Зато Я.Каталог закрепляется на новом домене при 301 редиректе, если старый домен был в Я.К.
Гексли, не хотите ли Вы сказать, что в этом случае и тИЦ сохранится на новом домене? Мой блог как раз присутствует в ЯКе.
Нет тИЦ у меня не передался. А вот Я.К перешёл от старого домена. Видимо яндексовская каталожная простукивалка переходит по 301.
Мне непонятна фраза “Я.К перешёл от старого домена”.
Ситуация была следующая:
Был куплен новый домен, старый домен был в Я.К (взят на бесплатной основе). Послу установки на старом домене 301 редиректа новый домен также появился в каталоге на следующий день.
Спустя время старый домен забыли продлить и новый исчез из Я.К, - как только проплатили (старый домен), новый снова появился в Я.К.
Да уж, перенос на другой домен дело серьёзное. Многое теряется. Хорошо хоть есть редиректы и прочие инструменты.
Возможно, переносится аналогичный параметр вИЦ, если уж и говорить о “Яндексе”.
Оптимизатор, я полагаю, что так оно и должно быть, ведь вИЦ - это некий аналог гугловскому ПиАру.
О, про Я.Каталог - это хорошая новость.
а как Header:location можно использовать при переходе на новый домен? яндекс не индексирует, в отличие от гугла :(
BergHOFF, я не программист, поэтому не могу ничего посоветовать. Вообще-то способ редиректа не влияет на то, будет сайт индексироваться Яндексом, или нет.
В продолжение темы “Перенос сайта, работающего на движке WordPress” хотел бы задать вопрос:
Был блог на домене “А”, я решил его переместить на домен “Б”. Скопировал все в новое место, резервные копии не делал, и забыл сразу же изменить в настройках старый адрес на новый…, теперь при заходе на сайт он меня тупо редиректит на старый адрес…, как быть?, если можно - подробней…
Вижу 2 варианта:
1) вернуть сайт на старый домен и изменить адрес сайта в настройках, как и нужно было сделать сразу;
2) изменить адрес сайта, отредактировав БД через phpmyadmin. В БД есть таблица wp_options, кажется, там должно быть 2 параметра с адресом сайта.
Немного не в тему статьи: WordPress странно себя ведёт, и адреса закрытые (заканчивающиеся) слэшем он редиректит 301 редиректом на тот-же адрес но без слэша.
Например если попытаться открыть адрес /author/user01/ , то будет выдан 301 редирект на /author/user01
Как его от этого отучить? Ведь на мой взгляд что /author/user01/ что /author/user01 - совершенно одинаковые адреса.
Скорее всего, потому, что в настройках ЧПУ в шаблоне ссылок в конце не стоит слеш. Такой редирект появился в версии 2.3.
Так оно и есть. Но как-бы “уговорить” WP не делать такую проверку? Или где в коде можно порправить, что бы он делал редирект только в определённых случаях, а не в любых?
Просто у меня правило заканчивать адреса статей на .html но все прочие адреса не используют такое окончание, и для них редиректить не надо. Проверку такую я сделать могу, но вот понять где то место, в котором проверяется адрес на соотв. шаблону я не смог :(
В данном случае поможет только плагин. Вот только я не знаю, есть ли он.
Незнаю, можно-ли назвать это плагином, но на форумах нашёлся код, упростив который получил требуемый результат:
2
3
4
5
6
7
8
9
add_action('template_redirect', 'no_404_cat');
function no_404_cat() {
global $cat;
if ( !$cat or !is_404() ) return;
header('HTTP/1.1 200 OK');
}
Я оформил это в отдельный файл, как плагин, и подключил в вордпрессе.
Пизнаюсь, не гонял всевозможные тексты на работоспособность, но из того что попробовал: пустые (существующие!) категории/подкатегории теперь выдаются со статусом 200 а не 404, а не существующие страницы и разделы/рубрики с кодом 404. На мой взгляд всё правильно, хотя может и найдутся условия, при которых возникнет ошибка… Других вариантов решения этой проблемы не нашёл :(
gamer, а постом не ошиблись? :) Наверное это сюда стоило писать.
Извините, ошибся :)
Просто я как-бы тут начал тему про 301 редирект WP с “неправильных” адресов (я это в итоге решил подправив везде шаблоны и код) и ещё меня беспокоил 404 в пустых разделах… Но конечно это относится к каталогу статей.
А кто мешает сделать 301 редирект на PHP, а для яшки прописать адрес хоста в роботсе.
Ссылка _http://sb-money.ru/article.php?a=75
Смысл был не “терять” по 404 пустые разделы. Актуально для каталога стате в начале его заполнения да для тех кто продаёт ссылки…
Сделал как вы писали:
В полях “Адрес WordPress” и “Адрес блога” укажите URL нового домена и подтвердите изменения, нажав на кнопку “Обновить опции”.
Теперь я потерял свой блог! Базу данных сохранил, восстанавливаю, а выходит абсолютно пустой блог! Что делать? Как восстановить блог???
Ильмир, если вы сохраняли полностью рабочую базу ДО изменения адреса сайта, то после восстановления БД сайт должен вернуться к рабочему состоянию. Значит что-то неправильно делаете.
Старый и новый домены на одном хостинге расположены?
Восстановил свой блог. Скажите какие урлы надо менять в базе данных. Открыл базу текстовым редактором, но не вижу никаких урлов.
Нужно менять старый адрес сайта.
Дак как всё таки дело обстоит с ТИЦом? теряется или нет?
F, не теряется.
При установке wordpress я создал директорию blog на своем домене. У меня сейчас около 150 записей. Сейчас хочу переместить свой блог на корень домена. Допустим у меня блог находится по адресу site.ru/blog, хочу переместить на site.ru, без потерь данных. Как это сделать? Также как описано выше?
Ильмир, да, вам достаточно (после переноса файлов в корень сайта) выполнить действия из первого способа. Только перед этим не забудьте сделать резервную копию БД. Удачи.
Есть и другой вариант.
1. На новом хосте устанавливате чистый WordPress.
2. Подключаете все нужные плагины
3. Переносите контент со старого блога на новый (посмотрите видео как это сделать : Перенос контента из WordPress в WordPress
Здравствуйте, Dimox.
1.Будут ли нормально работать два сайта WP находящихся на одном хостинге, если один в виде поддомена находится в дирректории, а второй - домен, соответственно в корне.
2.Относится ли всё сказанное Вами в инструкции к переносу WP из дирректории в корень?
Спасибо.
Будут, конечно.
Сам такое не пробовал, но думаю, что сработает.
Спасибо. К концу недели попробую.
Народ, помогите думаю как реализовать, нужно чтоб 2 домена использовали одну базу. Но в этой базе прописаны url на посты и картинки. Соответсвенно для одного домена нужно на лету менять эти значения с site1.com на site2.com
Автору спасибо-очень помогло. Сделал перенос домена без проблемм.
Dimox, спасибо вам! Вы не представляете, как помогли мне =)
Я мучался наверно часа 3… И благодаря вашей записи наконец-то перенес блог! Еще раз спасибо!
ребята кто-то переносил данные с Wp на Wp, но только записи из определённых рубрик? или только убивать?
смысл затеи: есть сайт1, хост и имя проплачено на год на нем вся информация, но по-чему то яша его ни как не хочет индексировать, при этом не объясняют ничего и сайт - СДЛ и не в бане.
хочется сделать сайт2 в зоне РУ (думаю по любому проиндексирует), но перенести НЕ все топики из сайта 1. Далее поставить редирект на перенесённые топики с сайта1 на сайт2, а не перенесённые оставить жить на старом домене?…
получится ли такое или только базу кромсать оставляя домены без склейки?
Помогите решить большую проблему!
Скопировал все файлы с ФТП на жосткий диск, удалил все файлы с ФТП (все в рамках одного домена), залил обратно с диска на фтп, сайт отображается но без страниц ! что делать?