WordPress при загрузке изображений автоматически создает несколько копий разного размера — миниатюры, средние и большие версии, которые используются темами и плагинами. Это удобно, но со временем на сайте накапливается много ненужных файлов, которые занимают место на сервере и могут замедлять бэкапы и работу хостинга.
Почему важно удалять автоматически созданные изображения
Каждое загруженное изображение порождает от 3 до 10 дополнительных файлов в папке uploads. Многие из них не используются, особенно если вы изменяли тему или отключали плагины, которые создавали свои размеры изображений.
Удаление ненужных копий:
- Экономит дисковое пространство.
- Ускоряет операции резервного копирования.
- Облегчает управление медиафайлами.
- Снижает нагрузку на сервер при сканировании медиа библиотеки.
Но удалять нужно аккуратно, чтобы не сломать отображение изображений на сайте.
Как определить, какие изображения безопасно удалить
Для начала полезно узнать, какие размеры изображений создает WordPress и ваша тема. По умолчанию WordPress генерирует размеры thumbnail, medium, large. Темы и плагины могут добавлять свои. Узнать все размеры можно с помощью функции wplab_get_image_sizes():
function wplab_get_image_sizes() {
global $_wp_additional_image_sizes;
$sizes = [];
foreach ( get_intermediate_image_sizes() as $size ) {
if ( in_array( $size, ['thumbnail', 'medium', 'large'] ) ) {
$sizes[$size]['width'] = get_option( $size . '_size_w' );
$sizes[$size]['height'] = get_option( $size . '_size_h' );
$sizes[$size]['crop'] = (bool) get_option( $size . '_crop' );
} elseif ( isset( $_wp_additional_image_sizes[$size] ) ) {
$sizes[$size] = $_wp_additional_image_sizes[$size];
}
}
return $sizes;
}Эту функцию можно вызвать в консоли или вывести на экран, чтобы понять, какие размеры создаются.
Неиспользуемые размеры обычно появляются после смены темы или удаления плагинов. Их можно безопасно удалить.
Плагины для удаления ненужных размеров изображений
Есть несколько проверенных плагинов, которые помогают найти и удалить автоматические копии:
- Regenerate Thumbnails — позволяет пересоздать все размеры по новой и удалить старые. Можно использовать опцию удаления ненужных изображений.
- Media Cleaner — сканирует медиа библиотеку на предмет неиспользуемых файлов, включая автоматические размеры.
- Force Regenerate Thumbnails — быстро пересоздает все Miniatures, удаляя старые версии.
Для примера рассмотрим использование Media Cleaner с параметрами для глубокого удаления.
Пример использования Media Cleaner для удаления автоизображений
Установите плагин с официального репозитория и активируйте. В настройках включите расширенный режим, чтобы плагин проверял все размеры.
Запустите сканирование, после чего Media Cleaner покажет неиспользуемые файлы. Проверьте список и удалите их, освободив место.
Ручное удаление автоматических изображений с помощью WP-CLI
Если вы предпочитаете командную строку, WP-CLI позволяет найти и удалить лишние размеры.
Команда для отображения всех размеров:
wp media regenerate --dry-runЧтобы удалить все автоматические размеры кроме оригинала:
wp media regenerate --yes --skip-originalЕсли нужно удалить только определённые размеры, можно написать кастомный скрипт на PHP, который удалит файлы в uploads по шаблону имен.
Пример PHP-скрипта для удаления автоизображений
function wplab_delete_intermediate_images( $attachment_id ) {
$meta = wp_get_attachment_metadata( $attachment_id );
if ( ! $meta || empty( $meta['sizes'] ) ) {
return;
}
$upload_dir = wp_upload_dir();
foreach ( $meta['sizes'] as $size => $size_info ) {
$file = path_join( $upload_dir['basedir'], dirname( $meta['file'] ) . '/' . $size_info['file'] );
if ( file_exists( $file ) ) {
unlink( $file );
}
}
// Очистка метаданных размеров
unset( $meta['sizes'] );
wp_update_attachment_metadata( $attachment_id, $meta );
}Этот код удалит все промежуточные размеры для конкретного изображения, оставив оригинал.
Как предотвратить создание ненужных размеров в будущем
Чтобы не накапливать лишние файлы, можно отключить создание некоторых размеров через функции темы:
function wplab_disable_image_sizes() {
remove_image_size( 'medium_large' );
remove_image_size( '1536x1536' );
remove_image_size( '2048x2048' );
}
add_action( 'init', 'wplab_disable_image_sizes', 20 );Также можно полностью отключить автоматическое создание размеров кроме оригинала:
function wplab_disable_all_intermediate_sizes( $sizes ) {
return [];
}
add_filter( 'intermediate_image_sizes_advanced', 'wplab_disable_all_intermediate_sizes' );Но будьте осторожны: это может привести к проблемам с отображением изображений, если тема или плагины зависят от этих размеров.
Интеграция с плагином Clearfy Pro для очистки медиа
Пользователи плагина Clearfy Pro могут воспользоваться встроенной функцией очистки и оптимизации медиафайлов. В Clearfy есть инструмент удаления неиспользуемых размеров изображений и оптимизация базы данных, что упрощает задачу.
Чтобы воспользоваться, установите Clearfy Pro, перейдите в раздел медиа оптимизации и запустите проверку. Плагин покажет результаты и предложит удалить лишние копии.
Резюме и рекомендации
Удаление автоматически созданных копий изображений — важная часть оптимизации WordPress-сайта. Это снижает нагрузку на сервер, экономит место и ускоряет работу с медиа.
Используйте следующие шаги:
- Определите, какие размеры создаются и какие используются.
- Удаляйте неиспользуемые копии через плагины или WP-CLI.
- Настройте тему и плагины, чтобы не создавать лишние размеры.
- Для автоматизации и безопасности попробуйте Clearfy Pro.
Такой подход поможет держать медиа библиотеку в порядке и поддерживать производительность сайта на высоком уровне.