Как отловить и убрать 404 на изображениях в WordPress

404 на изображениях в WordPress обычно появляются не из-за одной ошибки, а из-за цепочки мелких проблем: файл удалили вручную, картинку подменили в медиатеке, тема тянет старый размер, а в контенте остались абсолютные ссылки на старый домен или CDN. В итоге страдают и пользователи, и логика индексации, и отчёты в Search Console.

Если на сайте уже есть поток контента, искать такие ошибки вручную бессмысленно. Нужен короткий процесс: сначала найти источник битых URL, потом исправить массово, затем закрыть дыру на уровне шаблонов и загрузки медиа.

Как понять, что проблема именно в изображениях

Первые признаки обычно видны без инструментов: в карточках записей пустые превью, в редакторе часть медиа не открывается, а в логах сервера повторяются запросы к /wp-content/uploads/... с ответом 404. Но важно отличить удалённый файл от неверной ссылки.

Что проверить в первую очередь

  • Откройте проблемную страницу и посмотрите, грузится ли изображение напрямую по URL из HTML.
  • Проверьте медиатеку: файл может быть на месте, а ссылка в записи — старой.
  • Посмотрите отчёт 404 в плагине логирования или в логах веб-сервера.
  • Если используется CDN, проверьте, не осталась ли ссылка на старый домен или старый путь.

Если 404 идут только на старые размеры вроде -768x512 или -scaled, проблема часто в том, что тема или контент ссылаются на несуществующий размер, который был удалён после смены настроек изображений.

Диагностика: где искать источник битых ссылок

Самая частая ошибка — искать только в базе постов. На практике изображения могут быть прописаны в нескольких местах: в post_content, в метаполях страницы, в настройках темы, в виджетах и в блоках редактора. Если сайт старый, часть ссылок может жить в старых шорткодах или в HTML, вставленном вручную.

Для быстрой проверки удобно выгрузить список URL изображений и прогнать его через поиск по базе. Если есть доступ к WP-CLI, это делается быстрее всего.

wp db search 'wp-content/uploads' --all-tables --format=table

Команда покажет, в каких таблицах встречаются ссылки на uploads. Это не заменяет полноценную проверку, но быстро подсказывает, где искать: в постах, метаданных или настройках.

Если WP-CLI недоступен, можно использовать поиск по базе через phpMyAdmin, но тогда важно не править данные вручную без бэкапа. Для массовых замен лучше сначала сделать экспорт таблиц, а уже потом менять ссылки.

Пошаговое решение: от массовой замены до защиты шаблонов

Ниже рабочая схема, которая подходит для большинства сайтов на WordPress.

Шаг 1. Найдите и замените старые URL

Если изображения переехали на новый домен, CDN или в другой каталог, сначала замените старые адреса на новые. Делать это нужно аккуратно: обычный SQL UPDATE может сломать сериализованные данные. Безопаснее использовать инструмент, который понимает структуру данных WordPress.

Если нужен именно CLI-вариант, используйте wp search-replace с режимом dry-run перед реальной заменой:

wp search-replace 'https://old-site.ru/wp-content/uploads' 'https://new-site.ru/wp-content/uploads' --all-tables --dry-run

Если результат выглядит нормально, запускайте без --dry-run. Перед этим обязательно сделайте резервную копию базы.

Шаг 2. Проверьте вложения в медиатеке

Иногда файл в базе есть, а физически его нет. Такое бывает после ручной очистки uploads, миграции без медиа или сбоя синхронизации с облачным хранилищем. В этом случае замена ссылок не поможет: нужно восстановить файл или заменить его в записи.

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

Шаг 3. Исправьте шаблоны темы и блоки

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

Пример безопасной проверки: сначала убедитесь, что размер существует, а потом выводите его с fallback на стандартный размер.

if ( has_post_thumbnail() ) {
    the_post_thumbnail( 'medium_large' );
}

Если вы используете кастомный размер, проверьте, что он зарегистрирован через add_image_size() и не удалён после обновления темы.

Шаг 4. Закройте повторное появление 404

Когда источник найден, важно не только исправить текущие ссылки, но и убрать причину повторения. Для этого проверьте:

  • не удаляются ли изображения вручную из uploads без замены в контенте;
  • не меняется ли структура URL после миграции;
  • не генерирует ли плагин оптимизации новые размеры, которые потом удаляются;
  • не тянет ли тема старые пути к логотипу, иконкам или фоновым изображениям.

Если сайт регулярно публикует AI-контент через WPGPT, полезно сразу задать правило: изображения вставляются только через медиатеку WordPress, а не через жёстко прошитые внешние URL. Тогда при переносе сайта или смене CDN исправлять ссылки будет проще. Для редакционных потоков это особенно важно: AI-текст может быть быстро обновлён, а битая картинка останется в индексе и в кеше надолго.

Как проверить, что решение сработало

Проверка должна быть не визуальной, а технической. Откройте несколько проблемных страниц и убедитесь, что изображения отдают статус 200, а не 404. Если есть доступ к терминалу, можно быстро проверить конкретный URL через curl:

curl -I https://example.ru/wp-content/uploads/2026/01/image.jpg

В ответе должен быть HTTP/2 200 или HTTP/1.1 200 OK. Если видите редирект на несуществующий путь или 404, проблема ещё не закрыта.

Дополнительно проверьте:

  • отчёт 404 в логах сервера за последние дни;
  • страницы в Search Console, если они уже успели попасть в ошибки сканирования;
  • кеш-плагин и CDN: старый битый URL может продолжать отдаваться из кеша.

Сравнение подходов: плагин, код или ручная правка

ПодходКогда подходитМинус
Плагин для поиска и заменыМиграция, смена домена, массовые старые ссылкиНужно проверять сериализованные данные и делать бэкап
Код в теме или дочерней темеОшибка в шаблоне, старый размер изображения, логотип, фонТребует доступа к коду и понимания, где именно сломан вывод
Ручная правка в записиОдна-две проблемные страницыНе масштабируется и легко пропустить дубли

Если задача не разовая, а сайт регулярно растёт, лучше сразу выстроить процесс через медиатеку, шаблоны и проверку ссылок после публикации. Ручная правка годится только как временная мера.

Частые ошибки и как их исправить

Удалили файл, но не заменили ссылку в контенте

Это классический случай. Файл исчезает из uploads, а HTML в записи остаётся прежним. Исправление простое: восстановить файл из бэкапа или заменить URL в базе через безопасный search-replace.

Меняли домен или CDN без массовой замены

После миграции старые абсолютные ссылки продолжают вести на прежний адрес. Особенно часто это видно в старых записях и в блоках, вставленных как HTML. Решение — массовая замена с проверкой dry-run.

Сломались размеры изображений после обновления темы

Тема перестала регистрировать старый размер, а контент всё ещё на него ссылается. Здесь нужно либо вернуть размер в код, либо пересоздать миниатюры и обновить вывод в шаблоне.

Кеш скрывает проблему

Иногда изображение уже исправлено, но CDN или кеш-плагин продолжает отдавать старый 404. Очистите кеш на всех уровнях: плагин, сервер, CDN, браузер.

Практические советы по безопасности и производительности

Любая массовая операция с медиа и базой должна идти после резервной копии. Это не формальность: при неудачной замене URL можно повредить не только картинки, но и настройки темы, виджеты и данные плагинов.

Для производительности полезно периодически проверять, не создаёт ли тема лишние размеры изображений. Чем больше промежуточных файлов, тем выше шанс получить мусор в uploads и случайные 404 после чистки. Если используете плагины оптимизации, не удаляйте размеры, которые реально выводятся в шаблонах.

Если в проекте есть AI-поток контента через WPGPT, удобно сразу встроить контроль качества: перед публикацией проверять, что все изображения добавлены через медиатеку, а не вставлены внешним URL. Это снижает риск битых ссылок после переноса сайта и упрощает поддержку.

Когда проблема повторяется регулярно, имеет смысл подключить инструменты для технической чистки сайта и контроля дублей, например Clearfy Pro, но только как часть процесса, а не как замену диагностике. Сам по себе плагин не угадает, почему конкретный URL стал 404.

Короткий чек-лист перед публикацией

  • Проверить, что изображение открывается по прямому URL.
  • Убедиться, что в записи нет старых абсолютных ссылок.
  • Очистить кеш WordPress, сервера и CDN.
  • Проверить, что тема использует существующий размер изображения.
  • Сделать повторную проверку через curl -I или браузерный инспектор.

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

Как закрыть от индексации страницы поиска WordPress и убрать мусорные запросы из SEO
25.08.2026
Как закрыть дубли страниц от индексации в WordPress через robots.txt и noindex
19.08.2026
Как отключить XML-RPC в WordPress и не сломать мобильные приложения и внешние сервисы
27.08.2026
Как убрать дубли страниц из XML sitemap в WordPress
12.09.2026
Как настроить robots.txt и noindex для страниц автора в WordPress
27.08.2026