Порядок переноса
Идея простая: сайт одновременно живёт на старом и новом месте, пока вы не убедитесь, что новое работает. Посетители всё это время открывают старый.
- Заранее снизьте TTL записей DNS.
- Сделайте копию файлов и базы данных.
- Разверните сайт на новом хостинге.
- Проверьте его по временному адресу или через файл
hosts. - Переключите DNS.
- Подождите и не удаляйте старый хостинг.
Шаг 1. Снизьте TTL заранее
TTL (time to live) задаёт, на какое время серверы по всему интернету запоминают адрес вашего сайта. Если TTL равен суткам, после смены адреса часть посетителей до суток попадает на старое место.
Поставьте TTL в записях A (и AAAA, если есть) на 300 секунд, то есть 5 минут. Сделайте это минимум за сутки до переноса, ведь пока не пройдёт старый TTL, новое значение не применится. Настройка находится у того, кто хранит DNS-зону вашего домена: у регистратора или хостера.
Шаг 2. Копия файлов и базы
Скачайте файлы сайта: через FTP, панель хостинга или, если есть доступ по SSH, командой rsync:
rsync -az -e ssh user@old-host:/path/to/site/ ./site-backup/
Команда копирует каталог сайта со старого сервера в локальную папку, передавая только изменившееся и сжимая данные.
Базу экспортируйте через phpMyAdmin (кнопка «Экспорт») или командой на сервере:
mysqldump --single-transaction -u user -p dbname > dbname.sql
Команда выгружает всю базу в файл dbname.sql; пароль будет запрошен.
Шаг 3. Разверните сайт на новом месте
Загрузите файлы в папку сайта, создайте новую базу и пользователя, загрузите дамп:
mysql -u user -p dbname < dbname.sql
Команда читает SQL-файл и создаёт в пустой базе таблицы с данными.
Затем поправьте настройки подключения к базе: имя базы, пользователь, пароль и хост на новом месте обычно отличаются. В WordPress это файл wp-config.php, в других системах свой конфиг. Версия PHP на новом хостинге должна подходить вашему сайту, проверьте в панели.
Шаг 4. Проверка до переключения
Хостеры обычно дают временный адрес или поддомен для проверки. Если такого нет, подмените адрес только у себя через файл hosts.
- Linux и macOS: файл
/etc/hosts. - Windows:
C:\Windows\System32\drivers\etc\hosts(открывать от администратора).
Добавьте строку с IP нового сервера и вашим доменом:
203.0.113.10 example.ru www.example.ru
Теперь на вашем компьютере домен открывается с нового места, у остальных со старого. Пройдите по главной, формам, оплате, входу в админку. После проверки удалите строку из файла.
Если на сайте есть формы заказа или регистрации, на время проверки новые данные попадут только в новую базу. Перед финальным переключением сделайте свежий дамп старой базы и загрузите ещё раз.
Шаг 5. Переключите DNS
Смените IP в записи A на адрес нового сервера. Если вы переносите ещё и DNS-зону, меняются NS-серверы у регистратора, это дольше. Первые изменения видны через несколько минут при низком TTL, полное обновление может занять до суток и дольше.
Шаг 6. Подождите, старый хостинг не удаляйте
Часть посетителей и роботов ещё какое-то время приходит на старый адрес. Оставьте старый хостинг оплаченным минимум на несколько суток, лучше на неделю. Если что-то пойдёт не так, вернуть прежний адрес можно за минуты. Заодно перенесите свежие данные, если на старом сайте успели появиться заказы или комментарии.
Включите HTTPS на новом месте: сертификат придётся выпустить заново, как это сделать, описано в статье Бесплатный SSL на VPS.
Перенос почты
Если почта работает на домене через хостинг, учтите отдельно:
- создайте ящики на новом месте;
- перенесите письма: в почтовом клиенте по IMAP или средствами хостера;
- проверьте записи MX, SPF и DKIM: они указывают, куда доставлять письма и кто имеет право их отправлять;
- не меняйте MX, пока не создали ящики, иначе письма потеряются.
Если вы оставляете почту на старом месте или у почтового сервиса, MX не трогайте, меняйте только A.
Частые ошибки
- Не снизили TTL и получили сутки «разных сайтов» у разных посетителей.
- Забыли про базу: перенесли файлы, а сайт показывает ошибку подключения.
- Не поменяли параметры подключения к базе в конфиге.
- Отключили старый хостинг в день переключения.
- Забыли перенести задания cron, скрытые файлы (например,
.htaccess) и права на папки. - Не проверили почту и письма с форм.
Помощь хостера
Многие хостеры помогают с переносом: иногда бесплатно, иногда за плату. Условия мы не проверяли, поэтому перед переездом спросите у поддержки нового хостинга, есть ли такая услуга и что для неё нужно.
Что делать дальше
Подберите новое место в таблице хостинга для сайтов или посмотрите, как выбрать хостинг для сайта. Если ваш сайт перерос обычный хостинг, сравните его с VPS в подборе: VPS в нашей базе от 140 ₽ в месяц.
