Upload a single image to WordPress and walk away thinking you have added one file to your server. What actually happened is that WordPress quietly generated three to eight additional copies at different dimensions - and every theme or plugin you add may have added more. Over months and years, this fills your hosting storage with thousands of files you may never use.
Understanding how WordPress handles image sizes lets you take control of your media library, save disk space, and serve the right image size to every visitor.
What Sizes WordPress Creates Automatically
WordPress generates three default image sizes from every upload:
- Thumbnail - 150 x 150 pixels (cropped square by default)
- Medium - up to 300 x 300 pixels (preserving aspect ratio)
- Large - up to 1024 x 1024 pixels (preserving aspect ratio)
Plus the original upload is kept in full resolution.
You can adjust these dimensions at Settings > Media in WordPress admin. If your theme never uses a 150 x 150 square thumbnail, you can disable it entirely by setting both width and height to 0.
How Themes and Plugins Add Their Own Sizes
Your theme's functions.php file (or the functions of a page builder plugin) can register custom image sizes using add_image_size(). Every size registered this way is generated for every image you upload going forward.
Common theme-registered sizes include hero images, card thumbnails, featured post images, and gallery thumbnails. An ambitious theme might register five or six additional sizes. A page builder plugin might add several more. It is not unusual for a fully-loaded WordPress site to generate 8-12 image copies from a single upload.
To see all registered image sizes on your site, the free Media Cleaner or Regenerate Thumbnails plugins will display the full list - including sizes registered by themes and plugins - during setup.
The Problem After a Theme Change
When you switch themes, the new theme registers its own set of image sizes. But WordPress does not automatically regenerate your existing uploaded images in the new sizes. Any image uploaded before the theme change exists only in the old theme's sizes - the new theme's required sizes are missing, often resulting in incorrectly sized or stretched images in templates.
The fix is the Regenerate Thumbnails plugin. After a theme change, install and run it. It goes through your entire media library and regenerates all image files to match the currently registered sizes. For large media libraries, this process can take several minutes to an hour, but it is essential for consistent image display after a theme switch.
How to Disable Unused Image Sizes
Generating image sizes you never use wastes disk space and processing time on upload. There are two approaches to disabling them:
For default sizes - Set the width and height to 0 at Settings > Media. WordPress will skip generating that size.
For theme and plugin sizes - Use the free Imagify or EWWW Image Optimizer plugin, both of which include settings to disable specific registered image sizes. Alternatively, add a filter to your child theme's functions.php to unset specific sizes:
add_filter( 'intermediate_image_sizes_advanced', function( $sizes ) {
unset( $sizes['medium_large'] );
return $sizes;
} );
Cleaning Up Old Unused Image Files
Disabling a size stops future images from generating that copy, but the old files already on your server remain. Tools like Media Cleaner can identify image files in your uploads folder that are not referenced by any attachment record - which often includes orphaned size copies from removed themes and plugins.
Be cautious when deleting files. Always run a full backup before bulk-deleting from your media library. Some images referenced in page builder layouts or hardcoded in HTML may not show up as "attached" in WordPress's media relationship table even though they are actively in use.
Keep the Original, Serve the Optimized Version
WordPress keeps the original upload regardless of size settings. This is intentional - the original is the source from which all other sizes are generated. When you change size settings or run Regenerate Thumbnails, WordPress uses those originals.
For serving optimized versions to visitors, pair your media management with an image optimization plugin (ShortPixel, Imagify, or EWWW) that compresses generated sizes and, where possible, converts images to WebP format for modern browsers. WebP images are typically 25-35% smaller than equivalent JPEGs at the same visual quality - a meaningful bandwidth and load time saving for image-heavy sites.
Managing WordPress image sizes properly is a one-time setup task that pays ongoing dividends in storage efficiency and site performance.

