Миграция WordPress без потери данных: пошаговое руководство (2026)

Введение: зачем нужна безошибочная миграция

Перенос WordPress‑сайта на новый хостинг часто сопровождается риском потери контента, настроек или SEO‑позиции. Правильный подход позволяет выполнить миграцию WordPress за 5‑7 шагов, минимизировать простой и сохранить полную целостность данных.

1. Подготовка и создание надёжных бэкапов

1.1. Резервное копирование файлов

Самый простой способ – скачать весь корневой каталог сайта через FTP/SFTP или воспользоваться rsync:

rsync -avz /path/to/old/site/ user@newhost:/path/to/new/site/

Не забудьте включить скрытые файлы (.htaccess, .user.ini) – они содержат важные правила.

1.2. Экспорт базы данных

В phpMyAdmin нажмите «Экспорт», выберите формат SQL и сохраните файл. Для больших баз удобнее использовать mysqldump:

mysqldump -u USER -pPASSWORD old_db_name > old_db_name.sql

После создания бэкапа проверьте размер и целостность файла (команда gzip -t).

2. Перенос файлов на новый сервер

2.1. Загрузка через SFTP

Подключитесь к новому хостингу и загрузите архив с файлами. Распакуйте его в директорию, указанную в настройках домена.

2.2. Настройка wp-config.php

Отредактируйте файл, указав новые параметры подключения к базе:

define('DB_NAME', 'new_db_name');
define('DB_USER', 'new_user');
define('DB_PASSWORD', 'new_password');
define('DB_HOST', 'localhost');

Если ваш новый хостинг использует префикс таблиц, измените $table_prefix соответственно.

3. Импорт базы данных в новую среду

3.1. Создание пустой БД

В панели управления хостингом создайте базу с тем же именем, что указали в wp-config.php. Дайте пользователю все привилегии.

3.2. Импорт через phpMyAdmin или CLI

Для больших дампов предпочтительнее mysql:

mysql -u new_user -p new_db_name < old_db_name.sql

После импорта проверьте наличие таблиц и отсутствие ошибок.

4. Поиск и замена старого URL

После переноса в базе останутся ссылки вида http://old-domain.com. Их необходимо заменить на новый домен, иначе будут сломанные картинки и редиректы.

4.1. WP‑CLI (рекомендованный способ)

Установите WP‑CLI на новом сервере и выполните:

wp search-replace 'http://old-domain.com' 'https://new-domain.com' --skip-columns=guid --all-tables

Опция --dry-run покажет, какие строки изменятся, без фактической правки.

4.2. Альтернатива: скрипт PHP

Если WP‑CLI недоступен, используйте простой скрипт:

tables();
foreach ( $tables as $table ) {
    $wpdb->query( $wpdb->prepare(
        "UPDATE $table SET guid = REPLACE(guid, %s, %s) WHERE guid LIKE %s",
        $old, $new, "%$old%"
    ) );
    $columns = $wpdb->get_col( "SHOW COLUMNS FROM $table LIKE '%url%'" );
    foreach ( $columns as $col ) {
        $wpdb->query( $wpdb->prepare(
            "UPDATE $table SET $col = REPLACE($col, %s, %s) WHERE $col LIKE %s",
            $old, $new, "%$old%"
        ) );
    }
}
?>

Запустите скрипт один раз и удалите его с сервера.

5. Финальная проверка и переключение DNS

5.1. Тестовый домен

Сначала привяжите временный поддомен (например, test.new-domain.com) к новому серверу. Проверьте:

  • Отображение страниц без ошибок 404;
  • Работу форм, комментариев и плагинов;
  • Скорость загрузки (можно сравнить с настройкой Nginx).

5.2. Обновление DNS

После подтверждения корректности переключите A‑запись домена на IP нового сервера. TTL лучше установить в 300 секунд за сутки до миграции, чтобы ускорить распространение.

5.3. Пост‑миграционная оптимизация

Запустите оптимизацию базы, настройте security headers и подключите CloudFlare CDN для ускорения и защиты.

Готово! Ваш WordPress‑сайт успешно переехал на новый хостинг без потери данных и с минимальным простоем.

❓ Часто задаваемые вопросы

Как проверить целостность дампа базы данных после экспорта?

Откройте .sql файл в текстовом редакторе и убедитесь, что он заканчивается строкой «COMMIT;». Также можно выполнить mysqlcheck -u USER -p DB_NAME после импорта.

Можно ли выполнить миграцию без доступа к phpMyAdmin?

Да, используйте mysqldump для экспорта и mysql для импорта через SSH. Для поиска‑замены URL удобно применять WP‑CLI.

Что делать, если после переключения DNS появляются 502 ошибки?

Проверьте, что PHP‑пул и FastCGI настроены корректно, а файлы .htaccess (или правила Nginx) соответствуют новому пути. Часто помогает перезапуск сервера.

Нужен ли отдельный SSL‑сертификат после миграции?

Да, установите сертификат для нового домена (Let’s Encrypt – бесплатный вариант). После установки проверьте, что все ресурсы загружаются по HTTPS.