Блог / Статьи

Полезная информация для вашего хостинга

Как перенести сайт WordPress на новый VPS без простоев: полное руководство для веб-мастеров

Как перенести сайт WordPress на новый VPS без простоев: полное руководство для веб-мастеров

Содержание

Представьте: ваш сайт — это живой организм. Каждая страница — клетка, каждая кнопка — нервное окончание, а база данных — его сердце. Когда вы решаете переехать на новый VPS, вы не просто меняете хостинг. Вы переселяете целую экосистему. И если вы сделаете это неаккуратно — сайт может «умереть» на глазах у посетителей. А поисковые системы, как строгие врачи, запишут это как длительную недоступность и начнут снижать ранжирование. Но что, если вы сможете перенести сайт так, что никто — ни пользователь, ни Google, ни Яндекс — не заметит смены адреса? Это не фантастика. Это реальность, которую мы раскроем пошагово.

В этой статье вы получите исчерпывающее, проверенное на практике руководство по миграции WordPress на новый VPS с нулевым временем простоя. Мы не просто перечислим команды — мы объясним, почему именно так, а не иначе. Вы узнаете, как правильно настроить сервер, как не потерять ни одного комментария из базы данных, как избежать типичных ошибок, которые ломают SEO, и как внедрить SSL без паники. Всё — с примерами кода, реальными путями, лайфхаками и стратегиями, которые используют топовые веб-студии по всему миру.

Что вам понадобится: полный чек-лист перед началом миграции

Перенос сайта — это не «нажал кнопку и всё готово». Это операция, требующая подготовки. Прежде чем вы поднимете SSH-клиент, соберите этот комплект инструментов — он станет вашей аптечкой на пути к идеальному переносу.

  • Доступ к старому серверу: SSH-логин и пароль (или ключ), FTP/SFTP-данные. Если вы используете панель управления (например, cPanel), убедитесь, что у вас есть права на экспорт базы данных и файлов.
  • Новый VPS: Выбран и оплачен. Запишите его публичный IP-адрес — он вам понадобится в каждом этапе. Рекомендуем: минимум 2 ядра CPU, 4 ГБ RAM, SSD-диск. Для сайтов с трафиком >10 тыс. визитов в месяц — 4 ядра и 8 ГБ RAM.
  • SSH-клиент: Для Windows — PuTTY или Windows Terminal с OpenSSH. Для macOS и Linux — встроенный Terminal. Убедитесь, что вы умеете подключаться по SSH: ssh root@ваш_ip_нового_vps
  • FTP/SFTP-клиент: Мы рекомендуем FileZilla Pro (платная, но надёжная) или бесплатную FileZilla Client. Не используйте обычный FTP — только SFTP (SSH File Transfer Protocol). Порт: 22.
  • Домен и доступ к DNS-панели: Вам нужно войти в панель управления доменом (Reg.ru, Nic.ru, Cloudflare, Google Domains и т.д.). Там вы будете менять A-записи.
  • Резервная копия текущего сайта: Даже если вы всё делаете аккуратно — сделайте дополнительный бэкап через плагин (например, UpdraftPlus или Duplicator). Он спасёт вас, если что-то пойдёт не так.
  • Время: Зарезервируйте 2–4 часа. Не начинайте миграцию перед важной кампанией или в пятницу вечером. Лучшее время — утро в будний день, когда трафик минимальный.

Важно: Не забудьте отключить все кеширующие плагины (WP Rocket, LiteSpeed Cache, W3 Total Cache) и CDN (Cloudflare, BunnyCDN) до начала миграции. Иначе вы будете копировать устаревшие версии страниц.

Настройка нового VPS: создание идеального окружения для WordPress

WordPress — это не статический HTML-сайт. Это динамическое приложение, которое требует сложной инфраструктуры: веб-сервер, PHP-движок, база данных и дополнительные модули. Наша задача — собрать это как конструктор, но с нулевыми ошибками.

Подключитесь к новому VPS по SSH и выполните следующие команды по порядку. Каждая — как шаг в строительстве дома.

Шаг 1: Обновление системы


apt update && apt upgrade -y

Это не просто «обновить». Это очистка от уязвимостей. Устаревшие пакеты — это дыры в стене вашего сервера. Всегда начинайте с этого.

Шаг 2: Установка Nginx — современный веб-сервер для скорости


apt install nginx -y
systemctl enable nginx
systemctl start nginx

Почему Nginx, а не Apache? Nginx — асинхронный сервер. Он обрабатывает тысячи одновременных соединений без нагрузки на CPU. Apache — синхронный. Для высоконагруженных сайтов — Nginx незаменим. Проверьте работу: откройте в браузере IP вашего VPS. Должна появиться страница «Welcome to nginx!».

Шаг 3: Установка PHP 8.1 или 8.2 — сердце WordPress

  

apt install php php-fpm php-mysql php-cli php-curl php-xml php-mbstring php-gd php-zip php-intl php-soap -y

 Обратите внимание: мы установили php-fpm — FastCGI Process Manager. Он работает вместе с Nginx и обеспечивает стабильную обработку PHP-запросов. Без php-mbstring и php-xml многие плагины (например, WooCommerce или Yoast SEO) не будут работать. Проверьте версию:


php -v
Должно быть 8.1 или 8.2. Если у вас 7.4 — это устаревшая версия. WordPress официально поддерживает только 8.0+. Устаревший PHP — главная причина медленной работы и уязвимостей.

Шаг 4: MariaDB — надёжная база данных вместо MySQL


apt install mariadb-server -y
systemctl enable mariadb
systemctl start mariadb
mysql_secure_installation
Мы выбираем MariaDB — это форк MySQL, но с лучшей производительностью и совместимостью. Команда mysql_secure_installationобязательна. Она:
  • Задаёт пароль root-пользователя (запишите его!)
  • Отключает анонимных пользователей
  • Запрещает удалённый доступ root
  • Удаляет тестовую базу

Шаг 5: WP-CLI — ваш суперинструмент для миграции

WP-CLI — это терминальный контроль WordPress. С его помощью вы можете экспортировать базу, устанавливать плагины, менять URL — без захода в админку. Это критично для миграции без простоев.

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
wp --info

Если вы видите вывод с версией WP-CLI и путями — значит, всё установлено. Теперь вы можете выполнять команды вроде wp core download или wp db export — прямо на сервере, без FTP.

wpvps02

 

Резервное копирование: как сохранить всё содержимое сайта без потерь

Вы не просто «копируете файлы». Вы делаете двоичный снимок вашего сайта. Один пропущенный файл — и сломанная форма обратной связи. Один утерянный ID в базе — и все комментарии исчезнут. Никаких «на глаз».

Этап 1: Скачивание файлов сайта через SFTP

Откройте FileZilla. Подключитесь к старому серверу:

  • Хост: IP старого VPS
  • Пользователь: root (или ваш пользователь)
  • Пароль: ваш пароль
  • Порт: 22
  • Тип соединения: SFTP

Перейдите в директорию WordPress. Где она? Часто это:

  • /var/www/html/ — стандарт для Ubuntu/Debian
  • /home/ваш_пользователь/public_html/ — если используется пользовательский домен
  • /var/www/вашдомен.ру/ — если настроены виртуальные хосты

Как узнать точно? Подключитесь по SSH к старому серверу и выполните:

grep -i documentroot /etc/nginx/sites-enabled/*

Или, если Apache:

grep DocumentRoot /etc/apache2/sites-available/*.conf
Скачайте всю папку на локальный диск. Не выбирайте отдельные файлы. Не пропускайте папки /wp-content/uploads/ — там все ваши изображения, видео, PDF-файлы. Это может быть 10 ГБ. Не бойтесь — это нормально.

 

Этап 2: Экспорт базы данных — без phpMyAdmin

Большинство гайдов говорят: «Откройте phpMyAdmin». Но на VPS он часто не установлен. И это правильно — он уязвим. Мы используем mysqldump — мощный, быстрый, безопасный.

Подключитесь к старому серверу по SSH и найдите имя базы данных. Откройте файл wp-config.php:

nano /var/www/html/wp-config.php

Найдите строку:

define('DB_NAME', 'ваша_база_данных');
Запишите имя — например, wordpress_db.

 

Теперь экспортируйте базу: 

mysqldump -u root -p wordpress_db > /tmp/wordpress_backup.sql

 Система запросит пароль MySQL root. Введите его. Файл wordpress_backup.sql появится в папке /tmp/.

Скачайте его через FileZilla из /tmp/wordpress_backup.sql на ваш компьютер. Сделайте копию этого файла в двух местах! Одна — на локальном диске, вторая — в облаке (Google Drive, Dropbox).

Перенос файлов WordPress на новый VPS: точная копия, без ошибок

Теперь вы готовы к загрузке. Но не спешите! Есть важный нюанс: если вы просто перетащите файлы — права доступа могут сломаться. А это приведёт к ошибкам 403 Forbidden.

Подключитесь к новому VPS через FileZilla теми же параметрами, что и раньше — только IP теперь новый.

Перейдите в директорию, куда вы хотите разместить сайт. Обычно это: 

/var/www/html/

 Если её нет — создайте: 

mkdir /var/www/html

 Теперь — важно! Установите правильные права доступа. В FileZilla кликните правой кнопкой по папке /var/www/html/File permissions. Установите:

  • Owner: read, write, execute
  • Group: read, execute
  • Others: read, execute

Или через SSH (если предпочитаете команды): 

chown -R www-data:www-data /var/www/html/
chmod -R 755 /var/www/html/

 Теперь перетащите все файлы с вашего компьютера в эту папку. Не удаляйте ничего. Даже файлы вроде .htaccess — их не будет, потому что вы используете Nginx. Но оставьте их — они не повредят.

 

wpvps03

Создание новой базы данных: безопасный пользователь и надёжная конфигурация

Вы не должны использовать root-пользователя для WordPress. Это как оставлять ключи от дома под ковриком. Мы создадим отдельного пользователя с минимальными правами.

Подключитесь к новому VPS по SSH и войдите в MySQL: 

mysql -u root -p

 Введите пароль. Теперь выполните команды по одной:

CREATE DATABASE wordpress_new_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'ВашНадёжныйПароль123!@#';
GRANT ALL PRIVILEGES ON wordpress_new_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

 

Пояснения:

  • utf8mb4 — поддерживает эмодзи и все языки мира. Без этого — кириллица может сломаться.
  • wp_user@localhost — означает, что пользователь может подключаться только с локального сервера. Это безопасно.
  • FLUSH PRIVILEGES; — перезагружает права. Без этой команды — изменения не вступят в силу.

Запишите в надёжное место:

  • Имя базы: wordpress_new_db
  • Пользователь: wp_user
  • Пароль: ВашНадёжныйПароль123!@#

Импорт базы данных: как перенести всё содержимое без потерь

Теперь загрузим вашу резервную копию в новую базу. Это самый критичный этап. Ошибка здесь — и вы потеряете все записи, пользователей, товары, отзывы.

Загрузите файл wordpress_backup.sql на новый VPS. Используйте FileZilla — перетащите его в /tmp/ на новом сервере.

Подключитесь по SSH и выполните: 

mysql -u wp_user -p wordpress_new_db < /tmp/wordpress_backup.sql

 Система запросит пароль — введите тот, который вы задали для wp_user.

Что происходит? Команда читает SQL-файл и выполняет все команды в нём: создаёт таблицы, вставляет данные, устанавливает индексы. Это может занять от 30 секунд до 10 минут — в зависимости от размера сайта.

Проверьте результат: 

mysql -u wp_user -p wordpress_new_db -e "SHOW TABLES;"

 Вы должны увидеть список таблиц: wp_posts, wp_users, wp_options — это ваш сайт. Если таблиц нет — импорт не удался. Повторите шаг.

Настройка wp-config.php: ключ к доступу к новой базе

Файл wp-config.php — это паспорт вашего сайта. Он говорит WordPress: «Соединись с этой базой, под этим логином, с этим паролем».

Откройте его на новом сервере: 

nano /var/www/html/wp-config.php

 Найдите блок: 

define('DB_NAME', 'ваша_база_данных');
define('DB_USER', 'ваш_пользователь');
define('DB_PASSWORD', 'ваш_пароль');
define('DB_HOST', 'localhost');

 Замените значения на те, что вы создали: 

define('DB_NAME', 'wordpress_new_db');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'ВашНадёжныйПароль123!@#');
define('DB_HOST', 'localhost');

 Важно! Убедитесь, что нет лишних пробелов, кавычек или символов. Даже один лишний символ — и сайт не запустится.

Теперь добавьте две важные строки для безопасности и скорости — прямо перед /* That's all, stop editing! Happy blogging. */

define('WP_MEMORY_LIMIT', '512M');
define('WP_MAX_MEMORY_LIMIT', '1024M');

 Это предотвращает ошибки памяти при работе с большими медиафайлами и плагинами.

Сохраните файл: Ctrl+O → Enter → Ctrl+X.

Обновление DNS-записей A и CNAME: как заставить домен «переключиться»

Вы сделали всё на сервере. Но пока вы вводите в браузере вашдомен.ру — вы попадаете на старый сервер. Почему? Потому что DNS-записи указывают на старый IP.

Войдите в панель управления доменом (например, Cloudflare, Reg.ru, Nic.ru).

Найдите раздел DNS-записи.

Ищите запись типа A с именем @ (или пустое поле). Её значение — старый IP. Замените его на IP нового VPS.

Теперь найдите запись типа CNAME с именем www. Её значение должно быть @ или вашдомен.ру. Если её нет — создайте:

  • Name: www
  • Type: CNAME
  • Value: вашдомен.ру
  • TTL: 300 (5 минут)

Почему TTL 300? TTL — Time To Live. Это время, сколько DNS-серверы будут кешировать запись. Установив 300, вы гарантируете, что через 5 минут все пользователи увидят новый IP. После миграции — можно вернуть TTL в 86400 (24 часа) для оптимизации.

Совет от SEO-эксперта: Если вы используете Cloudflare — временно отключите прокси (оранжевое облако). Поставьте «DNS only» (серое облако). Иначе Cloudflare будет кешировать старую версию сайта, и вы не сможете протестировать миграцию.

wpvps04

Установка SSL-сертификата Let’s Encrypt: автоматический HTTPS без платы

HTTPS — не просто «зелёная замочка». Это сигнал Google о доверии. Без HTTPS ваш сайт теряет в SEO, а пользователи не доверяют формам. И мы установим его бесплатно и автоматически.

На новом VPS выполните: 

apt install certbot python3-certbot-nginx -y

 Затем: 

certbot --nginx

 Система:

  • Обнаружит ваш домен (если DNS уже обновился)
  • Создаст сертификат от Let’s Encrypt
  • Автоматически настроит Nginx на использование HTTPS
  • Добавит редирект с HTTP на HTTPS

Ответьте на вопросы:

  • Введите email — для уведомлений о просрочке сертификата
  • Согласитесь с условиями
  • Выберите, хотите ли вы подписаться на рассылку — по желанию
  • Выберите домен: укажите вашдомен.ру и www.вашдомен.ру
  • Выберите: Redirect — Make all requests redirect to secure HTTPS access

После завершения вы увидите: 

Certbot has set up a redirect from HTTP to HTTPS.

 Проверьте:

  • Откройте http://вашдомен.ру — должен автоматически перенаправить на https://
  • Откройте https://вашдомен.ру — должна появиться зелёная замочка
  • Проверьте через SSL Labs — рейтинг должен быть A+

Важно! Let’s Encrypt сертификат действует 90 дней. Certbot автоматически настроил обновление. Проверьте его: 

systemctl status certbot.timer

 Должно быть: active (running).

Финальная проверка: как убедиться, что всё работает идеально

Миграция почти завершена. Но вы не можете просто «надеяться». Нужно проверить.

Проверка 1: DNS-пропагация

Откройте терминал и выполните: 

ping вашдомен.ру

 Если IP совпадает с новым VPS — DNS обновился. Если нет — подождите 15–30 минут. Можно использовать DNSChecker.org — он покажет, где уже обновилось.

Проверка 2: Работоспособность сайта

Откройте сайт в браузере. Проверьте:

  • Главная страница загружается?
  • Картинки отображаются?
  • Формы (обратная связь, подписка) работают?
  • Админка: https://вашдомен.ру/wp-admin — входите?

Если сайт не открывается — проверьте логи: 

tail -f /var/log/nginx/error.log

 Если видите Permission denied — проверьте права на папку /var/www/html/. Если Access denied for user — проверьте wp-config.php.

Проверка 3: SEO-проверка

Перейдите в Google Search Console. Убедитесь, что ваш сайт привязан к новому URL. Запустите «Проверить URL» — он должен отвечать 200 OK.

Проверьте robots.txt: https://вашдомен.ру/robots.txt. Должен быть корректным. Не должно быть Disallow: /.

Заключение: миграция без простоев — это не магия, а дисциплина

Вы только что выполнили перенос WordPress на новый VPS — без простоев, без потерь, без SEO-штрафов. Это не просто техническая операция. Это стратегия, которая показывает, насколько вы профессионал.

Вот ключевые принципы, которые вы теперь знаете:

  • Никогда не пропускайте резервное копирование. Даже если всё «кажется» простым.
  • Настройка сервера — это основа. Без правильного Nginx, PHP и MariaDB сайт будет медленным или уязвимым.
  • DNS — это время. Не ждите мгновенного результата. Установите TTL=300, чтобы ускорить обновление.
  • HTTPS — обязательный стандарт. Не просто «надо». Это сигнал Google, что вы заботитесь о пользователях.
  • WP-CLI — ваш лучший друг. Освойте его. Он сэкономит вам сотни часов.

Чтобы в будущем переносы были ещё проще — настройте автоматические бэкапы (например, через UpdraftPlus + Google Drive) и создайте шаблон настройки VPS — сохраните все команды в текстовом файле. Вы сможете повторить этот процесс за 30 минут, а не за 4 часа.

Поздравляем. Ваш сайт теперь работает быстрее, безопаснее и надёжнее. И никто — ни пользователь, ни Google, ни Яндекс — не узнал, что вы его переехали. Это — идеальный перенос. И теперь вы знаете, как его сделать.

Совет на будущее: Через 24 часа после миграции — удалите старый сервер. Не оставляйте его включённым. Это риск дублирования контента и штрафа от поисковиков.

Если вы нашли эту инструкцию полезной — поделитесь ею с коллегой. Или оставьте комментарий ниже: «Какой этап был самым сложным?» — мы ответим лично.