Медленный сервер, дорогой тариф, слабая техподдержка — причин для смены хостинга достаточно. Но многих владельцев сайтов останавливает страх: вдруг что-то сломается, сайт пропадёт из поиска или вовсе не откроется. На самом деле перенос сайта — это стандартная процедура, которая при наличии актуального бэкапа и внимательности к деталям проходит без потерь. В этом руководстве разберём все этапы: от подготовки до финальной проверки, включая сохранение SEO-позиций в Яндексе и Google.
1. Подготовка к переносу: чек-лист, который спасёт ваш проект
Аудит текущего сайта
Перед переездом зафиксируйте конфигурацию текущего сервера — это поможет избежать несовместимостей на новом хостинге. Проверьте:
- Версию PHP — в панели управления хостингом или файле phpinfo(). Новый хостинг должен поддерживать ту же или более свежую версию.
- Тип и версию базы данных — MySQL или MariaDB. Несоответствие версий иногда вызывает проблемы с синтаксисом SQL.
- Объём дискового пространства — файлы сайта + база данных + почта. Убедитесь, что на новом тарифе места хватит с запасом.
- Специфические модули — ionCube, Imagick, memcached. Проверьте их наличие на новом хостинге до начала переноса.
Создание резервной копии
Бэкап хостинга недостаточен — провайдер может хранить резервные копии с задержкой или ограниченным набором файлов. Создайте собственную копию:
- Файлы сайта: скачайте через FTP/SFTP (FileZilla, Total Commander) или архивируйте через файловый менеджер панели управления.
- База данных: экспортируйте дамп через phpMyAdmin (Экспорт → Быстрый → SQL) или через SSH:
|
mysqldump -u имя_пользователя -p имя_базы > backup.sql |
|
Важно Убедитесь, что дамп скачался полностью. Обрезанный файл при импорте вызовет ошибку базы данных. Проверьте размер файла — он должен совпадать с объёмом базы. |
Проверка совместимости с новым хостингом
Заранее уточните у техподдержки нового провайдера:
- Какая панель управления используется — cPanel, ISPmanager, Plesk или другая.
- Максимальный размер файла для загрузки через phpMyAdmin (обычно 50–256 МБ).
- Лимиты PHP: max_execution_time, memory_limit, upload_max_filesize.
Если база данных большая (более 500 МБ), phpMyAdmin не подойдёт — потребуется импорт через SSH. Уточните, есть ли у нового хостинга SSH-доступ.
2. Три способа переноса сайта
|
Способ |
Когда подходит |
|
Бесплатный перенос силами нового хостинга |
Простые сайты на WordPress, Joomla, OpenCart. Достаточно передать данные в техподдержку: FTP-доступ и доступ к базе данных. |
|
Автоматический перенос через плагины |
WordPress (Duplicator, All-in-One WP Migration), Joomla (Akeeba Backup). Удобно для небольших сайтов без специфических настроек. |
|
Ручной перенос |
Универсальный метод. Подходит для любой CMS, самописных сайтов, 1С-Битрикс, крупных баз данных. Самый надёжный. |
3. Пошаговая инструкция ручного переноса
Шаг 1. Архивация и выгрузка файлов
Архивируйте файлы сайта на сервере, чтобы ускорить передачу:
|
# Архивировать всю папку сайта (через SSH на старом хостинге): tar -czvf site_backup.tar.gz /home/user/public_html/ |
Скачайте архив через SFTP (FileZilla) или wget. Одним архивом это быстрее, чем передавать тысячи файлов по отдельности.
Шаг 2. Экспорт базы данных
Если phpMyAdmin выдаёт ошибку тайм-аута при экспорте большой базы — используйте SSH:
|
# Экспорт с сжатием (для больших баз): mysqldump -u DB_USER -p DB_NAME | gzip > backup.sql.gz # Если нужно без сжатия: mysqldump -u DB_USER -p DB_NAME > backup.sql |
Шаг 3. Развёртывание на новом сервере
В панели управления нового хостинга создайте базу данных и пользователя с полными правами. Затем загрузите архив сайта и распакуйте:
|
# Загрузить архив (или через SFTP) # Распаковать: tar -xzvf site_backup.tar.gz -C /home/user/public_html/ # Задать правильные права: find /home/user/public_html -type d -exec chmod 755 {} \; find /home/user/public_html -type f -exec chmod 644 {} \; |
Шаг 4. Импорт базы данных и правка конфига
Импортируйте дамп через phpMyAdmin или SSH:
|
# Импорт через SSH (для больших баз): mysql -u DB_USER -p DB_NAME < backup.sql # Если база сжата: zcat backup.sql.gz | mysql -u DB_USER -p DB_NAME |
После импорта обновите данные подключения в конфигурационном файле CMS:
|
CMS |
Файл конфигурации |
|
WordPress |
wp-config.php — строки DB_NAME, DB_USER, DB_PASSWORD, DB_HOST |
|
Joomla |
configuration.php — переменные $db, $user, $password, $host |
|
1С-Битрикс |
bitrix/.settings.php — секция connections → default |
|
OpenCart |
config.php и admin/config.php — все константы DB_* |
|
Laravel |
.env — DB_DATABASE, DB_USERNAME, DB_PASSWORD, DB_HOST |
4. Особенности переноса конкретных CMS
WordPress
Главный нюанс WordPress — сериализованные данные в базе данных. URL сайта хранится в сериализованном формате, и простая замена «Найти и заменить» в SQL-редакторе сломает структуру. Используйте специализированные инструменты:
- WP-CLI: wp search-replace 'http://old-site.ru' 'http://new-site.ru' --all-tables
- Плагин Better Search Replace — работает через браузер, подходит, если нет SSH-доступа.
1С-Битрикс
После переноса файлов обязательно:
- Удалите кэш в /bitrix/cache/ и /bitrix/managed_cache/ — иначе сайт может работать с устаревшими данными.
- Проверьте лицензионный ключ в Настройки → Продукт → Лицензия. Иногда при смене IP ключ нужно перепривязать.
- Если используется BitrixVM или Docker-окружение — переносите контейнер целиком, а не только файлы.
OpenCart и Magento
После импорта базы и переноса файлов первым делом очистите кэш:
|
# OpenCart: удалить содержимое папки: rm -rf system/storage/cache/* # Magento 2: php bin/magento cache:clean php bin/magento cache:flush |
Проверьте права на папки storage (Magento) или system/storage (OpenCart) — они должны быть доступны для записи.
Laravel и самописные сайты
Скопируйте файл .env и замените в нём параметры подключения. Обновите виртуальный хост в конфиге Nginx или Apache — пропишите правильный document root. После смены конфига перезапустите сервер:
|
# Nginx: sudo systemctl reload nginx # Apache: sudo systemctl reload apache2 |
5. Перенос домена и настройка DNS
Снижение TTL за 48 часов
TTL (Time To Live) — время, в течение которого DNS-запись кешируется у провайдеров интернета. Стандартное значение 24 часа. Если не снизить TTL заранее, после смены DNS пользователи ещё сутки будут попадать на старый сервер. За 48 часов до переноса установите TTL на 300–600 секунд в настройках DNS вашего регистратора.
Два сценария смены DNS
Сценарий А: меняем только A-запись (домен остаётся у старого регистратора). Узнайте IP-адрес нового хостинга и замените A-запись домена. Это быстрее и менее рискованно.
Сценарий Б: полный трансфер домена к новому регистратору. Занимает до 7 дней. Используйте, только если новый регистратор предлагает значительно лучшие условия.
Тестирование сайта до смены DNS
Пока DNS не обновился, проверьте работу сайта на новом сервере через файл hosts:
|
# Windows: C:\Windows\System32\drivers\etc\hosts # macOS/Linux: /etc/hosts # Добавьте строку (замените на реальные значения): 123.45.67.89 your-site.ru www.your-site.ru |
После сохранения файла ваш браузер будет открывать сайт с нового IP, пока DNS ещё не обновился глобально. Проверьте все ключевые функции. Онлайн-альтернатива — сервис Hosts.cx.
6. SEO-аспекты переноса: как сохранить позиции
301-редиректы и HTTPS
Если при переносе менялась структура URL или протокол — настройте 301-редиректы. Для WordPress через .htaccess:
|
# Редирект с HTTP на HTTPS: RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] |
После перехода на HTTPS проверьте наличие Mixed Content — изображений, скриптов или стилей, которые грузятся по HTTP. Используйте плагин Really Simple SSL (WordPress) или онлайн-сервис Why No Padlock.
Работа с Google Search Console и Яндекс Вебмастером
- Google Search Console: инструмент «Переезд сайта» нужен только при смене домена, не хостинга. При смене только IP — уведомлять Google не требуется. После переноса проверьте отчёт «Покрытие» на рост ошибок 4xx/5xx.
- Яндекс Вебмастер: аналогично — смена хостинга без смены домена не требует специальных действий. Следите за разделом «Диагностика» несколько дней после переноса.
Мониторинг скорости после переноса
Сравните метрики Core Web Vitals до и после переноса через Google PageSpeed Insights. Новый хостинг может требовать дополнительной настройки кэша, gzip-сжатия и браузерного кэширования. Убедитесь, что кэш-плагин (WP Rocket, LiteSpeed Cache) активирован и правильно настроен на новом сервере.
7. Типичные ошибки после переноса и как их исправить
Ошибка 500 Internal Server Error
- Причина 1: .htaccess. Переименуйте файл в .htaccess_old и обновите страницу. Если ошибка исчезла — проблема в директивах. Для WordPress пересоздайте .htaccess через Настройки → Постоянные ссылки.
- Причина 2: права доступа. Папки должны быть 755, файлы — 644. Проверьте и исправьте рекурсивно через файловый менеджер панели или SSH.
- Причина 3: лимиты PHP. В php.ini нового хостинга может быть меньше памяти. Увеличьте memory_limit через панель управления или .user.ini.
«Error establishing a database connection»
Эта ошибка означает, что сайт не может подключиться к базе данных. Пошагово:
- Проверьте данные в конфиге (имя базы, пользователь, пароль, хост) — нет ли опечаток.
- Убедитесь, что пользователь БД добавлен к базе с полными правами в панели управления хостингом.
- Хост подключения — обычно localhost, но на некоторых хостингах это 127.0.0.1 или внутренний IP. Уточните в техподдержке.
«Кракозябры» вместо текста
Проблема кодировки при импорте базы. Решение:
|
# При импорте через SSH явно укажите кодировку: mysql --default-character-set=utf8mb4 -u DB_USER -p DB_NAME < backup.sql |
Также проверьте в конфиге MySQL (my.cnf) параметры character-set-server и collation-server — они должны быть utf8mb4.
Сайт открывается по старому IP у части пользователей
Это нормально в течение 24–72 часов после смены DNS — DNS-записи обновляются постепенно у разных провайдеров. Попросите пользователей очистить кэш браузера (Ctrl+Shift+Del) или сменить DNS-сервер на 8.8.8.8 (Google). Глобальное распространение DNS-записей проверяйте через сервис dnschecker.org.
Не отправляются письма с сайта
Большинство хостингов ограничивают отправку писем через стандартный mail(). Настройте SMTP-отправку через плагин (WP Mail SMTP для WordPress) или сторонний сервис (SendGrid, Mailgun). Обязательно проверьте попадание тестовых писем в спам и настройте записи SPF и DKIM в DNS домена.
8. Финальный чек-лист после успешного переноса
Пройдитесь по каждому пункту перед тем, как расторгать договор со старым хостингом.
|
Что проверить |
Детали |
|
|
1 |
Сайт открывается по новому IP |
Проверьте через dnschecker.org — все регионы должны показывать новый IP. |
|
2 |
Главная страница и ключевые разделы работают |
Откройте 10–15 страниц вручную, включая категории и отдельные материалы. |
|
3 |
Формы и оформление заказа работают |
Оформите тестовый заказ или отправьте форму обратной связи. |
|
4 |
Вход в админ-панель работает |
Проверьте /wp-admin, /administrator или /bitrix/admin. |
|
5 |
HTTPS активен, нет Mixed Content |
Зелёный замок в браузере. Проверьте через whynopadlock.com. |
|
6 |
Нет ошибок в Google Search Console |
Проверьте отчёт «Покрытие» через 2–3 дня после переноса. |
|
7 |
Скорость сравнима с предыдущим хостингом |
PageSpeed Insights — сравните LCP, INP, CLS. |
|
8 |
Письма с сайта доходят и не попадают в спам |
Отправьте тестовое письмо на несколько почтовых ящиков. |
|
9 |
Пароли обновлены |
FTP, база данных, админ-панель CMS — после передачи данных техподдержке. |
|
10 |
Старый хостинг продлён на 7–14 дней |
На случай непредвиденных проблем — страховочная копия. |
9. Часто задаваемые вопросы
Сколько времени занимает перенос сайта?
Небольшой сайт (до 500 МБ) — 2–4 часа с учётом настройки и тестирования. Средний проект (1–5 ГБ) — полдня. Крупный сайт с большой базой данных и индивидуальными настройками сервера — 1–2 дня. Распространение DNS-изменений занимает ещё до 72 часов, но сайт работает параллельно на обоих серверах в это время.
Можно ли перенести сайт без простоя?
Да. Настройте сайт на новом хостинге, протестируйте через файл hosts, а DNS переключайте только после полной проверки. При низком TTL переключение пройдёт для большинства пользователей за 5–10 минут. Полного нулевого простоя достичь сложнее, но при правильной подготовке 99% пользователей не заметят переезда.
Нужно ли уведомлять поисковые системы о смене хостинга?
Нет, если не менялся домен. Смена IP-адреса при переносе на другой хостинг не требует никаких действий в GSC или Вебмастере. Поисковики сами обнаружат новый IP при следующем обходе. Инструмент «Переезд сайта» нужен только при полной смене домена.
Что делать, если база данных больше лимита phpMyAdmin?
Используйте импорт через SSH (команда mysql). Если SSH недоступен — попросите техподдержку нового хостинга импортировать базу вместо вас или используйте BigDump — PHP-скрипт для пошагового импорта больших дампов.