Как мигрировать сайт на новый VPS без потери трафика и SEO‑рейтинга
Если вы уже давно держите свой проект в интернете и решили перейти на более мощный виртуальный сервер (VPS), то, вероятно, задумываетесь: *«А как перенести всё без потери позиций?»*. Не волнуйтесь — я сам стоял на этом этапе. Ниже разложу процесс так, чтобы даже новичок смог следовать каждому шагу, а ваш сайт остался видимым для поисковиков и пользователей.1. Почему нужен новый VPS?
Прежде чем бросаться в миграцию, давайте уточним цель:
- Скорость – более быстрый отклик, меньше времени загрузки страниц. - Надежность – отказоустойчивый сервер с резервным питанием и SSD‑дисками. - Гибкость – возможность установить любые версии ПО, настройку окружения по своему вкусу. - Безопасность – контроль над брандмауэром, обновления ядра, изоляция от других сайтов.
2. Подготовка к миграции
2.1. Создаём резервную копию
Перед тем как менять адреса и настройки, надо сохранить всё в надёжном месте.
Что | Как сделать |
---|---|
Файлы сайта (HTML, PHP, медиа) | tar -czvf site-backup.tar.gz /var/www/yourdomain.com |
База данных MySQL | mysqldump -u root -p yourdb > db-backup.sql |
Конфигурации веб‑сервера | Скопировать /etc/nginx/sites-available/ или /etc/apache2/sites-available/ |
Ошибка №1: «Собрал только файлы, но забыли дамп базы». В итоге сайт без контента.
Решение: всегда делайте backup сразу после изменения кода.
2.2. Выбираем VPS‑хостинг
- Azerta.ru предлагает несколько тарифов: от 1 ГБ RAM и 20 ГБ SSD до 8 ГБ RAM и 200 ГБ SSD. - Платите по месяцам, но можно оформить долгосрочный контракт с скидкой. - У них есть тестовый сервер, где вы можете проверить совместимость вашего кода.
Риторический вопрос: «А зачем платить за тестовое место?»
Ответ прост: проверяем конфигурацию, без риска для продакшена.
2.3. Получаем данные доступа
После заказа VPS вы получите:
- IP‑адрес нового сервера. - SSH‑ключ или пароль. - FTP/SFTP учётные данные (если используете FileZilla).
3. Установка и настройка окружения на новом сервере
3.1. Подключаемся по SSH
ssh root@NEW_VPS_IP
Ошибка №2: «Команда ssh не распознаётся».
Решение: убедитесь, что OpenSSH установлен (apt install openssh-server
).
3.2. Устанавливаем веб‑сервер и PHP
Я обычно использую Nginx + PHP‑FPM, потому что он быстрее и легче в настройке.
apt update && apt upgrade -y
apt install nginx php-fpm php-mysql mariadb-client -y
Ошибка №3: «Проблемы с зависимостями при установке PHP».
Решение: обновите список пакетов и используйте -f
для принудительной установки.
3.3. Настраиваем MariaDB
mysql_secure_installation # задаём root‑пароль, удаляем anon users
Создаём базу данных и пользователя:
CREATE DATABASE yourdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON yourdb.* TO 'youruser'@'localhost' IDENTIFIED BY 'strongpassword';
FLUSH PRIVILEGES;
Ошибка №4: «Пользователь не имеет прав на импорт».
Решение: проверяйте синтаксис GRANT и убедитесь, что пароль соответствует.
3.4. Перенос файлов
Используем rsync
для быстрой передачи:
rsync -avz --progress /var/www/yourdomain.com/ root@NEW_VPS_IP:/var/www/
Ошибка №5: «Файлы не копируются, пропущены права».
Решение: добавьте-o
и-g
, чтобы сохранить владельца и группу.
3.5. Перенос базы данных
mysql -u youruser -p yourdb < /root/db-backup.sql
4. Настройка веб‑сервера на новом VPS
4.1. Создаём конфиг Nginx
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain.com/public_html;
index index.php index.html index.htm;
access_log /var/log/nginx/yourdomain_access.log;
error_log /var/log/nginx/yourdomain_error.log;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # меняйте под свою версию
}
location ~ /\.ht {
deny all;
}
}
Ошибка №6: «PHP‑FPM не запускается».
Решение: проверьте, что сокет указан правильно (php8.1-fpm.sock
).
4.2. Включаем сайт
ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
5. Переадресация и сохранение SEO
5.1. Перенаправляем старый домен на новый IP
Если вы меняете только сервер, но домен остаётся тем же, то просто обновите A‑запись в DNS у вашего регистратора.
- IP:
NEW_VPS_IP
- TTL: 300 секунд (5 минут) – быстрое распространение изменений.
Ошибка №7: «Пользователи видят “404 Not Found” после смены IP».
Решение: убедитесь, что Nginx слушает правильный IP и порт.
5.2. Проверяем наличие 301‑переадресаций
Если вы меняете структуру URL (например, переходим с example.com/blog/old
на example.com/articles/new
), создайте правила в .htaccess
или Nginx:
rewrite ^/blog/(.*)$ /articles/$1 permanent;
Ошибка №8: «Переадресация не работает, появляется 500 Internal Server Error».
Решение: проверьте синтаксис правил и наличие модуля rewrite
.
5.3. Обновляем карту сайта
После миграции генерируем новый sitemap.xml:
php artisan sitemap:generate # для Laravel
или вручную.
Публикуйте его в Google Search Console, обновите ссылки в robots.txt:
User-agent: *
Disallow:
Sitemap: https://yourdomain.com/sitemap.xml
Ошибка №9: «Google не видит новый sitemap».
Решение: убедитесь, что файл доступен без ошибок 403/404.
6. Проверка работоспособности
6.1. Тестируем локально
curl -I http://localhost/
Убедитесь, что статус 200 и заголовки корректные.
6.2. Проверяем SEO‑показатели
- Google PageSpeed: загрузите страницу в Lighthouse.
- GTmetrix: оценка скорости и рекомендации по улучшению.
- Проверка индексации:
site:yourdomain.com
в Google, убедитесь, что новые страницы находятся в индексе.
6.3. Мониторинг
Установите UptimeRobot или аналогичный сервис:
apt install fail2ban
systemctl enable nginx
7. Что делать, если что-то пошло не так?
1. **Восстановите из резервной копии** – это самое быстрое решение. 2. Проверьте логи: - `/var/log/nginx/error.log` - `/var/log/mysql/error.log` 3. Если сайт недоступен после смены IP, откатитесь к старому серверу и повторите миграцию с более тщательной проверкой DNS.8. Итоги
- Планируйте: сделайте резервную копию всех файлов и БД.
- Выбирайте VPS: Azerta.ru предлагает гибкие тарифы, хорошую поддержку и 100 % uptime.
- Устанавливайте окружение: Nginx + PHP‑FPM + MariaDB – быстрый старт.
- Переносите файлы и данные с
rsync
иmysqldump
. - Настраивайте DNS быстро (TTL 300 секунд). - Проверяйте SEO: карты сайта, 301‑переадресации, Google Search Console. - Мониторинг: Fail2Ban + UptimeRobot.
,