Нашел абсолютно проверенный и 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», но также индексируют эту информацию, указывая в соседних полях, из скольких символов состоит строка с именем домена, например вот так:
a:2:{s:3:"url";s:17:"https://moytop.com";s:4:"meta";s:8:"метатеги";}
s17 – означает, что в поле url – 17 символов.
И если вы просто поменяете в редакторе один домен на другой, а количество символов не поменяете, то будут ошибки в домене и те же виджеты просто не станут работать.
И что? Сидеть с калькулятором и высчитывать длину новых доменов и строк? Наверняка можно это все автоматизировать и упростить.
Да, я это делаю вместе со специальным скриптом «Safe Search and Replace on Database with Serialized». Это реально волшебная программа, которая быстро и правильно делает замену старого домена на новый в базе данных при переносе сайта. При этом скрипт делает за вас всю нудную работу – высчитывает количество символов заменяемой строки и правильно добавляет их куда нужно в новую базу данных.
Чтобы запустить скрипт, достаточно его скачать на компьютер, затем по FTP переписать всю папку в корень вашего нового сайта и ввести путь к скрипту типа такого http://ваш сайт/database в любом браузере.
Скачать программу можно в интернете – она бесплатна, поищите в сети или можете скачать с моего сервера прямо сейчас через плагин социальных сетей.
Итак, установили и открыли скрипт? После запуска вы увидите примерно такой экран:
Программа работает именно с WordPress, поэтому логин и пароль к базе возьмет из конфигурации сама, всё что вам нужно – это вписать в первое поле имя старого домена (откуда переносится сайт), во второе поле – имя нового домена (куда переносим сайт) и нажать Live Run.
Процесс пошёл! Он нагляден, тут же показывается где и какие таблицы в базе содержали значение старого домена и все ли успешно поменялось.
Домены рекомендую вводить без префикса, то есть лучше не использовать http://test2.moytop.com, пишите просто: test2.moytop.com
Ну и в конце после замены информации о домене – можете удалить скрипт с сайта, так даже рекомендуют его авторы, чтобы он не был потенциальной дырой в безопасности сайта (читайте как повысить безопасность своего сайта на WordPress за пару кликов).
Если был http а стал https
Важный момент.
Если у вас был сайт без ssl просто http…. (да, да, встретился мне такой сегодня в канун 2024 года!!), то после переезда важно заменить в базе данных все значения «http:» на «https:»
- Этим же плагином, просто запускайте новую замену.
- Затем проверьте в файлах темы чтобы нигде не осталось http
- Проверьте в корне сайта в wp-config.php чтобы там тоже было всё с https
Если главная страница загрузилась с https а внутренние нет (по-прежнему http) — скорее всего проблема в кривом хостере, пинайте его.
Как выбрать лучший хостинг я уже писал ранее.
Например, в моей практике было такое, что хостер в глобальной переменной $_SERVER возвращал на внутренних страницах путь с http и следом за ней всякие get_template_directory_uri(); и bloginfo(«template_directory»); также, конечно, выдавали путь с http.
Пока не прописал жестко в wp-config.php такую штуку $_SERVER[‘HTTPS’]=’on’; проблема не решалась.
Так что имейте ввиду, что может быть корявый хостинг, а вообще все нормальные хостеры делают перенос сайта на WordPress (включая настройку SSL) — бесплатно!!
Все готово! Теперь перезагружайте страницу CTRL+F5 и если вы все сделали правильно и внимательно, то сайт перенесется на новый домен и хостинг без проблем.
Ничего не получилось?
Обратитесь на Кворк — вам перенесут всё за 500 росс. руб. в течение часа — вот тут ссылка
Перенос с помощью плагина
Мне нравится еще перенос с помощью плагина Duplicator — он довольно простой, русскоязычный и правильно переносит Вордпресс, по крайней мере я не наблюдал проблем после его работы.
И напоследок еще один простой способ!
Мне его подсказал в комментариях Василий, за что ему отдельное спасибо
Для его реализации понадобится доступ в админку и плагин Velvet Blues Update URLs.
Этот плагин удобнее всего поставить еще до переноса Вордпресс-системы (как установить плагины для WordPress) и после переноса зайти в админку и выбрать в настройках нужные параметры.
Попасть в настройки:
Нужные параметры:
То есть в первом поле — старый адрес (лучше без http, просто домен).
Во втором — новый (аналогично).
Внизу я выбираю все галочки, чтобы поменять везде, где только можно.
Вот и все, дальше жмите — на кнопку UPDATES URLs и старые ссылки в базе заменятся на новые.
Этот способ переноса работает тоже хорошо, я проверил на нескольких сайтах — все четко.
Также мне понравился плагин Better Search Replace — там все то же самое и тоже отлично работает.
И еще —
Несколько дополнительных советов по корректному переносу на другой хостинг:
- Проверьте, чтобы версия PHP была одинакова на старом и новом хостинге
- Проверьте, чтобы базы данных использовали полностью идентичную версию кодировки
- Воспользуйтесь услугой бесплатного переноса на новый хостинг от самого хостера! Вот тут я привожу хостеров, которых я уже проверил, и которые делаю бесплатный переезд сайтов к себе на хостинг.
Кстати, я не очень люблю переносить сайты вручную, поэтому сейчас приступаю к масштабному тестированию разных плагинов под WordPress именно для миграции на другой хостинг или домен. Пока все что я пробовал – не устраивали меня на 100%, в каждом был какой-то косяк.
Так что подписывайтесь на обновления, когда найду реально рабочий классный вариант — выложу на блоге.