Блог Сергея Арсентьева

Создание и продвижение сайтов с нуля.
Только реальные способы заработка в сети.
Проверено на личном опыте.

100% правильный перенос сайта на WordPress на другой домен и хостинг

Нашел абсолютно проверенный  и 100%-рабочий способ переезда сайтов под Вордпресс на другой домен или хостинг. Все можно сделать быстро, а главное - правильно!

Обычно я переношу сайты WordPress CMS на другой хостинг довольно часто - по 20 раз в месяц (такая работа!). И мне всегда казалось, что я все делаю правильно: ну перенес файлы, перенес базу данных, поменял имя сайта в файлах и базе – и вуаля!

Но не так все просто. Как-то после очередного переезда у меня напрочь перестали работать виджеты - сайт отображался криво.

Я погуглил и нашёл причину – недостаточно просто перенести сайт, нужно еще и правильно поменять его имя с учетом синтаксиса современных баз данных. И я решил поделиться своим способом переноса Вордпресса на новый домен и хостинг и со своими читателями.

Плагины после переноса WordPress не заработали

Раньше я действовал так: ставил плагин Xcloner, копировал с его помощью сайт в виде архива (там внутри была и база), затем переносил и устанавливал на новый хостинг или домен.

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

В чем же дело?
Я подумал сразу, что видимо дело в плагине Xcloner.
Перепробовал еще штук 5 разных плагинов, вроде бесплатного Duplicator и платного BackUp Buddy, и еще уже не помню всяких разных до кучи.

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

Я плюнул на плагины и подумал: перенесу по старинке руками.

Переношу WordPress вручную

Как я уже писал в других статьях, современный сайт состоит обычно из двух «частей»: программные файлы и база данных со статьями, настройками и прочей информацией.

Поэтому в процессе переноса WordPress на другой домен и хостинг в ручном режиме обычно состоит из этих же двух этапов:

  1. Переносим файлы
  2. Переносим базу данных

Вручную это делается так.

Перенос файлов

Понятно, что перенести файлы можно несколькими способами. Раньше я это делал через 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://test2.moytop.com/database в любом браузере.

Скачать программу можно в интернете – она бесплатна, поищите в сети или можете скачать с моего сервера прямо сейчас через плагин социальных сетей.

Скачать бесплатно

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

Если после клика на социальный замок не показывается содержимое (такое бывает иногда в зависимости от браузера), то есть такие варианты:

  • Попробуйте другую соцсеть или зайти из другого браузера
  • Оставьте страницу подождать какое-то время (в новой полной версии соцзамка есть таймер обратного отсчета, он в углу показывает оставшееся время до самооткрытия).
  • Заходите в спецархив - я тут выкладываю ссылки на все файлы (https://moytop.com/about-archive-moytop)

Итак, установили и открыли скрипт? После запуска вы увидите примерно такой экран:

Перенос базы в wordpress

Программа работает именно с WordPress, поэтому логин и пароль к базе возьмет из конфигурации сама, всё что вам нужно – это вписать в первое поле имя старого домена (откуда переносится сайт), во второе поле – имя нового домена (куда переносим сайт) и нажать Live Run.

Процесс пошёл! Он нагляден, тут же показывается где и какие таблицы в базе содержали значение старого домена и все ли успешно поменялось.

Домены рекомендую вводить без префикса, то есть лучше не использовать http://test2.moytop.com, пишите просто: test2.moytop.com

Ну и в конце после замены информации о домене – можете удалить скрипт с сайта, так даже рекомендуют его авторы, чтобы он не был потенциальной дырой в безопасности сайта (читайте как повысить безопасность своего сайта на WordPress за пару кликов).

Все готово! Теперь перезагружайте страницу CTRL+F5 и если вы все сделали правильно и внимательно, то сайт перенесется на новый домен и хостинг без проблем.

И напоследок еще один суперпростой способ!

Мне его подсказал в комментариях Василий, за что ему отдельное спасибо :smile:

Для его реализации понадобится доступ в админку и плагин Velvet Blues Update URLs.

Этот плагин удобнее всего поставить еще до переноса Вордпресс-системы (как установить плагины для WordPress) и после переноса зайти в админку и выбрать в настройках нужные параметры.

Попасть в настройки:

перенос wordpress сайта на другой хостинг через плагин velvet

Нужные параметры:

перенос вордпресс на другой хостинг через плагин velvet 2

То есть в первом поле - старый адрес (лучше без http, просто домен).
Во втором - новый (аналогично).

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

Вот и все, дальше жмите - на кнопку UPDATES URLs и старые ссылки в базе заменятся на новые.

Этот способ переноса работает тоже хорошо, я проверил на нескольких сайтах - все четко.

И еще —

Несколько дополнительных советов по корректному переносу на другой хостинг:

  1. Проверьте, чтобы версия PHP была одинакова на старом и новом хостинге версия-php-при-переезд-на-хостинг-wordpress
  2. Проверьте, чтобы базы данных использовали полностью идентичную версию кодировки
  3. Воспользуйтесь услугой бесплатного переноса на новый хостинг от самого хостера! Вот тут я привожу хостеров, которых я уже проверил, и которые делаю бесплатный переезд сайтов к себе на хостинг.

Кстати, я не очень люблю переносить сайты вручную, поэтому сейчас приступаю к масштабному тестированию разных плагинов под WordPress именно для миграции на другой хостинг или домен. Пока все что я пробовал – не устраивали меня на 100%, в каждом был какой-то косяк.

Так что подписывайтесь на обновления, когда найду реально рабочий классный вариант - выложу на блоге.

Автор блога
“Измени свои привычки, и изменится твоя жизнь..”
Специалист по созданию и продвижению сайтов (SEO и реклама), фрилансер с многолетним опытом.
Статистика блога
  • Всего материалов на сайте: 184
  • Активных комментариев: 2 603
  • Работает онлайн: 5.3 лет
  • Читателей за это время: 1 444 553

Было интересно - жми на звезды:



Комментарии на блоге
Комментариев | (31)
  • Нина
    Нина

    У меня какая-то странная проблема: по имени домена сайт открывается, а в админку попасть не могу: редиректит на старый домен. И все ссылки ведут также на старый домен, хотя в базе данных замену старого домена на новый сделала. Где может быть косяк?

    Комментировать
    • Сергей Арсентьев

      в wp-config посмотрите.
      должны быть такие строчки:

      define('WP_SITEURL','http://ваш сайт');
      define('WP_HOME','http://ваш сайт');

      я наблюдал на многих темах, что их вообще банально нет.
      ну и CTRL + F5 обновите страницу админки.
      можно из другого браузера попробовать открыть.

      Комментировать
  • Нина
    Нина

    Спасибо, я справилась. Просто сделала ошибку: скачала всю базу localhost, а не конкретную базу. Все остальное было правильно. Когда это поняла и скачала то, что надо, все заработало. Спасибо за ответ. Это все я, конечно же, проверяла и кэш браузера чистила, и в другом браузере пробовала. Просто встала в тупик: вроде, все правильно сделала, а не работает :)

    Комментировать
  • Ольга

    У меня только один раз возникла потребность перенести сайт на другой хостинг. Только я сама не решилась, обратилась к фрилансерам. )

    Комментировать
  • Василий
    Василий

    Сергей, где такой красивый шаблон можно взять как у Вас?
    Да, статья понравилась, скоро буду по ней переносить сайт с localhost

    Комментировать
    • Сергей Арсентьев

      Вы имеете ввиду блог? Нарисовал в Фотошопе https://moytop.com/sozdanie-sayta/7-5/fotoshop-skachat-besplatno-na-russkom :smile:

      Комментировать
      • Василий
        Василий

        Красиво! :yes:

        Комментировать
  • Василий
    Василий

    Сергей привет тебе!
    Не все переносит, смотри у меня на Денвере лежит сайт в папке http://localhost/3/base1/r1/wordpress/ переношу на домен pupkin.info... Результат много чего не работает, меню, слайдер. Пробовал много раз, результат тот же.

    В программе переноса указывал Старый домен localhost/3/base1/r1/wordpress/ Новый домен pupkin.info ну не получается. Сайт да, отображается, но много чего не работает. Почему?

    Комментировать
    • Сергей Арсентьев

      Видимо не до конца заменили старый путь на новый.
      Проверьте в исходном коде - везде ли стоит новый домен, может из-за длинного локального пути localhost/3/base1/r1/wordpress/ упустили какой-нибудь символ.

      Если везде стоит в исходном коде и в базе задействован новый домен, а некоторые элементы не работают, то имеет смысл смотреть в сторону совместимости php сайта и конкретного хостинга. Я сталкивался с ситуациями, когда на одном хостинге все работало отлично, а на другом вообще не работало. Где-то могут быть разные настройки для скриптов, для версии php и т.п. Тут уже универсального решения нет.

      Обычно я использую известные проверенные хостинги, с ними вопросов нет (какой хостинг рекомендую - https://moytop.com/sozdanie-sayta/7-1/chto-takoe-xosting)

      Как вариант, обратиться на биржу за помощью программисту, такая работа стоит не более 300р. (как правильно нанимать фрилансеров - https://moytop.com/optimizaciya-raboty/otnoshenie/kak-pravilno-najti-i-nanyat-frilansera)

      Комментировать
      • Василий
        Василий

        Да я сам программист Сергей. В коде PHP ИЛИ Базы данных ?

        Комментировать
        • Сергей Арсентьев

          а, ну тогда конечно решите вопрос, если даже я не будучи программистом справился ))

          в базе проверьте - чтобы нигде не забыли поменять, мало ли где-то что-то забыли типа префикса или слешей.

          а в коде смотрите только совместимость с текущим хостингом. Самый простой способ - попробуйте залить сайт на другой хостинг (тот же бегет дает 30 дней бесплатно на тест и т.п.). Если все работает, то поменяйте хостинг да и все. Если не работает, а на локале все ок, то скорее всего в базе пути не везде прописаны.

          Комментировать
  • Василий
    Василий

    Сергей извини, еще раз напишу. Представляешь, в программе правки БД ввел старый домен http://localhost/3/base1/r1/wordpress/ с http и / слешем на конце и в новой http://pupkin.info/ и заработало. Само собой. Странно как то :smile: :smile: :smile:

    Комментировать
    • Сергей Арсентьев

      ну вот где-то в этих слешах и http собака была и зарыта )

      Комментировать
  • Василий
    Василий

    Сергей Здравствуй.
    Обрати внимание пользователей, что га локалхосте когда они создают что то на wordpress
    Создается файл

    .htaccess

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /3/base1/r1/wordpress/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /3/base1/r1/wordpress/index.php [L]

    # END WordPress

    и как видно из него если мы перенесем его на хостинг, а все так и делают, сайт работать не будет. По этому правим файл таким образом

    .htaccess

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    Намучился я с переносами, из-за этого файла.
    Господа обратите внимание и не забудьте файл отредактировать. А то после переноса, работать ничего не будет.
    :smile:

    Комментировать
    • Сергей Арсентьев

      Ну вот ты и обратил, уверен многим пригодится ))

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

      Комментировать
      • Василий
        Василий

        У хостера .. меня несколько раз прокатить пытались, но договор и 50% процентная оплата, все же не так обидно. То им сайт прям сейчас подай, то пока не нужен и сайт даже еще не видели, а уже передумали. :cool:

        Комментировать
  • Василий
    Василий

    Вот еще плагин для wordpress - Velvet Blues Update URLs - обновляет ссылки в базе данных, после переноса БД на хостинг. Ставим плагин и все. Очень интересный плагин.

    Комментировать
    • Сергей Арсентьев

      Да, интересно, надо будет потестить!

      Комментировать
  • Галина

    Я как новичек, переношу просто: экспорт-импорт или плагином All-in-One WP Migration.

    Комментировать
  • Илья

    Спасибо, Сергей. Я раньше тоже после переноса БД только в wp-options менял старый сайт на новый, теперь с помощью программы search/replace наконец-то нормально перенес сайт. Благодарю!)

    Комментировать
  • Василий
    Василий

    Сергей Здравствуйте! Спасибо что на меня сослались)))) приятно! :giggle:

    Комментировать
  • Дарья
    Дарья

    У меня не работает скрипт

    Комментировать
  • Василий
    Василий

    Скрипты рабочие и не раз проверены, читайте внимательно все написанное.
    Сергею Привет!!!

    Комментировать
  • Наталья
    Наталья

    Добрый день!
    Перенесла сайт с одного домена на другой. С помощью скрипта изменила все урлы в базе данных.
    Сайт открывается, все хорошо, но один плагин со слайдером просто отказывается отображаться.
    Подскажите, пожалуйста, в чем может быть проблема?
    Перенесла с https://bestvitrina.ru/ на https://hkitchen.ru/ в рамках одного хостинга

    Комментировать
    • Сергей Арсентьев

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

      Комментировать
  • Вячеслав
    Вячеслав

    Плагин, приведенный автором не сработал, а запуск скрипта все сделал ОК! Спасибо.

    Комментировать
  • Андрей

    После переноса сайта на другой домен пропали хедер и футер. Причём если меняю тему, то они появляются а именно в той теме, в которой сделан сайт(porto) они снова е отображаются. Вроде бы понятно, что что то может быть в настройках шаблона, но где и что так и не нашёл.
    Сайт http://cargo12.skvarw9u.bget.ru

    Комментировать
    • Сергей Арсентьев

      А базу полностью скопировали?
      Как в статье описано - с изменением путей к домену?
      Не через плагин, а с помощью скрипта.

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

      Если ничего не помогает, то на кворке за 500р перенесут https://kwork.ru/search?query=%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%20%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3&c=0?ref=2903

      Комментировать
      • Андрей
        Андрей

        БД скопировал полностью вручную. Через экспорт импорт. Ссылки менял в админке через плагин Search & Replace и плагин Velvet Blues Update URLs

        Комментировать
        • Сергей Арсентьев

          я бы попробовал еще раз выгрузить корректную БД со старого сайта.
          затем импортировал бы ее.
          затем только через скрипт S&R прогнал бы без других плагинов.
          и посмотрел что получилось.
          если стоит плагин кеширования, то сбросьте кеш.

          и также перед этим проверьте, чтобы кодировки баз данных совпадали, иногда бывает, что на другом хостинге используется немного другая кодировка. Должно быть всё аналогично.
          Если не так, то напишите хостеру, чтобы установил базу в нужную кодировку.

          Плюс еще один вариант, которым не грех воспользоваться.
          Очень часто хостеры заявляют о бесплатном переносе сайта к себе на хостинг.
          В этом случае вы просто даете доступ к старому сайту, они в течение пары часов всё переносят бесплатно.
          Там обычно работают люди, которые с утра до вечера занимаются всякими переносами, для них это несложная задача будет.

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

          Комментировать
Добавить свой комментарий
Подробнее в Установки и настройки
Ошибка установки соединения с базой данных WordPress

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

Вызов шорткода из PHP в WordPress

Многие задаются вопросом: как вставить стандартный шорткод какого-нибудь плагина прямо в PHP-код сайта на Вордпресс. Вот короткая и рабочая инструкция.

Закрыть