инфра/гид

Перенос сайта на другой хостинг или VPS без простоя: пошагово

Обновлено08.11.2026 Цены проверены08.11.2026Источникdocs.selectel.ru, selectel.ruЧтение13 мин .md
Коротко

Сайт переезжает без простоя, если менять DNS последним: за сутки снизьте TTL записей, скопируйте файлы и базу на новый сервер, проверьте его через файл hosts, сделайте финальную синхронизацию и только потом поменяйте A-запись. Старый хостинг держите ещё неделю для отката. Облачный сервер под небольшой сайт стоит от 721,26 ₽/мес с диском 30 ГБ, публичный IP — ещё 189,57 ₽/мес.

В этой статье
Наш выбор

Для небольшого сайта на WordPress, MODX или Joomla, который уходит с виртуального хостинга, — облачный сервер Shared Line с долей ядра, 1 ГБ памяти и диском 30 ГБ плюс публичный IPv4. Веб-окружение ставите сами, зато версии PHP, cron и настройки полностью в ваших руках.

Конфигурация
Shared Line · 1 vCPU (доля 10 %) · 1 ГБ · 30 ГБ SSD · IPv4
Цена от
721,26 ₽/мес + IP 189,57 ₽/мес
Что входит
3 ТБ исходящего трафика в месяц на аккаунт, DNS-хостинг бесплатно
Не входит
установка CMS и веб-окружения, бэкапы, администрирование
Когда не подходит
некому обновлять сервер; Битрикс или магазин с постоянной нагрузкой
Облако Selectel

Реклама. АО «Селектел», ИНН 7810962785, selectel.ru. erid: 2VtzqwtXUsg

Что нужно понять за минуту

Простой при переезде возникает не из-за копирования файлов, а из-за порядка действий. Типичная ошибка: сначала меняют DNS, а потом в спешке поднимают сайт на новом месте. Пока DNS-серверы по всему интернету обновляют запись, часть посетителей видит старый сайт, часть — пустой сервер или ошибку сертификата.

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

Скорость, с которой посетители «переезжают», задаёт TTL — время, на которое DNS-серверы провайдеров запоминают ответ. Если TTL стоит сутки, после смены записи часть людей ещё сутки будет ходить на старый адрес. Поэтому TTL снижают заранее. Если термин незнаком, коротко о нём — в статье что такое DNS.

Сайт-визитка или блог переезжает так совсем без простоя. У магазина с заказами честнее говорить о минимальном простое: на время финального копирования базы, обычно 5–15 минут, сайт ставят в режим обслуживания, иначе заказы, оформленные в эти минуты, останутся только на старом сервере.

Сколько стоит

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

Что Для чего Цена
Shared Line 1 vCPU (10 %) · 0,5 ГБ · диск 5 ГБ лендинг, статичный сайт 331,64 ₽/мес
Shared Line 1 vCPU (10 %) · 1 ГБ · диск 30 ГБ сайт на WordPress, MODX или Joomla 721,26 ₽/мес
Shared Line 2 vCPU (по 20 %) · 2 ГБ · диск 40 ГБ несколько сайтов на одном сервере 1 531,31 ₽/мес
Standard 2 vCPU · 4 ГБ, диск отдельно целые ядра: магазин, постоянная нагрузка 2 539,74 ₽/мес
Публичный IPv4 на него смотрит A-запись домена 189,57 ₽/мес
Бэкап сетевого диска за 1 ГБ копии в месяц 4,50 ₽ за ГБ/мес
Исходящий трафик сверх 3 ТБ в месяц первые 3 ТБ на аккаунт бесплатно 0,90 ₽/ГБ
DNS-хостинг зоны и записи без лимита, при пополнении баланса от 200 ₽ 0 ₽

проверено 08.11.2026 · Shared Line · прайс · бэкапы · DNS

Наш расчёт для рекомендованной строки: 721,26 + 189,57 ≈ 911 ₽ в месяц за сервер с диском и адресом. Это ориентир: цена IP взята из прайса для Москвы, в других пулах она может немного отличаться. Цены Shared Line указаны вместе с диском, Standard — без диска и IP. Если сайт тяжёлый или сайтов несколько, сравните варианты в калькуляторе стоимости сервера, а как выбрать долю ядра, память и диск, мы разобрали в гайде как выбрать VPS.

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

Команды ниже — для нового сервера на Ubuntu 24.04 с Nginx, PHP-FPM и MariaDB. В примерах example.ru — ваш домен, 203.0.113.10 — IP нового сервера, old-host — старый хостинг.

1. Опишите, что сейчас работает

Перед переездом выпишите всё, от чего зависит сайт. Половина проблем после переезда — это забытые мелочи, а не сам сайт:

  • CMS и версия PHP (видна в панели хостинга или в админке CMS);
  • базы данных и их кодировка;
  • задания cron: обмен с 1С, рассылки, очистка кэша;
  • все DNS-записи домена: A, AAAA, www, поддомены, MX и TXT для почты;
  • где живёт почта на домене и как сайт отправляет письма;
  • правила в файлах .htaccess: редиректы, красивые адреса, запреты.

2. За сутки снизьте TTL

Посмотрите текущий TTL — это число во втором столбце ответа:

dig +noall +answer example.ru A
dig +noall +answer www.example.ru A

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

3. Подготовьте новый сервер

Создайте облачный сервер с публичным IP в Москве или Петербурге и поставьте веб-окружение:

apt update && apt install -y nginx mariadb-server certbot python3-certbot-nginx \
  php8.3-fpm php8.3-mysql php8.3-xml php8.3-mbstring php8.3-curl php8.3-gd php8.3-zip php8.3-intl
ufw allow OpenSSH && ufw allow 'Nginx Full' && ufw enable

В Ubuntu 24.04 штатная версия PHP — 8.3. Если старый сайт работает на PHP 7.4 и не обновлялся годами, сначала обновите CMS и плагины на старом хостинге или ставьте старую версию PHP из стороннего репозитория.

Минимальный конфиг сайта — /etc/nginx/sites-available/example.ru:

server {
    listen 80;
    server_name example.ru www.example.ru;
    root /var/www/site;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
}
ln -s /etc/nginx/sites-available/example.ru /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

4. Скопируйте файлы и базу

Если на старом хостинге есть SSH, файлы удобнее всего забрать через rsync с нового сервера. Повторный запуск докачает только изменения — это пригодится в шаге 7:

mkdir -p /var/www/site
rsync -az --delete -e ssh user@old-host:/home/user/public_html/ /var/www/site/

Если есть только FTP, подойдёт lftp:

apt install -y lftp
lftp -u ftpuser old-host -e "mirror --parallel=4 public_html /var/www/site; quit"

Базу выгрузите на старом хостинге (по SSH или через phpMyAdmin) и перенесите файл дампа на новый сервер:

mysqldump --single-transaction --no-tablespaces --routines --triggers -u dbuser -p dbname | gzip > db.sql.gz

Флаг --no-tablespaces нужен на виртуальных хостингах: без него mysqldump из MySQL 8 у пользователя без права PROCESS останавливается с ошибкой доступа.

На новом сервере создайте базу с той же кодировкой, что была (посмотреть её можно командой SHOW CREATE DATABASE dbname;), и загрузите дамп:

mysql -e "CREATE DATABASE site CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -e "CREATE USER 'site'@'localhost' IDENTIFIED BY 'придумайте-пароль';"
mysql -e "GRANT ALL PRIVILEGES ON site.* TO 'site'@'localhost';"
gunzip < db.sql.gz | mysql site
chown -R www-data:www-data /var/www/site

Впишите новые имя базы, пользователя и пароль в конфиг CMS — где он лежит, сказано в разделе ниже.

5. Выпустите сертификат до переключения

Обычная проверка Let's Encrypt по HTTP не сработает, пока домен смотрит на старый сервер. Если выпускать сертификат после смены DNS, первые минуты посетители увидят ошибку HTTPS. Выход — проверка через DNS-запись:

certbot certonly --manual --preferred-challenges dns -d example.ru -d www.example.ru
certbot install --nginx --cert-name example.ru

Certbot попросит добавить TXT-запись _acme-challenge в DNS — добавьте её в панели и дождитесь, пока она появится. Сертификат, выпущенный вручную, сам не продлевается, поэтому после переключения в шаге 7 выполните certbot --nginx -d example.ru -d www.example.ru и выберите перевыпуск — дальше продление пойдёт автоматически.

6. Проверьте сайт через hosts

Файл hosts заставляет ваш компьютер ходить на новый сервер, пока весь остальной интернет ходит на старый. Добавьте строку:

203.0.113.10 example.ru www.example.ru

Файл лежит в /etc/hosts на macOS и Linux и в C:\Windows\System32\drivers\etc\hosts в Windows (открывать от администратора). Пройдите сайт как посетитель: главная, каталог, поиск, формы, вход в админку, корзина и оплата в тестовом режиме. Без правки hosts то же самое можно проверить командой:

curl -sI --resolve example.ru:443:203.0.113.10 https://example.ru/

После проверки удалите строку из hosts, иначе вы так и останетесь «на новом сервере» и не заметите проблем с DNS.

7. Финальная синхронизация и смена A-записи

Остановите правки на старом сайте: попросите редакторов ничего не публиковать, магазин переведите в режим обслуживания. Повторите rsync из шага 4, исключив файл настроек CMS, который вы уже поправили (например, --exclude=wp-config.php), иначе он затрёт новые данные базы. После rsync снова выполните chown, затем заново выгрузите и загрузите базу. Затем в панели DNS поменяйте A-записи example.ru и www на 203.0.113.10. Если у домена есть AAAA-запись старого сервера, а у нового сервера IPv6 нет, удалите её — иначе часть посетителей продолжит ходить на старый адрес.

Проверяйте, как запись расходится, через разные публичные DNS:

dig +short example.ru A @8.8.8.8
dig +short example.ru A @77.88.8.8

8. Держите путь назад

Старый хостинг не отключайте ещё неделю. Если на новом сервере что-то сломалось, верните старую A-запись: при TTL 300 посетители вернутся за несколько минут. Учтите, что заказы и комментарии, появившиеся за это время на новом сервере, придётся перенести обратно руками. Когда неделя прошла спокойно, верните TTL к 3 600 секундам, настройте бэкапы на новом сервере и только потом отключайте старый.

Особенности WordPress, Битрикса, MODX и Joomla

WordPress. Данные базы — в wp-config.php (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST). Если домен остаётся тем же, больше ничего не меняется. Если меняется, используйте wp search-replace 'https://old.ru' 'https://new.ru' --skip-columns=guid из WP-CLI: ручная замена в SQL-файле ломает сериализованные настройки виджетов и тем.

1С-Битрикс. Штатный путь — полная резервная копия в админке («Настройки → Инструменты → Резервное копирование») и скрипт restore.php с сайта 1С-Битрикс на новом сервере: он скачивает или берёт архив, распаковывает файлы и восстанавливает базу. Данные доступа к базе после этого — в /bitrix/.settings.php и /bitrix/php_interface/dbconn.php. Битриксу нужен сервер, настроенный под его требования, и обычно больше ресурсов, чем WordPress, — сколько, мы посчитали в гайде о сервере для 1С-Битрикс.

MODX Revolution. Пути к ядру и доступ к базе записаны в core/config/config.inc.php и в трёх файлах config.core.php: в корне сайта, в manager/ и в connectors/. Пропишите новые пути (например, /var/www/site/core/) и очистите папку core/cache/.

Joomla. Всё в configuration.php: доступ к базе ($host, $user, $password, $db) и абсолютные пути $log_path и $tmp_path — их тоже нужно поменять на новые.

Что ломается после переезда

Что Почему Что сделать
Письма с сайта не уходят на облачных серверах Selectel закрыты порты 25, 465 и 587 отправлять через почтовый сервис SMTP (первые 1 000 писем в месяц — 0 ₽) или запросить разблокировку в поддержке
Почта на домене перестала приходить при переносе DNS-зоны потеряли MX и TXT-записи перенести все записи зоны, а не только A
Не открываются внутренние страницы Nginx не читает .htaccess переписать редиректы и правила адресов в конфиг Nginx
Не работают обмен с 1С, рассылки задания cron остались на старом хостинге перенести их в crontab -e нового сервера
Белый экран, ошибка 500 другая версия PHP или нет расширения сверить версию PHP и модули со старым хостингом
«Кракозябры» вместо текста база создана в другой кодировке создать базу в той же кодировке, что была
Ошибки записи файлов, не грузятся картинки владелец файлов не www-data chown -R www-data:www-data /var/www/site
Старые страницы и стили кэш CMS со старыми путями очистить кэш CMS после копирования

Что не подойдёт и ограничения

  • Облачный сервер — это пустая система, а не хостинг с панелью. CMS и веб-окружение не предустановлены, обновления, бэкапы и защита — на вас: провайдер за настройку ОС и резервные копии не отвечает. Если обслуживать сервер некому, переезжайте на другой виртуальный хостинг — шаги с TTL, hosts и откатом те же.
  • Почтовых ящиков на облачном сервере нет. Если почта на домене жила у старого хостера, её нужно перенести отдельно до отключения услуги.
  • DNS-зона у старого хостера. Если зона обслуживается его NS-серверами, после отключения хостинга домен перестанет открываться. Перенесите зону заранее, например в бесплатный DNS-хостинг; учтите, что его нельзя использовать как Secondary DNS.
  • Выключенный сервер всё равно платный. Если вы создали сервер «на попробовать» и забыли о нём, за него продолжат списывать деньги, пока его не удалят.
  • Бесплатный перенос силами провайдера — не для небольших сайтов. По документации Selectel данные выгружает и загружает сам клиент, а бесплатная помощь с переездом заявлена при аренде от 100 000 ₽/мес.
  • «Совсем без простоя» не для всех. Для магазинов и форумов с постоянной записью в базу простой без репликации базы недостижим — закладывайте 5–15 минут режима обслуживания на финальную синхронизацию.

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

Как мы сделали

Как мы сделали

Наш переезд был похожим, хотя и не полным переносом сайта: мы переводили 5–6 доменов своего сервиса (сайт, авторизацию, кабинет, служебные) на точку входа — облачный сервер в Москве. Сам сервис остался на основном сервере, а старый путь через туннель Cloudflare мы не удалили — он остался запасным на случай отката. На этом переезде мы нашли три вещи, которые теперь проверяем всегда. Поддомены — авторизацию, API, картинки — надо переводить вместе с основным доменом, иначе сайт открывается, а вход не работает. Порт 80 должен быть открыт, иначе Let's Encrypt не выпустит и не продлит сертификат проверкой по HTTP. Проверять результат нужно с обычного домашнего или мобильного интернета в России, а не онлайн-сервисами: у нас онлайн-проверки показывали «зелёный», когда пользователи в России не могли открыть личный кабинет. После любой правки на этом сервере мы открываем минимум три несвязанных домена. И последнее: после переезда убедитесь, что первый бэкап на новом сервере действительно записался. У нас был случай, когда задание бэкапа числилось активным, а копии молча не писались.

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

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

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

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

Скопируйте папку сайта и дамп базы, создайте на новом сервере базу и пользователя и впишите их в wp-config.php. Если домен не меняется, больше ничего править не нужно. Если меняется — замените старый адрес на новый в базе командой wp search-replace из WP-CLI, а не поиском по SQL-файлу: так не сломаются сериализованные настройки.

Битрикс: как перенести сайт на другой хостинг?

Проще всего штатным резервным копированием: в админке создайте полную копию сайта, положите на новый сервер скрипт restore.php с сайта 1С-Битрикс и откройте его в браузере — он распакует архив и восстановит базу. Сервер заранее подготовьте под требования Битрикса, например бесплатным веб-окружением от разработчика Битрикса. Если в базе кодировка cp1251, на новом сервере она должна остаться такой же.

Перенос сайта MODX на другой хостинг: что поменять после копирования?

В MODX Revolution пути и доступ к базе записаны в нескольких файлах: core/config/config.inc.php, а также config.core.php в корне, в папках manager и connectors. Впишите новые пути и данные базы, затем очистите папку core/cache. Без этого сайт обычно отдаёт белый экран или ошибку подключения к базе.

Сколько стоит перенос сайта на другой хостинг?

Если переносить самому, платите только за новый сервер: небольшой сайт помещается на облачный сервер от 721,26 ₽/мес плюс IP. Плюс неделя, когда вы платите и за старый хостинг, — это страховка для отката. Бесплатный перенос силами Selectel обещан только при аренде инфраструктуры от 100 000 ₽/мес, для небольшого сайта переезд остаётся вашей работой.

Источники

  1. Облачные серверы Shared Line — selectel.ruпроверено 08.11.2026
  2. Облачные серверы — selectel.ruпроверено 08.11.2026
  3. Прайс-лист: IP-адреса, диски, трафик — selectel.ruпроверено 08.11.2026
  4. Облачный сервер: что входит и ограничения (порты 25, 465, 587) — docs.selectel.ruпроверено 08.11.2026
  5. DNS-хостинг: условия — docs.selectel.ruпроверено 08.11.2026
  6. Бесплатный DNS-хостинг — selectel.ruпроверено 08.11.2026
  7. Бэкапы облачных серверов — selectel.ruпроверено 08.11.2026
  8. Почтовый сервис SMTP — selectel.ruпроверено 08.11.2026
  9. Миграция в Selectel: кто переносит данные — docs.selectel.ruпроверено 08.11.2026
  10. Бесплатный перенос проектов — selectel.ruпроверено 08.11.2026

Связанные гайды