Как перенести сайт на WordPress: Сделать перенос сайта и не потерять SEO, трафик и нервы

Переезд сайта с одного хостинга на другой — это как перевозка хрупкого антиквариата: требует тщательной упаковки, аккуратной транспортировки и внимательной распаковки. Если вы задумались о том, как перенести сайт на WordPress, но опасаетесь технических сложностей, этот гайд станет вашим подробным путеводителем. Мы разберём не только базовые шаги, но и скрытые нюансы, которые часто упускают из виду даже опытные пользователи. Вы узнаете, как сделать перенос сайта на VPS, обычный хостинг или даже локальный сервер, как избежать «битых» ссылок и потери данных, а также когда стоит доверить услуги переноса сайта профессионалам. Готовы? Начнём наше цифровое путешествие.

Подготовка к переезду: создание идеальной резервной копии

Перед тем как начать перенос сайта на другой хостинг, представьте, что ваш сайт — это виртуальный организм, состоящий из тысяч файлов и записей в базе данных. Первый шаг — создать его «цифровой двойник». Для этого есть три основных метода:

Ручной экспорт через FTP и phpMyAdmin

  • Подключитесь к текущему хостингу через FTP-клиент (FileZilla, WinSCP). Скопируйте все файлы, включая скрытые (включите опцию «Показывать скрытые файлы»). Особое внимание уделите папке wp-content — здесь хранятся темы, плагины и загруженные изображения.
  • Для базы данных зайдите в phpMyAdmin через панель управления хостингом. Выберите базу, связанную с вашим сайтом, нажмите «Экспорт» → «Custom», убедитесь, что выбраны все таблицы, а формат установлен SQL. Уберите галочку с «Добавить DROP TABLE» — это предотвратит случайное удаление данных на новом сервере.

Использование плагинов-помощников

  • Плагины вроде Duplicator, All-in-One WP Migration или UpdraftPlus автоматизируют процесс. Например, Duplicator создаёт два файла: архив с файлами и «установщик». После загрузки их на новый хостинг запустите установщик через браузер, и плагин сам настроит базу данных. Это идеальный вариант, если нужен перенос сайта без погружения в технические детали.

Резервное копирование через хостинг-панель

  • Многие провайдеры (например, Beget, TimeWeb) предлагают встроенные инструменты для бэкапа. В cPanel это раздел «Backup» → «Full Backup». Однако учтите: такие копии могут не работать на другом хостинге из-за различий в настройках сервера.

Перед началом переноса сайта на WordPress отключите плагины кэширования (W3 Total Cache, WP Rocket) — они могут повредить файлы при архивации.

Выбор нового «дома»: хостинг, VPS или облако?

Перед тем как перенести сайт на Вордпресс, решите, куда именно вы его перемещаете. Варианты:

  • Общий хостинг — подходит для небольших сайтов с трафиком до 10 000 посетителей в месяц. Плюсы: низкая цена, простота настройки. Минусы: ограниченные ресурсы, соседство с другими сайтами (риск замедления).
  • VPS (виртуальный приватный сервер) — идеален для средних и крупных проектов. Здесь вы получаете root-доступ, выделенные ресурсы и возможность тонкой настройки. Перенос сайта на VPS требует базовых навыков работы с командной строкой (SSH), но даёт полный контроль.
  • Облачные решения (AWS, Google Cloud) — мастхэв для высоконагруженных порталов. Гибкая тарификация, масштабируемость, но сложность настройки для новичков.

🛠 Настройка нового сервера:

  • Для общего хостинга достаточно создать аккаунт и базу данных через панель управления (например, в cPanel: «MySQL Databases» → укажите имя БД, пользователя и пароль).
  • Для переноса сайта на VPS установите LAMP/LEMP-стек (Linux, Apache/Nginx, MySQL, PHP). Используйте скрипты вроде CentOS Web Panel или воспользуйтесь готовыми образами от DigitalOcean.

Транспортировка файлов и базы данных

Теперь, когда резервная копия готова, а новый хостинг подготовлен, начинается ключевой этап — как перенести сайт.

Загрузка файлов через FTP

  • На новом хостинге создайте папку (например, public_html) и загрузите туда все файлы из бэкапа. Убедитесь, что структура папок совпадает со старой.
  • Проверьте права доступа: папки — 755, файлы — 644. Для файла wp-config.php установите права 600 (только владелец может читать и редактировать).

Импорт базы данных

  • В phpMyAdmin нового хостинга создайте пустую БД с тем же именем, что и на старом сервере (если меняете имя — позже внесите его в wp-config.php).
  • Перейдите во вкладку «Импорт», выберите SQL-файл. Важно: установите кодировку utf8mb4_unicode_ci, чтобы избежать проблем с кириллицей.

Если файл слишком большой (более 50 МБ), используйте консоль:

mysql -u имя_пользователя -p имя_базы < backup.sql

  • Настройка wp-config.php
    Откройте этот файл в корневой папке WordPress и проверьте строки:

define('DB_NAME', 'новая_база');

define('DB_USER', 'новый_пользователь');

define('DB_PASSWORD', 'пароль');

define('DB_HOST', 'localhost'); // Или другой хост, указанный хостингом

Если вы переносите сайт на другой хостинг с изменением домена, добавьте строки:

define('WP_HOME', 'https://новый-домен.ru');

define('WP_SITEURL', 'https://новый-домен.ru');

Волшебство DNS: как не потерять посетителей при смене домена

Если домен остаётся прежним, обновите DNS-записи у регистратора. NS-серверы нужно заменить на те, что предоставил новый хостинг (например, ns1.newhosting.com). Учтите: распространение изменений по всему миру (propagation) занимает от 2 до 48 часов.

🌐 Временный доступ:

  • Чтобы начать работу до завершения propagation, добавьте запись в файл hosts на своём ПК:
  • 168.1.1 ваш-домен.ru

(Замените 192.168.1.1 на IP-адрес нового сервера).

Пост-переездная проверка: от поиска ошибок до SEO-оптимизации

После переноса сайта на WordPress не спешите удалять старую версию. Проведите детальное тестирование:

Поиск битых ссылок

  • Используйте плагин Broken Link Checker или онлайн-сервис Dead Link Checker.
  • Проверьте внутренние ссылки, изображения, CSS и JS-файлы.

Обновление URL
Если домен изменился, замените старые ссылки в базе данных:

В phpMyAdmin выполните SQL-запросы:

UPDATE wp_options SET option_value = replace(option_value, 'старый-домен.ru', 'новый-домен.ru');

UPDATE wp_posts SET post_content = replace(post_content, 'старый-домен.ru', 'новый-домен.ru');

Или используйте плагин Better Search Replace — он безопаснее для новичков.

Настройка редиректов
Добавьте в файл .htaccess правила для 301-редиректа:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^старый-домен.ru$ [NC]

RewriteRule ^(.*)$ https://новый-домен.ru/$1 [R=301,L]

Проверка SSL
Установите сертификат (бесплатный Let’s Encrypt через панель хостинга) и настройте принудительное HTTPS:

В wp-config.php

define('FORCE_SSL_ADMIN', true);

Когда стоит заказать услуги переноса сайта?

Самостоятельный перенос сайта на WordPress возможен, но в ряде случаев лучше довериться профессионалам:

  • Сайт содержит кастомные плагины или сложную архитектуру.
  • Вы переезжаете с другой CMS (Joomla, OpenCart) на WordPress.
  • Нет времени разбираться с техническими нюансами.

Средняя стоимость услуг переноса сайта в России — от 5 000 до 20 000 ₽. В услугу обычно входит:

  • Полный бэкап и проверка на вирусы.
  • Оптимизация скорости работы на новом хостинге.
  • Гарантия бесперебойной работы после миграции.

Но есть компании, которые могут перенести сайт бесплатно и без заморочек

Даже если кажется, что перенос сайта на другой хостинг прошёл успешно, остаются скрытые риски:

  • Кэш браузера и плагинов — очистите его через админ-панель WordPress и в браузере (Ctrl + F5).
  • Обновление DNS-кэша — используйте команду ipconfig /flushdns (Windows) или sudo systemd-resolve --flush-caches (Linux).
  • Мониторинг ошибок 500 — проверьте файл error_log в корневой папке. Частые причины: неправильные права доступа или устаревшая версия PHP.

Помните: WordPress — гибкая система, но её стабильность зависит от аккуратности в деталях. Следуя этому руководству, вы не просто перенесёте сайт, но и заложите фундамент для его роста на новом хостинге. И даже если что-то пойдёт не так — у вас есть резервные копии, а это главный «страховой полис» в мире веб-разработки.

В качестве бонуса: Личный опыт: Как я переносил сайт с Fozzy на Beget

Мой сайт на WordPress уже несколько лет жил на Fozzy (недорогой shared-хостинг), но из-за участившихся простоев и медленной загрузки я решил переехать на Beget. Ожидал, что это займет пару часов, но в итоге процесс растянулся на два дня из-за множества подводных камней.

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

🔹 Подготовка к переезду: Резервное копирование (Fozzy → Локальный ПК)

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

🔸 Копируем файлы через FTP

  • Подключаюсь к Fozzy через FileZilla (логин и пароль от FTP есть в панели управления).
  • Захожу в папку public_html (или www, если сайт в корне).
  • Выделяю все файлы (включая скрытые, например .htaccess).

Ошибка №1: При скачивании больших папок (например, wp-content/uploads) FileZilla зависает.
Решение: Скачиваю архив через панель управления Fozzy (Backups → Создать резервную копию).

🔸 Экспортируем базу данных

  • Захожу в phpMyAdmin (в панели Fozzy: "Базы данных" → "Управление").
  • Выбираю базу данных своего сайта (обычно начинается с u123_).
  • Жму «Экспорт» → «Быстрый» → «SQL» → «Скачать».

Ошибка №2: База большая (более 50 МБ), phpMyAdmin не справляется.
Решение: Использую плагин WP-DB-Backup или командную строку (если есть доступ к SSH).

🔹 Настройка нового хостинга (Beget)

🔸 Создаю аккаунт и базу данных

Регистрируюсь на Beget, захожу в панель.

Создаю новую базу данных (MySQL):

Имя БД: beget_db

Пользователь: beget_db

Пароль: сложный! (лучше сгенерировать)

Ошибка №3: Beget автоматически добавляет префикс beget_ к именам БД.
Решение: Придётся изменить wp-config.php (об этом ниже).

🔸Загружаю файлы на Beget

Подключаюсь к Beget через FTP (данные есть в панели).

Загружаю все файлы в папку public_html.

Ошибка №4: Права доступа (chmod) сбились.
Решение: Вручную выставляю:

Папки: 755

Файлы: 644

wp-config.php: 600 (защита от чтения)

🔹 Перенос базы данных и настройка сайта

🔸 Импортируем базу в Beget

Захожу в phpMyAdmin Beget (в панели: "Базы данных" → "Управление").

Выбираю свою БД (beget_db), жму «Импорт» → «Выбрать файл» (мой .sql).

Ошибка №5: Ошибка #1064 - SQL-синтаксис.
Причина: В файле есть команды, которые не поддерживает Beget (например, CREATE USER).
Решение: Открываю .sql в Notepad++, удаляю лишние строки (всё до первого INSERT).

🔸 Настраиваю wp-config.php

  1. Открываю файл wp-config.php на Beget.
  2. Меняю данные подключения к БД:

define('DB_NAME', 'beget_db');

define('DB_USER', 'beget_user');

define('DB_PASSWORD', 'мой_новый_пароль');

define('DB_HOST', 'localhost');

Ошибка №6: Сайт выдаёт ошибку Error establishing a database connection.
Причина: Beget использует локальный сокет вместо localhost.
Решение: Меняю 'localhost' на:

define('DB_HOST', ':/tmp/mysql.sock');

🔹 Перенастройка домена и SSL

🔸 Меняю DNS-серверы

Иду в панель регистратора домена (например, Reg.ru).

Меняю NS-серверы на Beget:

ns1.beget.com

ns2.beget.com

Ошибка №7: DNS обновляются до 24 часов, сайт временно недоступен.
Решение: Пользуемся временным URL от Beget (вида beget.tech/~sitename).

🔸 Настраиваю HTTPS (SSL)

В панели Beget иду в «Сайты» → «SSL».

Выбираю «Бесплатный SSL от Let’s Encrypt» → активирую.

Ошибка №8: После переезда часть CSS/JS не грузится.
Причина: В базе остались ссылки на http://.

Решение: Делаю замену в БД через phpMyAdmin:

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://', 'https://');

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://', 'https://');

🔹 Финальная проверка и оптимизация

🔸 Проверяю работоспособность

  • Формы (контакты, заказы) — работают?
  • Изображения — не битые?
  • Редиректы — старые URL ведут на новые?

🔸 Чистка кэша

  • Очищаю кэш WordPress (WP Super Cache).
  • Обновляю постоянные ссылки (Настройки → Постоянные ссылки → Сохранить).

🔸 Удаляю старые данные с Fozzy

Только после 100% проверки! Удаляю файлы и БД, чтобы не платить за старый хостинг.

🔹 Что я понял после переезда

Резервные копии — святое (лучше 2 копии: локальная + облако).
Beget строже к настройкам MySQL, чем Fozzy.
DNS-кэш — главный враг быстрого переезда.
Лучше делать переезд ночью, когда трафик минимален.

Теперь мой сайт грузится в 2 раза быстрее, а поддержка Beget отвечает за 5 минут. Если бы я знал все эти нюансы заранее, переезд занял бы не 2 дня, а 3 часа.

Если не уверены в своих силах — закажите услуги переноса сайта у специалистов совершенно бесплатно.

И еще, для тех, кто дочитал: Как я перенёс сайт на WordPress с Shared-хостинга на VPS

Мой сайт на WordPress о путешествиях жил на дешёвом shared-хостинге 3 года, когда трафик перевалил за 15 000 посетителей в месяц, страницы стали грузиться по 8–10 секунд, а в чате поддержки посоветовали «перейти на VPS». Я решился на перенос сайта на VPS самостоятельно, хотя до этого никогда не работал с серверами. Вот как это было, включая все грабли, на которые я наступил.

День 1: Подготовка — «Спасибо, что не удалил старый хостинг»

Перед тем как перенести сайт на WordPress, я прочёл десяток гайдов и решил использовать плагин Duplicator — хвалебные отзывы обещали «миграцию в 3 клика». Установил его, запустил создание пакета... и получил ошибку: «Недостаточно памяти». Оказалось, мой тарифный план хостинга ограничивал оперативку до 256 МБ, а для работы Duplicator нужно 512 МБ.

Решение:

Вручную увеличил memory_limit в файле wp-config.php, добавив строку:

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

Перезагрузил сайт — плагин заработал. Создал архив (1.2 ГБ) и installer.php. Скачал оба файла на компьютер.

Совет: Перед выгрузкой архива проверьте, нет ли в нём «мусора» — старых резервных копий, неиспользуемых плагинов. Я сэкономил 300 МБ, удалив ненужные файлы через FTP.

День 2: Выбор VPS — «Почему все говорят про Nginx и Apache?»

Купил VPS на Ubuntu 22.04 с 2 ГБ RAM и SSD 30 ГБ за $10/мес. Панель управления не взял — решил сэкономить. По гайду установил LAMP (Linux + Apache + MySQL + PHP), но забыл про PHP-расширения для WordPress.

Ошибка: После переноса файлов через FileZilla и импорта базы данных сайт выдавал «Ошибку установления соединения с базой данных».

Причина: В wp-config.php были указаны правильные логин и пароль, но на сервере не стоял модуль php-mysql.

Решение:

Подключился к серверу по SSH:

ssh root@мой-vps-ip

Установил недостающие компоненты:

sudo apt install php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

Перезапустил Apache:

sudo systemctl restart apache2

Важно: Для WordPress 6.0+ требуется PHP 7.4 или выше. Проверить версию можно командой:

php -v

День 3: Перенос файлов — «Где мои фотографии из Бали?»

Через FileZilla загрузил архив Duplicator в папку /var/www/html. Запустил installer.php, указал данные новой базы данных... и увидел сообщение: «Не удаётся распаковать архив».

Причина: На VPS стоял PHP 8.1, а Duplicator не поддерживал новую версию.

Решение:

  1. Перешёл на ручной метод. Распаковал архив сайта локально (использовал 7-Zip).
  2. Загрузил файлы через FTP в /var/www/html, сохранив структуру папок.
  3. Вручную создал базу данных:

mysql -u root -p

CREATE DATABASE new_wp_db;

CREATE USER 'new_wp_user'@'localhost' IDENTIFIED BY 'сильный_пароль';

GRANT ALL PRIVILEGES ON new_wp_db.* TO 'new_wp_user'@'localhost';

FLUSH PRIVILEGES;

  • Импортировал дамп базы:

mysql -u new_wp_user -p new_wp_db < backup.sql

Фейл: После запуска сайта половина изображений не отображалась. Оказалось, файлы из папки uploads имели права доступа 700, а веб-серверу нужно 755.

Исправление:

sudo chmod -R 755 /var/www/html/wp-content/uploads

День 4: DNS и HTTPS — «Почему сайт открывается только у меня?»

Перенастроил DNS домена на новые NS-серверы VPS. Через 2 часа сайт стал доступен... но только у меня. Друзья жаловались на «Сайт не найден».

Причина: DNS-кэш у провайдеров обновляется до 72 часов.

Временное решение:

Добавил в файл hosts на своём ПК (Windows):

123.123.123.123 мой-сайт.ru

Где 123.123.123.123 — IP моего VPS.

Настроил Apache на использование домена:

sudo nano /etc/apache2/sites-available/moy-sait.conf

Прописал:

<VirtualHost *:80>

ServerName мой-сайт.ru

DocumentRoot /var/www/html

<Directory /var/www/html>

AllowOverride All

</Directory>

</VirtualHost>

Включил конфиг и SSL через Certbot:

sudo certbot --apache -d мой-сайт.ru

Ошибка: После включения HTTPS часть CSS «сломалась».

Причина: В базе данных остались ссылки на http://.

Исправление через phpMyAdmin:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://', 'https://');

UPDATE wp_options SET option_value = 'https://мой-сайт.ru' WHERE option_name = 'home' OR option_name = 'siteurl';

День 5: Тестирование — «Почему кнопка «Купить тур» ведёт в никуда?»

После переноса сайта на другой хостинг я обнаружил:

  • Форма бронирования туров (плагин WooCommerce Bookings) не отправляла данные.
  • Кэш Cloudflare показывал устаревшую версию сайта.

Решение:

Очистил кэш Cloudflare в личном кабинете.

Пересоздал постоянные ссылки: В админке WordPress → «Настройки» → «Постоянные ссылки» → кликнул «Сохранить» без изменений.

Обновил .htaccess, добавив правила для WP Rocket:

# BEGIN WP Rocket

RewriteEngine On

RewriteBase /

# Кэширование изображений

<FilesMatch ".(jpg|jpeg|png|gif|webp)$">

Header set Cache-Control "max-age=31536000, public"

</FilesMatch>

# END WP Rocket

Важно: После миграции отключите все кэш-плагины и включайте их по одному, проверяя работу сайта.

Итоги и уроки за 2500 рублей

На перенос сайта на WordPress ушло 5 дней (из них 2 — на исправление ошибок). Что я понял:

  • Не доверяйте «волшебным» плагинам. Duplicator спасёт, только если версии PHP на старом и новом хостинге совпадают.
  • Права доступа — боль новичка. Команда chmod -R 755 стала моей мантрой.
  • VPS без панели — не для новичков. Через месяц я поставил ISPManager за 300 руб./мес. — это сэкономило кучу времени.

Если бы я знал эти нюансы раньше, перенос сайта занял бы 1 день. Но теперь мой сайт грузится за 1.3 секунды, а я чувствую себя повелителем серверов. И да — через неделю я всё же удалил файлы со старого хостинга. Но перед этим сделал ещё один бэкап.

Оцените статью
Хостинг для сайта
Добавить комментарий