B2BPRO.KZ | Рекламное агентство в Алматы

Как перенести сайт на WordPress на другой хостинг без простоя

Разработчик с планшетом рядом с двумя серверами, между которыми переносится папка с файлами сайта WordPress

Перенести сайт на WordPress на другой хостинг без простоя можно, если старый сервер работает до самого конца переезда. Копию сайта разворачивают на новом хостинге, проверяют её через файл hosts, за несколько дней снижают TTL у DNS-записи, затем переключают домен и держат оба сервера включёнными, пока трафик не уйдёт на новый.

На практике простой случается по другой причине: владелец сайта сначала отключает старый хостинг, а потом начинает переезд. Или переключает DNS, когда копия ещё не проверена, и полдня посетители видят ошибку подключения к базе данных. Ниже описан порядок, при котором сайт открывается всё время, а заявки с форм не теряются.

Почему при смене хостинга сайт вообще «падает»

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

Механику проще объяснить через два термина. DNS-запись типа A — это строка в настройках домена, которая говорит, на какой IP-адрес сервера идти браузеру. TTL — это время в секундах, на которое провайдеры и браузеры кэшируют эту запись и не спрашивают её заново. Если TTL стоит 86400, часть посетителей ещё сутки после смены IP будет попадать на старый сервер. Это нормально и не опасно, пока старый сервер работает.

Типичные причины простоя, которые мы видим на проектах:

  • старый хостинг продлён «впритык» и отключился в день переезда;
  • на новом сервере другая версия PHP, и тема или плагин выдают фатальную ошибку;
  • в wp-config.php остались реквизиты старой базы данных;
  • SSL-сертификат на новом сервере не выпущен, и браузер показывает предупреждение о небезопасном соединении;
  • файл .htaccess не перенёсся, и все страницы, кроме главной, отдают ошибку 404.

Что подготовить до начала переноса сайта WordPress

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

Соберите в одном месте:

  • доступ к панели старого хостинга (FTP или SSH, phpMyAdmin);
  • доступ к панели нового хостинга;
  • доступ к управлению DNS домена. Это может быть регистратор (например, PS.kz или hoster.kz для доменов .kz) или отдельный DNS-сервис, если домен делегирован туда;
  • учётную запись администратора WordPress;
  • список внешних интеграций: почта на домене, формы, которые отправляют заявки в CRM, платёжный модуль, вебхуки.

Отдельно проверьте, на кого оформлены домен и хостинг. Если доступ к DNS есть только у прежнего подрядчика, переезд упирается в него. Это частая ситуация у казахстанских компаний, которым сайт когда-то сделала студия «под ключ» и оформила всё на себя.

Сравните окружение старого и нового сервера. Версию PHP и MySQL на старом хостинге видно в разделе «Инструменты» → «Здоровье сайта» → «Информация» в админке WordPress. На новом выставьте такую же или более свежую версию PHP, которую поддерживают ваши тема и плагины. Резкий скачок через несколько версий PHP лучше делать отдельной задачей, а не в день переезда.

Как перенести сайт на WordPress на другой хостинг: пошаговый порядок

Перенос сайта WordPress состоит из копирования файлов, копирования базы данных, правки wp-config.php, проверки копии и переключения DNS. Официальная инструкция WordPress по переносу сайта на новый сервер описывает ту же последовательность: скачать файлы, экспортировать базу, перенести их и при смене реквизитов базы поправить wp-config.php.

  1. Снизьте TTL заранее. За 2-7 дней до переезда поставьте у A-записи домена TTL 300-600 секунд. Google в рекомендациях по смене хостинга без изменения адресов советует снизить TTL до консервативного значения как минимум за неделю. Новое значение начнёт действовать только после того, как истечёт старый TTL, поэтому делать это в день переезда бессмысленно.
  2. Сделайте полную копию. Скачайте все файлы сайта (папки wp-content, wp-admin, wp-includes и файлы в корне, включая .htaccess и wp-config.php) и выгрузите базу данных в SQL-файл. Удобнее всего через SSH: архив tar и mysqldump. Если SSH нет, подойдут phpMyAdmin и FTP или плагин для миграции.
  3. Создайте базу данных на новом хостинге. Новая база, новый пользователь, права на базу. Кодировку берите ту же, что на старом сервере, обычно utf8mb4.
  4. Загрузите файлы и импортируйте базу. Файлы распакуйте в корневую папку сайта на новом сервере, SQL-дамп импортируйте в новую базу.
  5. Поправьте wp-config.php. Замените DB_NAME, DB_USER, DB_PASSWORD и DB_HOST на реквизиты новой базы. Описание всех параметров есть в документации по файлу wp-config.php.
  6. Выпустите SSL-сертификат. Многие панели не выпустят Let’s Encrypt, пока домен не смотрит на сервер. Тогда либо временно перенесите действующий сертификат со старого хостинга, либо выпустите новый сразу после переключения DNS и проверьте, что он встал.
  7. Проверьте копию через hosts. Подробно этот шаг описан ниже.
  8. Сделайте финальную синхронизацию. Если за время подготовки на сайте появились заказы, заявки или статьи, повторите выгрузку базы непосредственно перед переключением.
  9. Переключите A-запись на новый IP.
  10. Держите старый сервер включённым. Минимум несколько дней, пока в логах старого хостинга не перестанут появляться запросы.

Нужно ли менять адреса в базе данных при переезде?

Если домен остаётся прежним, адреса в базе менять не нужно. Параметры «Адрес WordPress (URL)» и «Адрес сайта (URL)» хранятся в таблице wp_options в полях siteurl и home, и при смене только хостинга они остаются теми же. После переезда достаточно открыть «Настройки» → «Общие» и убедиться, что там правильный адрес с https.

Замена адресов понадобится, если одновременно с хостингом меняется домен или протокол (например, сайт переходит с http на https). Делать её простым поиском и заменой в SQL-файле нельзя. Многие темы и плагины хранят настройки в сериализованном виде, где рядом со строкой записана её длина. Если заменить адрес на более длинный или короткий в текстовом редакторе, длина перестанет совпадать, и настройки виджетов или конструктора страниц просто пропадут.

Для замены есть команда WP-CLI. В описании команды wp search-replace сказано, что она корректно обрабатывает сериализованные данные PHP. Перед реальной заменой её запускают с ключом --dry-run, чтобы увидеть, сколько строк изменится, а колонку guid исключают ключом --skip-columns=guid:

wp search-replace 'http://example.kz' 'https://example.kz' --skip-columns=guid --dry-run

Поле GUID в документации WordPress прямо запрещено менять: по нему RSS-читалки отличают уже показанные записи от новых. Если его переписать, подписчики ленты увидят старые статьи как свежие.

Как проверить сайт на новом хостинге до смены DNS

Проверить сайт до смены DNS можно через файл hosts на своём компьютере: в нём домен вручную привязывают к IP нового сервера, и только ваш браузер открывает новую копию, а все остальные посетители продолжают работать со старой.

Файл hosts лежит в Windows по пути C:\Windows\System32\drivers\etc\hosts, в macOS и Linux это /etc/hosts. Редактировать его нужно с правами администратора. Добавьте строку вида:

203.0.113.10 example.kz www.example.kz

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

Что проверяем на копии:

  • главную и 5-10 ключевых страниц: услуги, каталог, контакты, статьи блога;
  • вход в админку и сохранение любой записи;
  • загрузку картинки в медиатеку, это заодно проверяет права на папку uploads;
  • отправку каждой формы на сайте и доставку заявки туда, куда она должна приходить: на почту, в Битрикс24, в мессенджер;
  • корзину и оформление заказа, если это интернет-магазин;
  • журнал ошибок PHP на новом хостинге: он должен быть пустым после прохода по страницам.

После проверки строку из hosts удалите. Если её забыть, вы ещё долго будете видеть сайт с нового сервера независимо от DNS и не заметите, если у посетителей что-то пошло иначе.

Чем отличаются способы переноса: вручную, плагином или силами хостинга

Перенести сайт WordPress можно вручную через SSH или FTP, плагином миграции или бесплатной услугой переноса от нового хостинга. Выбор зависит от размера сайта, доступов и того, кто будет отвечать за результат.

Способ Когда подходит Ограничения
Вручную: SSH, архив файлов и дамп базы Сайты любого размера, особенно с медиатекой на несколько гигабайт Нужен SSH на обоих серверах и навык работы в консоли
Вручную: FTP и phpMyAdmin Небольшие сайты, если SSH нет Долгая загрузка тысяч файлов, у phpMyAdmin бывает лимит на размер импорта
Плагин миграции Типовые сайты среднего размера, перенос без консоли Бесплатные версии часто ограничивают размер архива, большие сайты упираются в лимиты времени выполнения скриптов на хостинге
Перенос силами нового хостинга Когда провайдер предлагает такую услугу и даёт доступ к результату до переключения Проверку копии и переключение DNS всё равно делаете вы; условия у провайдеров разные

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

Что делать с заказами и заявками, пока идёт переключение

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

Проблема в том, что после смены A-записи часть посетителей ещё какое-то время попадает на старый сервер. Если там работает полноценный сайт, человек может оформить заказ, который запишется в старую базу и не попадёт в новую. Варианты решения:

  • переключаться в часы минимального трафика, например ночью или в выходной;
  • на время переключения запретить публикацию в админке и попросить сотрудников не вносить правки;
  • для магазина: после переключения выгрузить из старой базы заказы, созданные позже финальной синхронизации, и внести их вручную;
  • если формы отправляют заявки в CRM напрямую, а не хранят их в базе сайта, этот риск почти исчезает: заявка уйдёт в CRM с любого из двух серверов.

По нашему опыту переездов, чаще всего теряются письма с форм, заказы реже. На новом хостинге функция отправки почты через PHP может работать иначе или быть отключена, и формы показывают «Сообщение отправлено», а письмо никуда не уходит. Поэтому отправку почты лучше сразу перевести на SMTP через почтовый ящик на домене и проверить реальной заявкой.

Что проверить после переключения DNS

После переключения DNS проверяют, что домен действительно открывает новый сервер, что SSL работает, что поисковые роботы видят сайт и что старый сервер постепенно перестаёт получать запросы. Первые сутки лучше держать сайт под наблюдением.

  1. Проверьте A-запись сервисами проверки DNS из разных стран или командой nslookup example.kz 8.8.8.8. Должен вернуться новый IP.
  2. Откройте сайт с мобильного интернета, где нет вашего кэша DNS и правок в hosts.
  3. Проверьте сертификат: в адресной строке не должно быть предупреждений, а сайт должен открываться с www и без www одинаково.
  4. Убедитесь, что на новом сервере нет запрета индексации. Google отдельно напоминает убрать блокировки в robots.txt и метатеги noindex, если они стояли на тестовой копии. В WordPress это галочка «Попросить поисковые системы не индексировать сайт» в «Настройки» → «Чтение».
  5. Проверьте в Google Search Console инструментом проверки URL, что Googlebot получает страницу без ошибок. В Яндекс Вебмастере для этого есть проверка ответа сервера.
  6. Отправьте тестовые заявки со всех форм ещё раз, уже с живого домена.
  7. Следите за логами старого сервера. Когда запросы к нему почти прекратятся, а это обычно занимает от нескольких часов до пары суток в зависимости от TTL, можно выключать старый хостинг.
  8. Верните TTL на привычное значение, например 3600 секунд.

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

Сколько времени занимает перенос сайта WordPress

Сама техническая часть переноса для типового корпоративного сайта занимает от одного до нескольких часов, но весь процесс от снижения TTL до отключения старого хостинга растягивается на неделю-полторы. Большую часть этого времени занимает ожидание.

Этап Ориентировочный срок
Снижение TTL и ожидание, пока истечёт старое значение 2-7 дней
Копирование файлов и базы, настройка нового сервера 1-4 часа для типового сайта
Проверка копии через hosts 1-2 часа
Финальная синхронизация и переключение DNS 15-60 минут
Параллельная работа двух серверов 2-7 дней

Сроки в таблице ориентировочные, по нашему опыту. Сайт с медиатекой на десятки гигабайт, с нестандартной интеграцией или с устаревшей версией PHP потребует больше времени. Поэтому продлевайте старый хостинг минимум на месяц после планируемой даты переезда. Лишний месяц оплаты стоит дешевле дня, когда сайт не открывается.

Пример: перенос сайта компании с формами в Битрикс24

Возьмём типовой случай для иллюстрации. Компания из Алматы, сайт на WordPress с каталогом услуг, около 300 страниц и медиатекой на 6 ГБ. Формы отправляют заявки в Битрикс24 через вебхук. Старый хостинг тормозит, договор заканчивается через три недели.

Порядок работы выглядит так. В понедельник снижаем TTL у A-записи до 300 секунд и продлеваем старый хостинг ещё на месяц. В среду поднимаем на новом сервере ту же версию PHP, разворачиваем копию сайта через SSH, правим wp-config.php. Через hosts проходим по страницам и обнаруживаем, что модуль кэширования на новом сервере конфликтует с плагином форм: заявки уходят, но поле «Телефон» в Битрикс24 приходит пустым. Исправляем настройки исключений кэша, повторяем тестовые заявки, лид создаётся с телефоном.

В пятницу вечером делаем финальную выгрузку базы, загружаем её на новый сервер и переключаем A-запись. Через 20 минут проверка DNS из разных точек показывает новый IP. Сертификат выпускаем сразу после переключения. В субботу и воскресенье отправляем контрольные заявки утром и вечером. В логах старого сервера к вторнику остаются только редкие запросы от ботов, и его можно отключать. Для посетителей сайт не был недоступен ни минуты.

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

Если у вас нет времени разбираться с SSH, DNS и версиями PHP, или на сайте завязаны оплаты и интеграции, которые страшно трогать, этот переезд можно поручить нам. B2BPRO.KZ занимается разработкой и сопровождением сайтов на WordPress, включая перенос на новый хостинг с проверкой форм, почты и интеграций с CRM.

Частые вопросы

Можно ли перенести сайт WordPress на другой хостинг без потери позиций в поиске?

Да, если адреса страниц не меняются и сайт всё время отвечает без ошибок. Поисковики оценивают содержимое и доступность страниц, а не конкретный сервер. Google допускает временное снижение частоты сканирования после переезда с восстановлением за несколько дней. Главное, не оставить на новом сервере запрет индексации в robots.txt или в настройках чтения WordPress.

Сколько ждать, пока DNS обновится после смены хостинга?

Обычно от нескольких минут до суток, и срок зависит от TTL, который стоял у A-записи до переключения. Если за несколько дней до переезда снизить TTL до 300-600 секунд, большинство посетителей увидят новый сервер в течение часа. Всё это время старый хостинг должен оставаться включённым, тогда задержка обновления DNS незаметна для пользователей.

Нужно ли менять адрес сайта в базе данных при смене хостинга?

Нет, если домен остаётся прежним: поля siteurl и home в таблице wp_options не меняются. Замена адресов нужна только при смене домена или перехода с http на https. В этом случае используют команду wp search-replace из WP-CLI, которая корректно обрабатывает сериализованные данные, и не трогают колонку guid.

Можно ли перенести сайт плагином, без доступа к серверу?

Можно, для типового сайта небольшого и среднего размера плагин миграции справится. Ограничения появляются на больших сайтах: бесплатные версии плагинов часто ограничивают размер архива, а хостинг может прерывать долгие скрипты. Для сайта с медиатекой на несколько гигабайт надёжнее ручной перенос через SSH с архивом файлов и дампом базы.

Когда можно отключать старый хостинг?

Старый хостинг отключают, когда в его логах почти не осталось запросов от посетителей, обычно через 2-7 дней после смены DNS. Перед отключением сохраните себе полную копию файлов и базы со старого сервера. Продлевать старый тариф лучше с запасом на месяц, чтобы окончание договора не совпало с днём переезда.

Прокрутить вверх