Manage WordPress Image Sizes and Reclaim Disk Space
WordPress makes 7–12 resized copies of every image you upload—most of which you never use. Disable the dead sizes, delete the orphaned files, and reclaim gigabytes.
Upload one 3 MB photo to WordPress and you don’t get one file—you get seven, eight, sometimes a dozen. Thumbnail, medium, medium-large, large, a scaled copy, plus whatever your theme and plugins decided to register. Now multiply that by every image you’ve ever uploaded. On sites I’ve cleaned up, unused image sizes were quietly eating gigabytes—storage spent generating crops that nothing on the site ever displayed. Here’s how to take back control of what WordPress makes, and delete what it already made for nothing.
The essentials
- WordPress core makes four sizes per upload (thumbnail, medium, medium_large, large), plus a scaled copy—your theme and plugins add more.
- The module lists every registered size (core, theme, plugins) and lets you switch off the ones you never display.
- Register custom sizes (width, height, crop) that also show up in the editor’s image dropdown.
- Regenerate existing thumbnails per-image or in bulk, in batches so the server doesn’t time out.
- Delete orphaned files from disabled sizes to reclaim space, and cap or disable WordPress’s 2560px auto-scaling.
How many image sizes is your site really generating?
More than you think. Core registers four, your theme often adds two or three, WooCommerce brings its own, and some themes register ten or more. It’s entirely normal to have 12+ copies of every single image sitting in wp-content/uploads.
Want the real number? Open your uploads folder and count the files generated from any one photo. Multiply that by your media library size and you have a rough measure of the waste—most of it for sizes no template on your site ever calls.
Here’s where each copy comes from and how to decide whether it earns its place on disk:
| Image size | Where it comes from | When it’s actually used | Keep or cut? |
|---|---|---|---|
| Thumbnail, medium, large | WordPress core | Wherever your theme inserts those sizes | Keep the ones your pages display |
| Medium_large | WordPress core | Often nothing references it | Cut if your site never shows it |
-scaled copy (over 2560px) | WordPress core (since 5.3) | Caps oversized uploads inside content | Cap or disable for print/hi-res work |
| Theme sizes | Your active theme | Depends on the template | Cut the ones no template calls |
| WooCommerce / plugin sizes | Installed plugins | Only if that plugin displays them | Cut when the plugin doesn’t need them |
| Custom size you register | You, in the module | Inserted from the editor dropdown | Add only the ones you’ll use |
How do you manage WordPress image sizes?
Enable the Image Sizes module and it lists every registered size with its source—core, theme or plugin—so you’re deciding with full context. From there you disable the sizes nothing displays, register custom ones, regenerate existing thumbnails in batches, delete the orphaned files left behind, and cap WordPress’s 2560px auto-scaling. Disk space comes back as the dead sizes go.
Activate the Image Sizes module in Blaminhor Essentials. Its settings list every registered size, labelled by where it came from—core, your active theme, or a specific plugin—so you can see the full picture before changing anything.
Every size, its dimensions and where it’s registered—so you disable the dead weight with full context, not guesswork.
Disable the sizes you don’t use
Uncheck a size and WordPress stops generating it for new uploads. If nothing on your site ever displays medium_large, there’s no reason to keep creating it on every upload. Your originals and the sizes you keep are unaffected.
Register custom sizes
Need a 600×400 cropped size for your blog cards? Add it right from the settings page with exact width, height and crop behaviour—and it also appears in the editor’s image-size dropdown, so you can actually insert it into content, not just register it in the background.
Regenerate existing thumbnails
Changing your size settings only affects future uploads, so regenerate the ones you already have to match. You can regenerate a single image from a row action in the Media Library, or select many and use the bulk “regenerate thumbnails” action—processed in batches so a big library doesn’t hit a PHP timeout.
Clean up the orphaned files
This is where the disk space comes back. For sizes you’ve disabled, the module scans your uploads folder and deletes the now-orphaned files. On a site with thousands of images and a handful of unused sizes, that regularly reclaims gigabytes.
Control WordPress’s big-image scaling
Since WordPress 5.3, any image wider than 2560px is automatically shrunk and a -scaled copy replaces your original in content. That’s sensible for most sites, but not if you upload print-ready or high-resolution photography. The module lets you turn that scaling off entirely—or, better, set your own maximum dimension instead of the fixed 2560px, so you keep control of quality without storing needlessly huge files.
The impact
On a typical site with 1,000 images and four unused sizes, you’re storing around 4,000 needless files. Clearing them frees disk space, shrinks your backups, and speeds up any migration or restore. It’s one of those cleanups whose benefit compounds quietly every time the site is copied or archived.
Image Sizes pairs naturally with a database cleanup—together they trim the two things that bloat a WordPress site most: its media folder and its database.
Image Sizes is one of the 20+ tools in Blaminhor Essentials—free and open-source on WordPress.org.
– blaminhor
FAQ
Does disabling image sizes break responsive images (srcset)?
Not if you keep the sizes your theme actually uses. WordPress builds the srcset attribute from the sizes registered for an image, so disable only the ones nothing displays. The sizes you keep still populate srcset normally, and responsive images carry on serving the right file to each screen width.
Do lots of image sizes slow down my site?
Not the page a visitor loads directly—only the sizes your templates call actually get served. The real cost is generation and storage: every upload spends CPU making copies you never show, and they bloat your uploads folder, your backups and every migration. Cutting the dead sizes speeds all of that up.
Which image sizes should I keep and which are safe to delete?
Keep the sizes your active theme and pages actually display—usually a thumbnail, one medium and one large. Safe to cut: medium_large when nothing references it, plus theme or plugin sizes no template calls. When unsure, disable one size, check your pages still look right, then delete its orphaned files.
Will deleting sizes affect already-published posts?
Deleting a size's files only removes those specific crops; your originals and the sizes you kept stay intact. A published post that referenced a deleted size falls back to another size or the full image. Regenerate thumbnails first if you've changed dimensions, then spot-check a few older posts still display correctly.
Is it safe to disable WordPress image sizes?
Yes, as long as you only disable sizes nothing on your site actually displays. Disabling a size just stops WordPress generating it for new uploads; your originals and the sizes you keep are untouched. If you're unsure, disable one size, check your pages still look right, then clean up its old files.
How do I free disk space from unused image sizes?
Disable the sizes you don't use so WordPress stops creating them, then run the cleanup that deletes the orphaned files already on disk for those sizes. On a site with thousands of images and several unused sizes, that routinely reclaims gigabytes and makes every backup and migration faster.
What is the « -scaled » image in WordPress?
Since WordPress 5.3, any image wider than 2560 pixels is automatically shrunk and a « -scaled » copy replaces the original in your content. If you upload print-ready or high-resolution photography you may want the full original kept, or a different cap. The Image Sizes module lets you turn scaling off or set your own maximum dimension.
Comments