WPDream

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

Если WordPress начал раздувать папку uploads, почти всегда среди причин есть лишние размеры изображений. При каждой загрузке медиафайла система и тема могут создавать несколько копий одного и того же файла: миниатюры, средние, крупные, а иногда и дополнительные размеры от плагинов. На небольшом сайте это незаметно, но на проекте с активной загрузкой картинок лишние файлы быстро съедают место на хостинге.

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

Откуда берутся лишние копии изображений

WordPress сам создаёт несколько стандартных размеров через настройки медиафайлов. Кроме того, тема может регистрировать собственные размеры через add_image_size(), а плагины — добавлять свои варианты для слайдеров, карточек товаров, лент и виджетов. В результате один JPEG или PNG превращается в набор файлов с разными суффиксами в имени.

Типичная ситуация такая: вы загружаете одну фотографию, а в папке появляются версии вроде -150x150, -300x200, -768x512 и другие. Чем больше изображений на сайте, тем заметнее расход диска. Если сайт давно работает, то старые файлы уже лежат на сервере, а новые продолжают создаваться по тем же правилам.

Сначала проверьте, какие размеры реально нужны

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

Проще всего посмотреть настройки темы и список зарегистрированных размеров через плагин или код. Если у вас есть доступ к файлам темы, можно временно вывести список размеров через wp_get_registered_image_subsizes() или посмотреть, какие размеры зарегистрированы в коде темы и активных плагинов. Если такой проверки делать не хочется, ориентируйтесь на стандартные размеры WordPress и отключайте только те, в которых уверены.

Как отключить стандартные размеры WordPress

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

На практике надёжнее не полагаться только на эти поля, а дополнительно отключить создание ненужных размеров кодом. Так вы контролируете поведение сайта точнее и не зависите от того, что именно делает тема.

Если вы редактируете functions.php дочерней темы или используете небольшой mu-plugin, можно убрать стандартные размеры через фильтр intermediate_image_sizes_advanced. Он позволяет оставить только те размеры, которые действительно нужны.

Пример: если вам не нужны стандартные миниатюры WordPress, но нужен только размер large, можно отфильтровать массив размеров перед генерацией:

add_filter('intermediate_image_sizes_advanced', function ($sizes) {
    unset($sizes['thumbnail']);
    unset($sizes['medium']);
    unset($sizes['medium_large']);
    return $sizes;
});

Этот код отключает создание указанных размеров для новых загружаемых файлов. Он не удаляет уже созданные копии с сервера — только прекращает их дальнейшую генерацию.

Как убрать размеры, которые добавила тема или плагин

Если лишние файлы создаёт не WordPress, а тема или плагин, стандартных настроек обычно недостаточно. В таком случае нужно найти место, где регистрируется размер, и отключить его там же. Ищите вызовы add_image_size() в файлах темы, дочерней темы или плагина.

Когда размер зарегистрирован в теме, самый чистый способ — править дочернюю тему или использовать фильтр, если разработчик его предусмотрел. Если фильтра нет, а размер не критичен, иногда достаточно убрать его из списка через intermediate_image_sizes_advanced. Для этого нужно знать имя размера, которое использует тема.

Например, если тема добавляет размер homepage-thumb, его можно исключить так:

add_filter('intermediate_image_sizes_advanced', function ($sizes) {
    unset($sizes['homepage-thumb']);
    return $sizes;
});

Но здесь есть важный нюанс: если тема уже рассчитывает на этот размер в шаблонах, изображение может начать подгружаться в неподходящем формате. Поэтому сначала проверьте, где именно используется размер, и только потом отключайте его.

Как не создавать лишние размеры вообще, если они не нужны сайту

Если проект простой и вы точно знаете, что дополнительные размеры не используются, можно сократить генерацию до минимума. Для этого отключают не только стандартные размеры, но и промежуточное масштабирование больших изображений, если оно не нужно. Начиная с WordPress 5.3 система автоматически создаёт масштабированную копию очень больших файлов, чтобы не хранить слишком тяжёлые оригиналы в медиа-библиотеке. Это полезно для производительности, но не всегда удобно, если вы хотите жёстко контролировать набор файлов.

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

Если вам нужно убрать автоматическое масштабирование больших изображений, используйте фильтр big_image_size_threshold и верните false:

add_filter('big_image_size_threshold', '__return_false');

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

Что делать со старыми файлами, которые уже лежат на сервере

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

Есть два безопасных пути:

  • удалить старые лишние размеры вручную или через инструмент очистки медиа;
  • сначала сделать резервную копию, а потом массово удалить файлы, которые больше не используются.

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

Как проверить, что лишние размеры больше не создаются

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

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

Что обычно ломают при такой настройке

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

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

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

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее