Как решить проблему нерабочих изображений в WordPress после переездов сайта

Переезд сайта на новый домен или хостинг — частая задача, с которой сталкиваются разработчики и владельцы сайтов на WordPress. Часто после такого перемещения возникает проблема: изображения перестают отображаться. В этой статье подробно разберём причины такой проблемы и предложим практические способы её решения, включая примеры кода и полезные плагины.

Почему не отображаются изображения после переезда WordPress

Основные причины, по которым изображения перестают отображаться, связаны с тем, что в базе данных и файлах сайта остаются старые ссылки на изображения с прежнего домена или пути. Вот самые распространённые причины:

  • Жёстко зашитые URL-адреса старого домена в базе данных.
  • Кэш браузера или плагинов, которые хранят старые данные.
  • Ошибки в файлах .htaccess или в настройках сервера, блокирующие доступ к папке с изображениями.
  • Проблемы с правами доступа к папке uploads.
  • Отсутствие или повреждение файлов в каталоге wp-content/uploads при переносе.

Каждая из этих причин требует своего подхода к решению.

Как массово исправить URL изображений после смены домена

Самый эффективный способ — заменить все старые URL в базе данных на новые. Для этого можно воспользоваться плагинами или сделать это вручную через SQL-запросы.

Использование плагина Better Search Replace

Плагин Better Search Replace позволяет быстро заменить все вхождения старого домена на новый во всех таблицах базы данных.

  • Установите и активируйте плагин.
  • Перейдите в инструмент "Better Search Replace" в админке.
  • В поле "Search for" введите старый URL, например, http://starij-domen.ru.
  • В поле "Replace with" введите новый URL, например, https://novyj-domen.ru.
  • Выберите все таблицы для поиска и замены.
  • Сначала сделайте тестовый прогон с включённой опцией "Dry Run", чтобы увидеть, сколько будет заменено записей.
  • Если всё корректно, выполните замену без "Dry Run".

После этого все ссылки на изображения будут обновлены.

Ручная замена через WP-CLI

Если у вас есть доступ к консоли сервера и установлен WP-CLI, то замену можно выполнить командой:

wp wpelement_replace_urls --old=http://starij-domen.ru --new=https://novyj-domen.ru

Эту команду нужно создавать самостоятельно, например, добавив кастомную команду для WP-CLI, или использовать стандартную:

wp search-replace 'http://starij-domen.ru' 'https://novyj-domen.ru' --all-tables

Это быстро и безопасно, если делать с бэкапом базы.

Проверка и исправление прав на папку с изображениями

Второй частой причиной проблем с отображением является неправильный доступ к файлам изображений.

  • Папка wp-content/uploads должна иметь права не ниже 755.
  • Файлы внутри — права 644.
  • Владелец файлов должен совпадать с пользователем веб-сервера (например, www-data).

Команды для исправления прав и владельца через SSH:

chmod -R 755 wp-content/uploads
find wp-content/uploads -type f -exec chmod 644 {} +
chown -R www-data:www-data wp-content/uploads

После этого сервер сможет корректно отдавать изображения.

Очистка кэша браузера и плагинов кеширования

Иногда изображения не обновляются из-за кэша. Чтобы решить это:

  • Очистите кэш браузера или проверьте в режиме инкогнито.
  • Если используете плагины кеширования, например, W3 Total Cache, WP Super Cache или Clearfy Pro, очистите их кэш.
  • Отключите временно плагин кеширования для проверки.

Для Clearfy Pro очистка кэша осуществляется в разделе "Оптимизация" — "Очистить кеш".

Использование плагина Enable Media Replace для замены повреждённых изображений

Если файлы изображений были повреждены или не подгружаются из-за ошибок при копировании, можно заменить их без удаления из библиотеки.

  • Установите и активируйте плагин Enable Media Replace.
  • Перейдите в "Медиафайлы" и выберите нужное изображение.
  • Используйте опцию "Заменить медиафайл" для загрузки нового файла с тем же именем.

Это удобно, если нужно быстро исправить конкретные изображения.

Автоматизация исправления ссылок с помощью кастомного скрипта

Если вы хотите полностью контролировать процесс, можно написать PHP-скрипт для замены ссылок в постах и мета-полях. Например:

function wpelement_replace_image_urls($old_url, $new_url) {
    global $wpdb;
    // Заменяем в контенте постов
    $wpdb->query($wpdb->prepare(
        "UPDATE {$wpdb->posts} SET post_content = REPLACE(post_content, %s, %s) WHERE post_content LIKE %s",
        $old_url, $new_url, '%' . $wpdb->esc_like($old_url) . '%'
    ));
    // Заменяем в мета-полях
    $wpdb->query($wpdb->prepare(
        "UPDATE {$wpdb->postmeta} SET meta_value = REPLACE(meta_value, %s, %s) WHERE meta_value LIKE %s",
        $old_url, $new_url, '%' . $wpdb->esc_like($old_url) . '%'
    ));
}
// Использование:
wpelement_replace_image_urls('http://starij-domen.ru/wp-content/uploads', 'https://novyj-domen.ru/wp-content/uploads');

Этот код можно добавить в файл functions.php активной темы или в отдельный плагин, запустить один раз и удалить после успешной замены.

Как предотвратить проблемы с изображениями при будущих переездах

Чтобы минимизировать риски:

  • Используйте инструменты миграции, например, плагин WPSHOP Migration с utm_source=wpelement.ru&utm_medium=article&utm_campaign=kak-reshit-problemu-ne-rabochih-izobrazhenij-v-wordpress-posle-pereezdov для корректного переноса файлов и базы.
  • Храните изображения и медиа на относительных путях, а не жёстко с доменом.
  • Регулярно делайте резервные копии сайта, включая папку uploads.
  • Проверяйте права доступа и конфигурации сервера до и после переноса.

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

Как создать динамическую таблицу в WordPress с помощью AJAX
25.12.2025
Как удалить постоянно заблокированные IP-адреса в WordPress
14.04.2026
Как использовать AJAX в WordPress для обновления контента без перезагрузки страницы
05.12.2025
Автоматический импорт данных из внешнего API в WordPress
02.04.2026
Как создать настраиваемую настройку темы WordPress в панели администратора
12.01.2026