Skip to content

WordPress maintenance

WordPress image sizes: why one upload becomes 11 files

In short

WordPress builds a set of resized copies of every upload so pages can load a file near the size they show. On our test store, one 4,000 pixel photo became 11 files: nine sizes, a scaled copy and the original. A 1,800 pixel photo became nine. Themes and plugins can add or remove sizes.

Key points

  • WordPress registers a list of image sizes and cuts a copy of each upload for every size it fits.
  • In our lab a 4,000 by 3,000 photo made 11 files, 1.23 MB in total. A 1,800 by 1,200 photo made 9.
  • Any image wider or taller than 2,560 pixels is scaled down first. The original stays in uploads, with a "-scaled" copy on top.
  • You can remove sizes or move the 2,560 pixel limit with two filters. Change them on purpose, on a copy of the site first.
On this page (8)
  1. Why does WordPress make so many copies of each image?
  2. How many files does one upload make?
  3. What does “-scaled” in a file name mean?
  4. Where do the other sizes come from?
  5. Why does WordPress keep all these copies?
  6. How do you stop WordPress making extra image sizes?
  7. What should you check today?
  8. Questions and answers

Why does WordPress make so many copies of each image?

WordPress image sizes are the reason one upload turns into a small pile of files. Each time you add a picture to the Media Library, WordPress cuts a copy for every size it has registered, so a theme can ask for a file close to the size it shows instead of loading the full photo.

The result is a heavier uploads folder than most owners expect, and it matters for WordPress maintenance because every file is stored and backed up.

How many files does one upload make?

On 13 Oct 2026 we ran a WordPress 7.1.3 test store with WooCommerce 11.2.1 and uploaded a 4,000 by 3,000 pixel JPEG. The Media Library listed it as lab-photo-4000-scaled.jpg, 2,560 by 1,920. The uploads folder held 11 files.

FileSize in pixels
lab-photo-4000.jpg (the original)4000 x 3000
lab-photo-4000-scaled.jpg2560 x 1920
2048×2048 size2048 x 1536
1536×1536 size1536 x 1152
large1024 x 768
medium_large768 x 576
woocommerce_single600 x 450
medium300 x 225
woocommerce_thumbnail300 x 300
thumbnail150 x 150
woocommerce_gallery_thumbnail100 x 100

Six sizes come from WordPress and three from WooCommerce. The 11 files took 1.23 MB. Our test image is random colour blocks, so a real photo will weigh differently, but the count and dimensions carry over.

We then uploaded a 1,800 by 1,200 pixel image. It left nine files, with no -scaled copy and no 2,048 pixel size.

What does “-scaled” in a file name mean?

WordPress 5.3 added a check for oversized photos. The Make WordPress Core note says an image is “big” when its height or width is above a threshold, and that the default is 2,560 pixels.

Above that limit the image “will be scaled down, with the threshold being used as max-height and max-width value.” The scaled copy becomes the largest size pages can use. The original is not thrown away: the core note says it “is stored in the uploads directory” and its name is kept in the image’s metadata under original_image.

That is what our lab showed. The same note says a photo from an average modern smartphone “is easily over 5MB in file size”, which is why the rule exists.

Where do the other sizes come from?

Each size is a name plus a width and a height. WordPress registers thumbnail, medium, medium_large and large. The developer reference for add_image_size() lists those names as reserved. Themes and plugins add their own with the same function, which is how the three WooCommerce sizes arrived on our store.

Our lab also listed 1536x1536 and 2048x2048 as registered sizes. We found no handbook page explaining them, so we only report what the site registered.

Why does WordPress keep all these copies?

Because a page can then ask for the right one. A product grid can use the 300 pixel file, and a post header a larger one, so the 4,000 pixel original is not what every visitor downloads.

The copies are a speed feature that costs disk space. They are not a fault. The cost shows up in storage, in backups, which hold every file, and in moves to a new host, which copy every file.

When a client sends us a slow WordPress site, image sizes are the first thing we check, before the scripts each plugin loads.

How do you stop WordPress making extra image sizes?

There are two filters, both documented in the WordPress developer reference.

To remove sizes, use intermediate_image_sizes_advanced. It “filters the image sizes automatically generated when uploading an image” and receives the list of sizes to be created, so you can take names out of it. For example, a theme that never shows medium_large can drop that size.

To change the 2,560 pixel limit, use big_image_size_threshold. The reference says the threshold is a value in pixels with a default of 2,560, and that “returning false from the filter callback will disable the scaling.” A user note on the reference page says PNG images are not scaled this way, since a scaled PNG can end up larger than the original.

Two cautions. These filters shape new uploads, and we did not test what happens to old images, so try them on a copy first. And if a photographer needs the full-size image on the page, switching scaling off is a call for that site only.

What should you check today?

Upload one test image and look at the files it leaves. A theme or plugin can change the list, so your count may not match ours. Leave the smaller files alone, because pages point at them by name.

Old versions of your posts pile up in the same quiet way, which we measured in how many post revisions WordPress keeps.

If you want help, tell us what your uploads folder looks like and we will check which sizes your site makes and which it uses.

A site that is slow for another reason may have late jobs instead, which we cover in why WordPress shows Missed schedule.

Where did these facts come from?

Questions and answers

Is it safe to delete the extra image files from the uploads folder?

No. Pages point at those files by name, so deleting them by hand breaks images. Change which sizes WordPress makes instead.

Why does my upload have "-scaled" in its name?

The image was wider or taller than 2,560 pixels. WordPress scaled it down to that limit, and the scaled copy became the file your pages use. The original is kept under its own name.

Can I turn off the 2,560 pixel scaling?

Yes. The big_image_size_threshold filter accepts a different number, and returning false switches scaling off. A user note on the reference page says PNG images are not scaled this way.

Does a smaller photo make fewer copies?

In our lab, yes. The 1,800 pixel photo made no 2,048 pixel size and no scaled copy, so it left nine files instead of 11.

Rather hand this to us? See the WordPress maintenance plan