#Суть неисправности и признаки
После переноса WordPress на другой домен новый адрес открывается, но затем браузер оказывается на прежнем сайте. Иногда это происходит только при входе в /wp-admin/, при открытии внутренних страниц либо после очистки кеша. Причина может находиться в настройках WordPress, плагине, конфигурации веб-сервера или CDN. Сначала найдите, кто именно отдаёт заголовок Location, и исправляйте один источник перенаправления; не запускайте массовую замену ссылок в базе до резервного копирования.
#Почему возникает проблема
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Старые значения home или siteurlПосле переноса в базе остались адреса WordPress и публичного сайта. | Адрес виден в «Настройки» → «Общие», WP-CLI или таблице опций. | Точечно проверить параметры и корректировать только при уверенности. |
| Переопределение в wp-config.phpКонстанты WP_HOME и WP_SITEURL перекрывают адреса в базе. | Поля в админке недоступны для редактирования, старый домен зафиксирован в конфигурации. | Сохранить конфигурацию, обновить значения согласованно. |
| Перенаправление выше WordPressПравило Nginx/Apache, прокси или CDN отдаёт редирект до запуска PHP. | В журнале PHP запроса нет; ответ 301/302 приходит с внешнего уровня. | Найти источник по цепочке HTTP и журналам. |
| Кеш или плагин редиректовВ кеше осталась старая версия ответа или правило миграции. | При обходе CDN или на тестовой копии редиректа нет. | Проверить правило плагина и точечно очистить кеш. |
#Пошаговая диагностика и устранение
- Сохраните адреса и резервную копиюЗапишите старый и новый домены, дату переноса и правильную конечную ссылку, в том числе варианты с www и HTTPS. В панели хостинга создайте резервную копию файлов WordPress и выгрузите базу данных. Проверьте, что резервная копия действительно скачалась и читается. Если не можете восстановить вход в админку, не меняйте адреса без доступа к файлам через панель или SFTP.
- Изучите перенаправление в браузереОткройте новое приватное окно и введите новый адрес. Нажмите F12 → «Сеть», включите Preserve log и повторите загрузку. Найдите первый ответ 301/302/307/308, откройте «Заголовки» и запишите Location. Отличайте редирект от одной обычной ссылки внутри страницы: если сразу перенаправляет корень сайта, проверьте серверные правила и основные адреса WordPress.
- Сверьте основные адреса в WordPressЕсли вход работает, откройте «Настройки» → «Общие». Найдите поля «Адрес WordPress (URL)» и «Адрес сайта (URL)». В обычной установке без отдельного каталога они часто одинаковы, но при установке ядра в подкаталог могут различаться. Сверьте оба поля с планом переноса и не применяйте чужие примеры буквально: потеря правильного пути ядра может заблокировать вход.
- Проверьте wp-config.php без редактированияЧерез файловый менеджер панели или SFTP найдите wp-config.php в корне WordPress. Откройте для просмотра и найдите определения WP_HOME и WP_SITEURL. Если они указаны, они имеют приоритет перед значениями базы и объясняют недоступность полей в админке. Сделайте отдельную копию файла прежде чем заменять только неверный домен; не удаляйте секреты БД или ключи безопасности.
- Если установлен WP-CLI, прочитайте параметры без измененийПодключитесь к серверу по SSH под пользователем сайта, перейдите в каталог WordPress, где расположен wp-config.php, и выполните команды просмотра ниже. Значения должны соответствовать запланированным адресам. Если терминал отвечает «wp: command not found», WP-CLI не установлен: используйте панель и документацию хостинга, не устанавливайте утилиту с неизвестного источника.
- Исправьте только установленную причинуЕсли проблема именно в значениях базы, измените два поля в «Настройки» → «Общие» и сохраните; заранее убедитесь, что новый домен правильно указывает на этот сайт и HTTPS работает. Если неверные WP_HOME/WP_SITEURL прописаны в wp-config.php, исправьте их в копии файла и загрузите проверенный вариант. Если перенаправление создаёт сервер или CDN, работайте в соответствующей панели, а не редактируйте WordPress. После изменения проверьте одну страницу.
- Не ломайте сериализованные данные массовой заменойСтарые абсолютные ссылки в записях, меню и виджетах не равны причине общего перенаправления. Для уже успешного переноса и после отдельной копии БД WP-CLI search-replace может корректно обработать сериализованные значения, но сначала используйте --dry-run. Не запускайте обычный SQL REPLACE по всем таблицам и не меняйте столбец guid: это может повредить метаданные и постоянные идентификаторы материалов.
- Проверьте варианты адреса, кеши и откатОткройте новый домен в приватном режиме, затем /wp-admin/, внутреннюю страницу и новую запись. Проверьте адресную строку после входа. Если браузер продолжает переходить на старый домен, сопоставьте первый Location с журналами веб-сервера и правилами прокси; верните изменённые значения из копий, если переходы стали ошибочными. Очищайте кеш CDN только после устранения источника редиректа.
- Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Как проверить результат и что делать, если не помогло
На правильном домене должны открываться главная, /wp-admin/ и внутренние страницы без перехода на старый хост. Если проблема сохраняется, приложите цепочку Location из браузера, параметры home/siteurl и снимок правил CDN без секретов. Для WordPress Multisite эта процедура не предназначена: структуру доменов сети должен проверить её администратор.