После загрузки одного изображения WordPress обычно создаёт несколько производных файлов разных размеров. Они нужны теме, блокам, архивам, карточкам и адаптивной выдаче через srcset. Поэтому папка uploads почти всегда содержит больше файлов, чем пользователь загрузил вручную.
Проблема появляется после смены темы, плагинов или настроек медиабиблиотеки. Новые размеры начинают создаваться только для новых загрузок, а старые attachment остаются со старым набором миниатюр. В результате часть страниц может использовать слишком большие оригиналы, недостающие размеры или файлы, которые больше нигде не нужны.
Откуда WordPress берёт размеры изображений
У WordPress есть стандартные размеры, а тема и плагины могут регистрировать дополнительные через API, например add_image_size(). Когда изображение загружается, WordPress формирует metadata вложения и записывает информацию о созданных производных файлах.
Список зарегистрированных размеров на конкретном сайте важнее любого универсального списка из интернета. На одном проекте может быть пять вариантов, на другом — пятнадцать и больше, особенно если магазин, конструктор страниц и тема создают собственные thumbnails.
Почему много файлов — не всегда ошибка
Несколько вариантов одного изображения позволяют браузеру не загружать огромный оригинал там, где достаточно небольшого файла. WordPress формирует адаптивную разметку с srcset и sizes, чтобы браузер мог выбрать подходящий ресурс под ширину блока и экран устройства.
Поэтому бездумно удалять все файлы с суффиксами вроде -300x300 нельзя. Они могут реально использоваться на фронтенде и экономить трафик. Задача оптимизации — убрать ненужные размеры, а не оставить только оригинал.
Когда нужна регенерация миниатюр
- после смены темы;
- после изменения размеров в настройках или коде темы;
- после добавления нового custom image size;
- когда старые изображения выводятся в неправильном размере;
- когда WooCommerce или другой плагин ожидает новый вариант изображения;
- после исправления некорректной конфигурации thumbnails.
Изменение настроек само по себе не создаёт новые файлы для уже существующей медиабиблиотеки. Поэтому для старых attachment требуется отдельная операция регенерации.
Сначала посмотрите зарегистрированные image sizes
WP-CLI содержит команды для работы с media и позволяет увидеть размеры, которые зарегистрированы на текущем сайте. Это хороший первый шаг перед любой массовой операцией.
Проверка особенно важна после смены темы: старый размер может больше не быть зарегистрирован, а новый уже используется шаблоном. Если сразу запустить очистку без понимания этой разницы, можно удалить файл, на который всё ещё ссылается кастомный код или сохранённая разметка.
Команда wp media regenerate
Официальная команда WP-CLI wp media regenerate пересоздаёт thumbnails для вложений. Её удобно запускать на сервере без ручной установки отдельного плагина и контролировать результат из консоли.
Перед массовым запуском полезно протестировать команду на одном или нескольких ID вложений. Так можно убедиться, что сервер умеет обрабатывать исходные изображения и новые размеры создаются именно так, как ожидалось.
Режим —only-missing
Опция --only-missing позволяет регенерировать только отсутствующие размеры. Это полезно, если добавлен новый image size и нет необходимости заново перерабатывать все уже существующие варианты.
Такой режим обычно создаёт меньше дисковых операций и снижает нагрузку при большой медиабиблиотеке.
Режим —image_size
Если требуется конкретный зарегистрированный размер, можно ограничить регенерацию через --image_size. Это ещё один способ не перерабатывать весь набор изображений без необходимости.
Режим —delete-unknown
Опция --delete-unknown требует особой осторожности: она удаляет производные файлы тех размеров, которые больше не зарегистрированы на сайте. Технически это удобно после смены темы, но использовать её вслепую опасно.
Старый файл может быть вставлен в контент напрямую, использоваться кастомным шаблоном, внешним фидом или сторонним кодом. Поэтому удаление неизвестных размеров стоит делать только после проверки и резервной копии.
Безопасный порядок работ
- Сделать backup базы и каталога
uploads. - Проверить текущие зарегистрированные размеры.
- Определить, какие размеры действительно использует тема и плагины.
- На staging проверить регенерацию нескольких attachment.
- Запустить
--only-missing, если задача только в добавлении новых размеров. - Проверить страницы, архивы, карточки и мобильную версию.
- Только после этого рассматривать удаление старых неизвестных производных файлов.
Регенерация может создать заметную нагрузку
Каждый исходный файл нужно прочитать, декодировать, масштабировать и сохранить. Для нескольких тысяч фотографий это уже серьёзная операция по CPU, диску и памяти.
Если сайт работает на небольшом VPS или shared-хостинге, лучше выполнять работу порциями и следить за свободным местом. Во время регенерации объём uploads может временно вырасти, особенно если старые и новые варианты существуют одновременно.
Почему thumbnails раздувают диск
Допустим, тема регистрирует десять размеров, а в медиабиблиотеке находится пять тысяч фотографий. Теоретически это уже десятки тысяч производных файлов. Реальное число зависит от исходных размеров и условий генерации, но масштаб быстро становится заметным.
Поэтому после нескольких смен темы на старом проекте нередко остаются целые поколения thumbnails, которые текущий фронтенд больше не использует.
Не путайте регенерацию с оптимизацией изображений
Regenerate thumbnails решает вопрос геометрических размеров и набора производных файлов. Он сам по себе не гарантирует хорошее сжатие, современные форматы или правильную стратегию CDN.
Для производительности нужно отдельно смотреть формат изображений, качество сжатия, lazy loading, размеры в реальном layout и способ доставки файлов. Если медиабиблиотека большая, может быть полезен media offload WordPress в Cloudflare R2.
Что проверить на фронтенде после операции
- главную страницу и крупные hero-изображения;
- архивы записей и категорий;
- карточки товаров или портфолио;
- мобильную версию;
- HTML-атрибуты
srcsetиsizes; - отсутствие 404 на картинках;
- визуальную резкость изображений на Retina-экранах.
Когда проблема находится не в thumbnails
Если браузер всё равно загружает оригинал 3000–5000 пикселей в небольшой карточке, проблема может быть в шаблоне: изображение выводится прямым URL без WordPress image functions или без корректного srcset.
В таком случае регенерация создаст нужные файлы, но тема их не начнёт использовать автоматически. Нужно исправлять сам вывод изображения.
Что делать после смены домена или переноса
Если одновременно с работой над изображениями сайт переносился на другой домен, отдельно проверьте URL в контенте и metadata. Для массовой замены адресов лучше использовать корректный сериализационно-безопасный подход, например описанный в статье про WP-CLI search-replace при смене домена.
Практический чек-лист
- не удалять производные файлы только потому, что их много;
- сначала выяснить список активных image sizes;
- для добавления нового размера начинать с
--only-missing; - опасные операции сначала тестировать на staging;
- проверить свободное место и ресурсы сервера;
- после регенерации проверить фронтенд и 404;
--delete-unknownиспользовать только после аудита старых ссылок.
Итог
Миниатюры WordPress — нормальная часть работы медиасистемы, а не мусор сами по себе. Проблема возникает, когда со временем сайт накапливает размеры от старых тем и плагинов или существующие изображения не имеют новых вариантов, которые требует текущий дизайн.
Безопасная регенерация начинается с инвентаризации размеров и backup, затем выполняется контролируемо через WP-CLI и завершается проверкой реального HTML и файлов. Если нужно разобрать медиабиблиотеку, убрать лишнюю генерацию и ускорить сайт без поломки существующих страниц, это можно сделать в рамках доработки WordPress. Связаться с A.S Groups.
Обсуждение
Вопросы и комментарии
Можно уточнить детали статьи или поделиться своим опытом. Первый комментарий проходит проверку.