Диагностика проблемы с изображениями после миграции WordPress
После переноса сайта на новый домен или сервер часто возникает ситуация, когда изображения перестают отображаться в постах и на страницах. Основные причины — неправильные URL в базе данных, повреждённые пути к файлам или проблемы с правами доступа к директориям. Чтобы убедиться, что именно происходит, выполните следующие шаги:
- Откройте страницу с проблемным изображением, нажмите правой кнопкой и выберите "Открыть изображение в новой вкладке". Проверьте URL изображения — совпадает ли домен с новым?
- Проверьте настройки
wp_optionsв базе данных, особенно значенияsiteurlиhome. - Используйте инструмент браузера (например, Chrome DevTools) для проверки ошибок загрузки изображений (404, 403 и пр.).
- Проверьте права доступа к папке
/wp-content/uploads/и её подкаталогам — обычно 755 для директорий и 644 для файлов.
Пошаговое решение: корректный перенос изображений и обновление ссылок
1. Проверка и обновление адресов сайта
Выполните команду на сервере или используйте phpMyAdmin для проверки значений:
SELECT option_name, option_value FROM wp_options WHERE option_name IN ('siteurl', 'home');Если адреса старые, обновите их:
UPDATE wp_options SET option_value = 'https://new-domain.ru' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://new-domain.ru' WHERE option_name = 'home';2. Поиск и замена URL внутри базы данных
Изображения обычно хранятся с абсолютными ссылками в постах и метаданных. Используйте WP-CLI или плагин Clearfy для безопасного поиска и замены. Пример с WP-CLI:
wp search-replace 'https://old-domain.ru/wp-content/uploads' 'https://new-domain.ru/wp-content/uploads' --skip-columns=guidОбратите внимание на параметр --skip-columns=guid, чтобы не изменять GUID записей.
3. Проверка и восстановление прав доступа к папкам и файлам
Выполните команды через SSH:
find /path/to/wordpress/wp-content/uploads -type d -exec chmod 755 {} \;
find /path/to/wordpress/wp-content/uploads -type f -exec chmod 644 {} \;Убедитесь, что владелец файлов совпадает с пользователем веб-сервера (обычно www-data или apache).
4. Очистка кеша и регенерация миниатюр
Если вы используете кеширующие плагины, очистите весь кеш. Для регенерации миниатюр можно использовать плагин Regenerate Thumbnails или WP-CLI:
wp media regenerate --yesПроверка результата после внедрения
- Откройте несколько страниц с изображениями и убедитесь, что все они загружаются без ошибок.
- Проверьте консоль браузера на отсутствие ошибок сети при загрузке медиафайлов.
- Используйте WP-CLI команду
wp media list --field=url | headдля проверки корректности адресов изображений.
Частые ошибки и как их исправить
- Ошибка 403 или 404 при загрузке изображений — проверьте права доступа и наличие файлов в папке
uploads. - Неправильные URL в базе данных — обязательно используйте специализированные инструменты для поиска и замены, избегайте прямого редактирования через SQL без бэкапа.
- Изображения не отображаются только для некоторых постов — возможно, ссылки хранятся в метаданных или сторонних плагинах, проверьте также таблицу
wp_postmeta.
Практические советы по безопасности и производительности
- После миграции отключите возможность редактирования файлов из админки, добавив в
wp-config.phpстроку:define('DISALLOW_FILE_EDIT', true); - Используйте CDN для хранения и доставки изображений, чтобы снизить нагрузку на сервер и ускорить загрузку.
- Регулярно делайте бэкапы папки
uploadsи базы данных перед миграциями. - Для больших сайтов используйте WP-CLI для массовой замены URL — это быстрее и безопаснее, чем плагины.
Сравнение вариантов обновления URL в базе данных
| Метод | Преимущества | Недостатки |
|---|---|---|
| WP-CLI search-replace | Быстро, безопасно, можно исключать колонки | Требует SSH доступа и навыков работы с командной строкой |
| Плагин Clearfy | Простой интерфейс, дополнительные функции оптимизации | Зависит от версии плагина, нагрузка на сайт при большом объёме данных |
| Ручная SQL-запросы | Прямой контроль над запросами | Риск повредить базу, требует опыт работы с SQL |