К основному содержимому

Смена домена WordPress: замена URL в базе данных

WordPress · 29.09.2026

Простая замена адреса в настройках WordPress не переносит сайт на новый домен: старый URL остаётся в тысячах записей базы данных, включая сериализованные массивы настроек конструкторов страниц. Разбираем правильный порядок смены домена без поломки вёрстки.

Почему нельзя просто поменять адрес в настройках

Адрес сайта хранится не только в двух полях siteurl и home таблицы wp_options. Ссылки на старый домен разбросаны по содержимому записей, метаполям, настройкам меню и виджетов, а часть плагинов и конструкторов страниц вроде Elementor хранит настройки в виде сериализованных PHP-массивов. Если заменить в них домен обычным поиском-заменой в тексте, длина строки в сериализованных данных не совпадёт с реальной, и PHP не сможет разобрать массив — блоки на странице перестанут отображаться.

Подготовка: бэкап и вычисление объёма правок

Перед любыми правками базы данных сделайте полный бэкап файлов и базы — порядок описан в статье WordPress бэкап: UpdraftPlus и ручной метод. Затем посчитайте, сколько записей содержит старый адрес:

# Посчитать число упоминаний старого домена в базе данных
wp db query "SELECT COUNT(*) FROM wp_options WHERE option_value LIKE '%old-domain.com%'"

Если результат больше нуля хотя бы в одной таблице — обычный SQL-запрос UPDATE опасен, нужен инструмент, который умеет работать с сериализованными данными.

Замена URL через WP-CLI: безопасный способ

Команда wp search-replace умеет находить и корректно пересчитывать длину строк внутри сериализованных массивов — это главное отличие от обычного SQL-запроса:

# Сначала проверить список изменений без записи в базу (dry run)
wp search-replace 'old-domain.com' 'new-domain.com' --dry-run

# Выполнить замену по всем таблицам, включая мультисайт
wp search-replace 'old-domain.com' 'new-domain.com' --all-tables

Флаг --dry-run покажет количество затронутых строк в каждой таблице без реальной записи — обязательно проверьте цифры перед боевым запуском. Полный список похожих команд WP-CLI для работы с базой — в статье Команды WP-CLI: поиск-замена в БД и создание админа.

Что проверить после замены домена

После выполнения search-replace пройдите по контрольным пунктам:

Что проверитьГде смотреть
Изображения и файлы в записяхОткрыть 3-4 старые записи и проверить, что картинки загружаются
Настройки Elementor и других конструкторовОткрыть страницу в редакторе конструктора, а не только на фронте
Меню и виджетыРаздел «Внешний вид → Меню», проверить пункты меню вручную
Постоянные ссылкиНастройки → Постоянные ссылки → Сохранить изменения

Если после замены часть блоков на страницах вообще пропала, а не просто ссылается на старый адрес — вероятно, замена всё же прошла не через search-replace, а обычным SQL-запросом и повредила сериализацию; восстановите базу из бэкапа и повторите шаг с WP-CLI.

Настройка редиректов со старого домена

Даже после полной замены адреса в базе старый домен нужно на время оставить в DNS и настроить на нём редирект 301 на новый адрес — это сохраняет позиции в поиске и не теряет переходы по старым ссылкам из внешних источников. Правило добавляется в .htaccess старого сайта:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L]

Держите редирект активным минимум 3-6 месяцев, пока поисковые системы не переиндексируют ссылки на новый домен.

Чек-лист смены домена WordPress

  • Сделан полный бэкап файлов и базы данных перед началом работ.
  • Замена URL выполнена командой wp search-replace, а не прямым SQL-запросом.
  • Проверены изображения, конструкторы страниц, меню и виджеты.
  • Постоянные ссылки пересохранены в настройках WordPress.
  • На старом домене настроен редирект 301 на новый адрес.
← Назад в базу знаний Задать вопрос поддержке