Чтобы перенести WordPress на другой хостинг, нужно скопировать файлы и базу данных, настроить подключение к новой базе и проверить сайт на новом сервере. Домен переключают после проверки. Если адрес сайта остаётся прежним, менять ссылки в базе обычно не нужно.
Ниже — порядок для обычного сайта WordPress. У магазина к нему добавляется отдельная задача: сохранить заказы, которые поступают во время переезда. Для WordPress Multisite нужен план с учётом всей сети; эта инструкция рассчитана на одиночную установку.
Что подготовить до переноса
- Доступ к файлам и базе старого хостинга, панели нового хостинга и управлению DNS домена.
- Список версий PHP, расширений, активных плагинов и внешних подключений: почты, оплаты, CRM.
- Место для резервной копии вне публичной папки сайта. Проверь, что архив и SQL-файл скачиваются и имеют ненулевой размер.
- Список страниц и действий для проверки: вход, поиск, форма, корзина, оформление заказа.
Не совмещай переезд с обновлением всех плагинов, сменой темы и переходом на другую версию PHP. Если после нескольких изменений возникнет ошибка, искать причину сложнее. Сначала перенеси рабочую конфигурацию в совместимое окружение, затем планируй обновления.
Скопируй файлы и базу данных
В файловом менеджере или по SFTP скачай файлы установки WordPress, включая wp-content, wp-config.php и скрытые файлы, например .htaccess. Проверь, нет ли загрузок в нестандартном каталоге или внешнем хранилище. Настройки nginx и задания cron могут находиться вне папки сайта — их переносят отдельно.
Базу экспортируй через панель хостинга или phpMyAdmin в SQL. Для крупной базы удобнее инструменты хостинга или SSH: браузерный экспорт может оборваться по тайм-ауту. Сохрани файлы и базу одного этапа работ, чтобы записи о загруженных изображениях соответствовали самим изображениям.
На новом хостинге создай отдельную базу и пользователя, импортируй SQL и загрузи файлы в каталог нужного домена. В wp-config.php укажи новые параметры DB_NAME, DB_USER, DB_PASSWORD и DB_HOST. Адрес сервера базы бери из панели: это не всегда localhost. Сам файл конфигурации и дамп не отправляй в публичные чаты.
Префикс таблиц в настройке $table_prefix должен соответствовать импортированным таблицам. Если вместо сайта открывается установка WordPress, остановись: проверь базу и префикс, не создавай поверх неё новый сайт. При сообщении о недоступной базе начни с проверки подключения, а не с повторного импорта.
Проверь сайт до переключения DNS
Попроси хостинг дать способ предварительной проверки. Один из вариантов — временно сопоставить домен с IP нового сервера в файле hosts на своём компьютере. Тогда браузер будет обращаться к новой копии под привычным адресом. После теста запись нужно убрать. Для HTTPS на новом сервере нужен подходящий сертификат; отключать проверку сертификата для посетителей нельзя.
Технический домен тоже подходит для тестирования, но абсолютные ссылки могут возвращать на старый сайт. Поэтому по одному открывшемуся первому экрану нельзя понять, что перенос завершён. Проверь, какой сервер обрабатывает запросы, и пройди весь пользовательский сценарий.
Закрой тестовую копию паролем или ограничением доступа. Отключи на ней реальные платежи, рассылки и автоматический обмен с внешними системами. Одной настройки «попросить поисковые системы не индексировать сайт» для ограничения доступа недостаточно.
Если одновременно меняется домен
При новом адресе недостаточно поправить только настройки WordPress: старый домен может остаться в контенте и параметрах плагинов. Не заменяй его обычным поиском по SQL-файлу: часть значений хранится в сериализованном виде. Для этой задачи подходит WP-CLI с обработкой таких данных. На копии сайта сначала выполни пробный запуск:
wp search-replace 'https://old.example' 'https://new.example' --all-tables-with-prefix --skip-columns=guid --dry-run
Команда запускается из каталога установки, где доступен WP-CLI. Подставь свои адреса и проверь отчёт, а также состав таблиц с этим префиксом. После резервного копирования повтори команду без —dry-run. GUID оставь без замены. HTTP, HTTPS и вариант с www могут потребовать отдельных проверок. Поля, заданные константами в wp-config.php, команда не перепишет.
Для переезда на новый домен дополнительно составь соответствие старых и новых страниц, настрой постоянные редиректы и обнови адреса в подключённых сервисах. Не перенаправляй все старые страницы на главную: посетителю нужна соответствующая страница.
Переключи домен и сохрани новые данные
У сайта с заказами заранее согласуй короткое окно без записи новых данных: приостанови оформление заказов и правки контента, сделай финальную копию базы и недостающих загрузок. Простое восстановление вчерашней базы потеряет сегодняшние заказы. Для проекта, который нельзя останавливать, потребуется отдельная схема синхронизации.
В DNS поменяй только записи, относящиеся к сайту. Проверь и A, и AAAA: оставшаяся запись IPv6 может вести часть посетителей на старый сервер. При смене DNS-серверов нужно перенести всю зону, включая почтовые MX и TXT. Не удаляй старый хостинг сразу: некоторое время запросы могут попадать на обе копии из-за кеширования DNS.
Что проверить после переноса
- Главная, внутренние страницы, изображения и файлы открываются по HTTPS.
- Вход в админку работает, обычные ссылки не возвращают 404. На Apache проверь правила постоянных ссылок, на nginx — конфигурацию сервера.
- Форма не просто показывает сообщение об успехе: тестовая заявка действительно дошла.
- У магазина проверены корзина, доставка, тестовая оплата и обработка уведомления платёжного сервиса.
- Работают задания по расписанию, аналитика и внешние интеграции.
- На публичной копии сняты временные ограничения индексации, а тестовая остаётся закрытой.
Если переезд сорвался, возврат DNS сам по себе не объединит данные двух копий. Перед откатом выясни, где появились новые заявки и заказы. Старую копию отключай после проверки работы и сохранения актуального бэкапа.
Если после переноса вместо страницы появилась PHP-ошибка, пригодится инструкция по критической ошибке WordPress.
Перед переездом сделай полную копию по инструкцией по резервным копиям WordPress. Если после переноса сайт пишет об ошибке подключения, используй разбором ошибки соединения с базой данных, а работу форм проверь по разбором проблем с отправкой писем.