100% правильный перенос сайта на WordPress на другой домен и хостинг
Нашел абсолютно проверенный и 100%-рабочий способ переезда сайтов под Вордпресс на другой домен или хостинг. Все можно сделать быстро, а главное - правильно!
Обычно я переношу сайты WordPress CMS на другой хостинг довольно часто - по 20 раз в месяц (такая работа!). И мне всегда казалось, что я все делаю правильно: ну перенес файлы, перенес базу данных, поменял имя сайта в файлах и базе – и вуаля!
Но не так все просто. Как-то после очередного переезда у меня напрочь перестали работать виджеты - сайт отображался криво.
Я погуглил и нашёл причину – недостаточно просто перенести сайт, нужно еще и правильно поменять его имя с учетом синтаксиса современных баз данных. И я решил поделиться своим способом переноса Вордпресса на новый домен и хостинг и со своими читателями.
Плагины после переноса WordPress не заработали
Раньше я действовал так: ставил плагин Xcloner, копировал с его помощью сайт в виде архива (там внутри была и база), затем переносил и устанавливал на новый хостинг или домен.
Но даже с помощью этого, казалось бы проверенного способа, несколько моих последних сайтов некорректно перенеслись, когда я их устанавливал клиентам на хостинг.
В чем же дело? Я подумал сразу, что видимо дело в плагине Xcloner. Перепробовал еще штук 5 разных плагинов, вроде бесплатного Duplicator и платного BackUp Buddy, и еще уже не помню всяких разных до кучи.
Везде была одна и та же проблема - сайт после переноса выглядел криво. Как бы не все элементы отображались, в первую очередь, виджеты.
Я плюнул на плагины и подумал: перенесу по старинке руками.
Переношу WordPress вручную
Как я уже писал в других статьях, современный сайт состоит обычно из двух «частей»: программные файлы и база данных со статьями, настройками и прочей информацией.
Поэтому в процессе переноса WordPress на другой домен и хостинг в ручном режиме обычно состоит из этих же двух этапов:
- Переносим файлы
- Переносим базу данных
Вручную это делается так.
Перенос файловПонятно, что перенести файлы можно несколькими способами. Раньше я это делал через FTP-протокол (читаем как работать по FTP тут). В этом случае я сначала копировал файлы на свой компьютер, затем открываю доступ ко второму хостингу - и туда уже переношу программные файлы WordPress.
По 3G-соединению это делать вообще не резон, даже с учетом того, что я как следует увеличил скорость подключения (читаем как я это сделал на мобильном интернете).
Поэтому я нашел более изящный способ.
Большинство моих клиентов использует панель хостинга - ISP Manager, там есть функции переноса целого архива прямо с одного хостинга на другой - минуя мой компьютер.
Так что теперь я делаю так: создаю архив всего сайта WordPress на своем хостинге и мгновенно переношу его на второй хостинг через ту же панель ISP.
Это занимает пару секунд и совсем не жрёт трафик. Такой способ поддерживает еще несколько панелей управления хостингом (вот тут есть более подробная информация о том, какой хостинг я рекомендую).
Дальше остается только распаковать архив в директорию нового домена. Если не знаете, как создать домен и папку для него - то есть вы совсем еще зеленый в этой области - просто попросите хостера сделать это, я еще не встречал ни одного нормального хостера, кто бы отказал в этой просьбе своему клиенту.
Если нет возможности использовать ISP панель, то переносите по старинке через FTP.
Ну вот вы и перенесли файлы. Нужно теперь поменять в файле конфигурации wp-config.php устаревшую информацию и указать новый домен, куда был перенесен wordpress-сайт.
Там все примитивно, разберетесь. Сохраняете после изменений wp-config.php и идем дальше.
Перенос базы данныхЕсли вы хотите быть уверенными на 200%, что все ваши статьи, записи и настройки скопируются полностью и правильно, то копируйте базу вручную прямо с сервера вашего хостера.
Для этого заходите в панель управления хостингом, выбирайте службу PhpMyAdmin (этот программа для управления базами данных), вводите логин и пароль от базы (есть в том же файле wp-config.php) и когда попадете внутрь – просто экспортируйте нужную базу, у вас получится один файл в формате SQL.
Я вот не знаю, нужно ли подробнее описывать процесс копирования базы данных? Если вы считаете, что нужно, напишите в комментариях, тогда я возможно, сделаю отдельную подробную статью по этому вопросу.
Теперь делаем на новом хостинге то же самое – заходим в PhpMyAdmin, вводим логин и пароль от свежей только что созданной базы данных и импортируем наш SQL-архив в нее.
Всё - теперь старая база данных находится на новом хостинге.
И теперь - самое главное.
Секретный момент!
Нюанс, о котором я не знал и из-за которого после переезда на новый хостинг и домен у меня некоторые сайты под WordPress сразу не заработали.
Современные базы данных хранят в некоторых местах не только информацию о домене сайта, например, "https://moytop.com", но также индексируют эту информацию, указывая в соседних полях, из скольких символов состоит строка с именем домена, например вот так:
s17 – означает, что в поле url – 17 символов.
И если вы просто поменяете в редакторе один домен на другой, а количество символов не поменяете, то будут ошибки в домене и те же виджеты просто не станут работать.
И что? Сидеть с калькулятором и высчитывать длину новых доменов и строк? Наверняка можно это все автоматизировать и упростить.
Да, я это делаю вместе со специальным скриптом «Safe Search and Replace on Database with Serialized». Это реально волшебная программа, которая быстро и правильно делает замену старого домена на новый в базе данных при переносе сайта. При этом скрипт делает за вас всю нудную работу – высчитывает количество символов заменяемой строки и правильно добавляет их куда нужно в новую базу данных.
Чтобы запустить скрипт, достаточно его скачать на компьютер, затем по FTP переписать всю папку в корень вашего нового сайта и ввести путь к скрипту типа такого http://ваш сайт/database в любом браузере.
Скачать программу можно в интернете – она бесплатна, поищите в сети или можете скачать с моего сервера прямо сейчас через плагин социальных сетей.
Прямо сейчас вы можете скачать нужный файл с моего сервера - это просто и бесплатно. Достаточно кликнуть на любой значок соцсети, в которой вы, разумеется, имеете аккаунт и оставить сообщение в выбранной соцсети, после чего вам откроется скрытое содержимое.
Скачать файлВсе получилось успешно!
Распакуйте и следуйте инструкции по применению, рассказанной в этой статье. Если вдруг возникнут сложности со скачиванием - напишите в комментариях.
Если на ваш емейл после подписки не приходит письмо для подтверждения уведомления (такое бывает иногда в зависимости от типа вашего ящика), то есть такие варианты:
- Подождите минут 5-10.
- Попробуйте другую почтовую сеть, лучше всего работают mail.yandex.ru или gmail.com.
- Проверьте папку СПАМ - может нужное письмо именно там. После чего обязательно отметьте его и кликните - НЕ спам.
- Если ничего не получилось, напишите мне в Контакты и укажите ссылку на страницу, версию браузера и примерный порядок действий.
Итак, установили и открыли скрипт? После запуска вы увидите примерно такой экран:
Программа работает именно с WordPress, поэтому логин и пароль к базе возьмет из конфигурации сама, всё что вам нужно – это вписать в первое поле имя старого домена (откуда переносится сайт), во второе поле – имя нового домена (куда переносим сайт) и нажать Live Run.
Процесс пошёл! Он нагляден, тут же показывается где и какие таблицы в базе содержали значение старого домена и все ли успешно поменялось.
Домены рекомендую вводить без префикса, то есть лучше не использовать http://test2.moytop.com, пишите просто: test2.moytop.com
Ну и в конце после замены информации о домене – можете удалить скрипт с сайта, так даже рекомендуют его авторы, чтобы он не был потенциальной дырой в безопасности сайта (читайте как повысить безопасность своего сайта на WordPress за пару кликов).
Все готово! Теперь перезагружайте страницу CTRL+F5 и если вы все сделали правильно и внимательно, то сайт перенесется на новый домен и хостинг без проблем.
И напоследок еще один суперпростой способ!
Мне его подсказал в комментариях Василий, за что ему отдельное спасибо
Для его реализации понадобится доступ в админку и плагин Velvet Blues Update URLs.
Этот плагин удобнее всего поставить еще до переноса Вордпресс-системы (как установить плагины для WordPress) и после переноса зайти в админку и выбрать в настройках нужные параметры.
Попасть в настройки:
Нужные параметры:
То есть в первом поле - старый адрес (лучше без http, просто домен). Во втором - новый (аналогично).
Внизу я выбираю все галочки, чтобы поменять везде, где только можно.
Вот и все, дальше жмите - на кнопку UPDATES URLs и старые ссылки в базе заменятся на новые.
Этот способ переноса работает тоже хорошо, я проверил на нескольких сайтах - все четко.
И еще —
Несколько дополнительных советов по корректному переносу на другой хостинг:
- Проверьте, чтобы версия PHP была одинакова на старом и новом хостинге
- Проверьте, чтобы базы данных использовали полностью идентичную версию кодировки
- Воспользуйтесь услугой бесплатного переноса на новый хостинг от самого хостера! Вот тут я привожу хостеров, которых я уже проверил, и которые делаю бесплатный переезд сайтов к себе на хостинг.
Кстати, я не очень люблю переносить сайты вручную, поэтому сейчас приступаю к масштабному тестированию разных плагинов под WordPress именно для миграции на другой хостинг или домен. Пока все что я пробовал – не устраивали меня на 100%, в каждом был какой-то косяк.
Так что подписывайтесь на обновления, когда найду реально рабочий классный вариант - выложу на блоге.