#Суть неисправности и признаки
На сайте WordPress обложка записи или изображение для карточки видно до очистки кеша CDN, а сразу после очистки появляется пустое место, старый URL или ответ 404/403 на файл. Такое поведение не доказывает, что CDN удалил изображение: до очистки он мог отдавать сохранённую копию уже отсутствующего или недоступного файла. Нужно проверить назначение изображения в WordPress, фактическое наличие уменьшенного файла на исходном сервере, ответ CDN и только затем восстанавливать миниатюру. Не следует очищать весь CDN многократно: это увеличивает нагрузку и скрывает первоначальные признаки.
#Почему возникает проблема
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Исходный миниатюрный файл отсутствуетCDN раньше отдавал файл из кеша, а сервер после очистки отвечает 404. | Прямой запрос к исходному серверу и журнал показывает 404 для файла размера -300x300. | Восстановить файл из копии или регенерировать недостающий размер. |
| Файл закрыт для исходящих запросов CDNПроверка hotlink, WAF, неверные правила разрешений или сетевой доступ вызывают 403/5xx. | CDN показывает 403/52x, а оригинал с другого адреса доступен. | Сверить правила выдачи только для конкретного пути, не открывать весь сервер. |
| Не задано избранное изображениеВ карточке записи поле «Изображение записи» пустое либо тема использует другой источник. | URL миниатюры не формируется на исходном сайте, а кеш некоторое время показывал старую картинку. | Выбрать корректный медиафайл и сохранить запись. |
| Неверные адреса после переносаCDN/плагин переписывает изображения на старый домен или HTTP. | В HTML или srcset есть устаревшие ссылки, после очистки они больше не обслуживаются. | Исправить источник URL и проверить преобразование путей. |
| Разные форматы и размеры у оптимизатораОптимизирующий плагин удалил исходный размер или создал ссылку на WebP, которого нет на сервере. | Проблема ограничена конкретным размером/форматом. | Проверить генерацию и правильность перезаписи картинок. |
#Пошаговая диагностика и устранение
- Зафиксируйте конкретную неработающую карточкуОткройте страницу записи, на которой пропала обложка, и сделайте снимок. Нажмите F12 → «Сеть» и перезагрузите страницу, затем отфильтруйте запросы по Img. Найдите отсутствующее изображение, запишите полный URL без секретных параметров и статус 404/403/5xx. Не делайте массовую очистку CDN повторно до выяснения первопричины.
- Проверьте «Изображение записи» в админкеВойдите в WordPress, откройте «Записи» → «Все записи» → нужную публикацию → «Редактировать». В боковых настройках записи найдите раздел «Изображение записи» (в некоторых темах «Избранное изображение»). Убедитесь, что назначен правильный файл; откройте его в «Медиафайлы» → «Библиотека». Если файл вовсе не назначен, выберите существующий оригинал, сохраните и проверьте карточку без очистки всего кеша.
- Определите, существует ли оригинал на сервереЧерез панель файлов найдите wp-content/uploads/год/месяц и файл, соответствующий URL изображения из браузера. Помните, что WordPress может запрашивать производный размер с суффиксом вида -300x300.webp. Проверьте отдельно исходник и нужную уменьшенную копию. Если в кеше файл был, но в каталоге его нет, это не неисправность самого CDN: нужно вернуть файл из резервной копии или восстановить размер.
- Сравните публичный ответ с исходным серверомЧерез панель CDN проверьте для проблемного пути наличие кеша и код ответа источника (origin), если провайдер показывает эти данные. В терминале администратора можно выполнить curl -I на публичный URL и посмотреть HTTP-код, Cache-Control и заголовки кеширования. Не подставляйте в публичные команды авторизационные токены и не публикуйте настоящий внутренний IP. При необходимости попросите хостинг проверить ответ источника непосредственно с его сервера.
- Уточните, какой размер запрашивает темаВ браузере откройте вкладку «Элементы» и посмотрите атрибуты src и srcset у пропавшего изображения. Если браузер выбирает несуществующий промежуточный размер, а полный файл открывается, генерация миниатюр требует проверки. После резервной копии и при наличии WP-CLI можно регенерировать только один идентификатор вложения с --only-missing и --skip-delete; это не исправит неверный домен или 403.
- Проверьте дополнение оптимизации и rewriteВ «Плагины» → «Установленные» определите, есть ли дополнение, которое преобразует изображения в WebP/AVIF, меняет домены или отдаёт картинки из внешнего хранилища. На тестовой копии сравните URL до и после преобразования. Если CDN удалил старый вариант из кеша, а оптимизатор не создал новый на сервере, исправляйте генерацию именно этого размера. Не отключайте весь CDN без плана: это может создать резкую нагрузку.
- Исправьте источник и очистите только нужный файлВосстановите отсутствующий оригинал из резервной копии или сгенерируйте недостающий размер после устранения проблемы с правами/библиотеками. Затем через панель CDN выполните очистку только проблемного URL (если провайдер поддерживает такой режим) и проверьте, что первый запрос получает HTTP 200 и изображение корректного формата. Если есть запрос к ошибочному старому домену, исправьте метаданные ссылок с учётом сериализации и только затем обновляйте кеш.
- Убедитесь, что ошибка не возвращается после повторного холодного запросаОткройте страницу в приватном окне на двух устройствах, обновите несколько раз и убедитесь, что файл возвращает HTTP 200 как из источника, так и после помещения в кеш CDN. Проверьте ещё несколько записей с разными размерами. Если после очистки исчезают многие изображения, остановите массовые операции и передайте провайдеру конкретные URL, коды ответа и время запросов.
- Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Как проверить результат и что делать, если не помогло
Проблема устранена, когда после очистки конкретного URL обложка видна, исходный файл существует, src/srcset указывают на действительные размеры, а источник и CDN не возвращают 404/403. Если «Изображение записи» вообще не назначено, создавать миниатюры бессмысленно — сначала настройте саму запись. Не делайте вывод, что CDN повредил данные без проверки ответа исходного сервера.