2 min read

Перенос WordPress на новый домен без потерь

Перенос WordPress на новый домен без потерь

Перенос WordPress на новый домен звучит пугающе, но при правильной последовательности шагов проходит без потери данных и SEO. Прохожусь по всему процессу: подготовка, перенос файлов и базы, замена URL, настройка HTTPS и типичные проблемы после переезда.

Подготовка

Сделать полный бэкап

  • База данных — экспорт через phpMyAdmin или mysqldump
  • Файлы сайта — скачать через FTP, SCP или файловый менеджер хостинга

Проверить настройки хостинга

  • Новый домен уже подключён к серверу
  • Есть SSH или FTP доступ к старому и новому серверу

Без бэкапа не начинаю — если что-то пойдёт не так на середине переноса, откатиться без него невозможно.

Перенос файлов

Копирую файлы сайта напрямую между серверами:

scp -r /var/www/old_site_directory user@new_server_ip:/var/www/new_site_directory

Выставляю правильные права:

sudo chown -R www-data:www-data /var/www/new_site_directory/

Перенос базы данных

Экспортирую базу со старого сервера и копирую на новый:

mysqldump -u username -p db_name > db_name.sql
scp db_name.sql user@new_server_ip:/path/to/directory

Создаю базу и пользователя на новом сервере, импортирую дамп:

mysql -u root -p
CREATE DATABASE db_name;
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'your-strong-password';
GRANT ALL PRIVILEGES ON db_name.* TO 'new_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

mysql -u new_user -p db_name < db_name.sql

Замена URL в базе данных

При смене домена нужно заменить все упоминания старого адреса в базе. Три варианта.

Search Replace DB (рекомендую)

  1. Скачать Search Replace DB
  2. Загрузить и распаковать в корень сайта
  3. Открыть в браузере: http://new_domain/Search-Replace-DB-master
  4. Ввести данные подключения к базе и заменить old_domain.com на new_domain.com

Через командную строку

php srdb.cli.php -h localhost -n db_name -u db_user -p "db_pass" -s "old_domain.com" -r "new_domain.com"

Вручную

  • Экспортировать базу
  • Открыть SQL-файл в текстовом редакторе
  • Заменить через Find & Replace (Ctrl+H) старые URL на новые
  • Импортировать обновлённый файл обратно

Ручной способ оставляю на крайний случай — для больших баз он медленный и легко что-то пропустить.

Настройка WordPress после переноса

  • wp-config.php — проверить, что нет захардкоженных URL
  • .htaccess — обновить редиректы, если были
  • Permalinks — зайти в Settings → Permalinks и нажать Save Changes, чтобы обновились правила перезаписи

HTTPS на новом домене

Получаю бесплатный сертификат через Certbot:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d new_domain -d www.new_domain

Автоматическое продление:

crontab -e
0 0 15 * * sudo certbot renew --quiet

Типичные проблемы после переноса

Mixed Content предупреждения — браузер видит часть ресурсов по http вместо https. Добавляю в wp-config.php:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS'] = 'on';

Битые ссылки и пропавшие изображения — запускаю ещё один search-replace для старых URL в постах и медиа.

SEO-редиректы — настраиваю 301-редирект со старого домена на новый через .htaccess или плагин. Без этого теряешь позиции в поиске и входящий трафик по старым ссылкам.

Финальный чеклист

  • [ ] Бэкап создан и сохранён в надёжном месте
  • [ ] Файлы и база перенесены
  • [ ] URL в базе обновлены
  • [ ] HTTPS настроен
  • [ ] Внутренние ссылки и изображения проверены
  • [ ] 301-редиректы для SEO настроены

Перед тем как переключать домен на боевую среду — проверяю сайт на staging-окружении. Это сводит простой к минимуму и убирает сюрпризы после переключения.


Если хочешь обсудить похожую задачу — пиши на [email protected] или заходи на 1it.pro.

Связаться с нами
Telegram
WhatsApp
Email