#Что происходит и как определить неисправность
После переноса WordPress на другой домен адреса изображений могут оставаться в содержимом записей, метаданных темы и настройках блоков. Простая смена адреса сайта не переписывает старые ссылки во всех полях базы; особенно опасна грубая SQL-замена в сериализованных данных.
#Вероятные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Адреса сохранены в базеАдреса сохранены в базе. В HTML изображения имеют src со старым доменом | В HTML изображения имеют src со старым доменом | Применить безопасную для сериализации замену на копии базы. |
| Статические файлы остались на прежнем хостингеСтатические файлы остались на прежнем хостинге. Новый URL картинки возвращает 404, файл отсутствует в uploads | Новый URL картинки возвращает 404, файл отсутствует в uploads | Перенести нужные медиа и проверить пути. |
| Кеш или CDN хранит старую разметкуКеш или CDN хранит старую разметку. На сервере ссылки новые, но посетитель получает старую HTML-страницу | На сервере ссылки новые, но посетитель получает старую HTML-страницу | Очистить соответствующий слой кеша. |
#Пошаговая диагностика и исправление
- Проверьте источник неправильного адресаОткройте статью и F12 → Сеть, выберите изображение. Посмотрите Request URL, итоговый код 200/301/404 и домен. Если сама разметка HTML содержит старый адрес, проблема не в DNS картинки; если URL новый, но 404 — проверьте файлы.
- Создайте полноценную копию файлов и базыПеред массовым исправлением сохраните wp-content/uploads и дамп базы WordPress. Проверьте, что архив открывается и есть место для восстановления. Изменение адресов в БД нельзя полностью откатить без проверенной копии.
- Проверьте текущие адреса сайтаВ WordPress откройте Настройки → Общие и сравните два поля адреса с новым HTTPS-доменом. Если они переопределены константами WP_HOME/WP_SITEURL, настройку изменяют в wp-config.php; любые правки проводите на копии.
- Найдите несколько старых ссылок в контентеВ редакторе проблемной записи перейдите в режим просмотра кода блока или HTML и посмотрите src. Отдельно проверьте настройки фона темы, логотипа и виджетов. Не меняйте URL руками сразу в сотнях записей: лучше сначала составить выборку.
- Используйте замену, которая понимает сериализациюНа тестовой копии с установленным WP-CLI из корня WordPress выполните пробную команду с --dry-run и исключением guid. Имена old.example и new.example — только образцы, реальные домены подставьте после проверки. Запишите количество найденных совпадений и просмотрите несколько строк.
- Дополнительная команда по темеLinux · Терминал (Bash)КомандаЗапуск WP-CLI из каталога сайта на тестовой копии; версия WP-CLI и доступ к БД должны быть настроены. Только просмотр ожидаемых замен.
wp search-replace 'https://old.example' 'https://new.example' --all-tables-with-prefix --skip-columns=guid --dry-run
- Примените исправление сначала на тестовом сайтеПосле проверки dry-run и резервной копии примените ту же замену без --dry-run только на тестовой копии. Проверьте сериализованные настройки виджетов, блоков, галерей, логотипа и шорткодов. Не выполняйте простую массовую UPDATE ... REPLACE для сериализованных опций.
- Перенесите недостающие медиаПо файловому менеджеру проверьте наличие изображения в wp-content/uploads/YYYY/MM/. Если файла нет, восстановите его из исходной копии с сохранением имени и миниатюр. При необходимости создайте миниатюры штатными средствами WordPress на тестовом сайте; не перезаписывайте пользовательские файлы без копии.
- Очистите только релевантный кешСбросьте кеш WordPress, сервера и CDN для перенесённых страниц, затем проверьте в приватном окне. Если ссылку формирует активная тема/конструктор, найдите её собственную настройку адреса; очистка кеша не заменяет переписывание сохранённых URL.
- Проверка и откатОткройте несколько архивных записей, страницу вложения и галерею. Убедитесь, что все изображения идут с нового домена и отвечают 200 без непредвиденных перенаправлений. При массовой ошибке восстановите базу и файлы из предварительной копии.
#Как проверить результат
HTML содержит новый URL, сами файлы доступны по нему, галереи и миниатюры работают; число старых внутренних ссылок на контентных страницах уменьшается до нуля по проверенной выборке.
#Если не помогло
Если ссылки верны, но изображения не открываются, исследуйте 403/404 и реальные файлы uploads; если ссылки старые только в части шаблонов — проверьте настройки конструктора/темы и кеш.