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

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

Чек-лист переноса хостинга начинается с того, что существует сейчас, а не с копирования:

  • Где находится каждый элемент. Регистратор домена, DNS-провайдер, веб-хостинг и почта — это часто четыре разные учётные записи. Запишите, какая компания отвечает за каждую из них и у кого есть доступ.
  • Версии ПО: версия PHP и расширения, сервер баз данных и его версия, веб-сервер и любой слой кэширования.
  • Базы данных и их размеры, включая те, которые используют старые установки, о которых никто не помнит.
  • Задания cron и другие задачи по расписанию: резервные копии, фиды, выгрузки заказов, прогрев кэша.
  • Почта. Находятся ли почтовые ящики в той же учётной записи хостинга? Отправляет ли сайт письма через локальный сервер или через внешний сервис?
  • Списки разрешённых IP-адресов. Платёжные шлюзы, интеграции с доставкой и ERP или партнёрские API, принимающие трафик только с текущего сервера. У нового сервера будет другой исходящий адрес.

Копирование файлов и баз данных

Файлы лучше всего переносить с помощью rsync по SSH: команду можно запускать повторно, и скопируется только изменившееся. Для MySQL и MariaDB mysqldump с параметром --single-transaction делает согласованный снимок таблиц InnoDB, не блокируя сайт во время работы. На новом сервере импортируйте дамп и сравните число строк в ключевых таблицах: заказы, клиенты, записи.

Следите за мелочами, которые наносят незаметный ущерб:

  • Кодировки. Старая база в latin1, небрежно импортированная как utf8mb4, даёт искажённые буквы с диакритикой и символы. Проверьте кодировку и сортировку до и после.
  • Скачки версий. Переход с MySQL на MariaDB или на более новую основную версию может изменить поведение некоторых запросов и настроек. Отрепетируйте на копии.
  • Жёстко прописанные пути и URL в файлах конфигурации. Если вместе с этим меняется и домен, WordPress нужна замена по поиску, понимающая сериализованные данные, например встроенная в WP-CLI.

Проверка на новом сервере через файл hosts

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

Заранее продумайте SSL-сертификат после переноса. Сертификаты от Let's Encrypt и аналогичных центров обычно проверяются по HTTP, а это работает только после того, как DNS указывает на новый сервер. Можно скопировать существующий сертификат для переключения, пройти проверку через запись DNS или выпустить новый сертификат сразу после переключения. Нужно избежать лишь одного: чтобы посетители попали на новый сервер до того, как на нём появится действующий сертификат. Такой подход «сначала проверка» лежит в основе нашей услуги миграции хостинга и баз данных.

Переключение DNS: TTL, серверы имён и обновление

Резолверы по всему миру кэшируют ответы DNS на срок, который позволяет TTL (время жизни) каждой записи. За сутки или больше снизьте TTL DNS у тех записей, которые будете менять, например у A-записей домена и www, до нескольких минут. Подождите не меньше, чем длился прежний TTL, чтобы все закэшировали короткое значение. В день переключения измените записи, и большинство посетителей перейдёт на новый сервер в течение нескольких минут.

То, что называют обновлением DNS по всему миру, на самом деле — истечение срока старых кэшированных ответов. Поэтому смена записей у того же DNS-провайдера происходит быстро, а решение сменить серверы имён одновременно замедляет процесс: делегирование домена кэшируется серверами домена верхнего уровня, часто до двух суток. Если DNS-провайдера тоже нужно менять, сначала скопируйте все записи (MX, TXT-записи для SPF, DKIM и DMARC, записи подтверждения и поддомены) и меняйте серверы имён в отдельный день, не совмещая с переключением сервера.

Как перенести сайт без потери почты

Если почта размещена в другом месте, например в Microsoft 365 или Google Workspace, не трогайте записи MX, и электронная почта переезда не заметит. Если почтовые ящики находятся в старой учётной записи хостинга, им нужна собственная миграция, а запись MX следует менять только после их копирования. Об этом рассказывает наша миграция электронной почты в Microsoft 365 или Google Workspace, а переезд хостинга — часто удачный момент, чтобы в любом случае отделить почту от веб-сервера.

После переключения: как перенести сайт на новый хостинг до конца

  1. Для магазинов и сайтов с членством ненадолго приостановите приём новых заказов, выполните последнюю синхронизацию базы данных, а затем смените DNS, чтобы после последнего копирования на старый сервер ничего не записывалось.
  2. Создайте задания cron на новом сервере заново и отключите их на старом, иначе клиенты могут получать каждое запланированное письмо дважды.
  3. Настройте резервное копирование и мониторинг на новом сервере; вместе с файлами они не переезжают.
  4. Следите за журналом доступа старого сервера. Когда остались только боты, переключение завершено.
  5. Сохраняйте старый хостинг ещё неделю-две перед отменой на случай, если найдётся забытый файл или почтовый ящик.

Часто задаваемые вопросы: как перенести сайт на новый хостинг

Сколько времени занимает обновление DNS?

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

Можно ли перенести сайт без простоя?

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

Нужно ли переносить DNS-хостинг одновременно?

Лучше не нужно. Меняйте что-то одно за раз: сначала сервер, а затем, когда всё стабильно, DNS-провайдера или регистратора.

Исправит ли смена хостинга медленный сайт?

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

Переносите сайт на WordPress, WooCommerce, Magento или Joomla либо целую учётную запись cPanel на облачный сервер? Наша услуга миграции сайтов и баз данных включает копирование, проверки баз данных, финальную синхронизацию и переключение DNS. Расскажите нам, где сайт размещён сейчас, куда он переезжает и где управляются DNS и почта, и мы спланируем перенос вместе с вами.