Title: Intermediate images
Author: WordPress VIP Documentation
Published: September 10, 2020
Last modified: March 17, 2026

---

 1. [VIP File System](https://docs.wpvip.com/vip-file-system/)
 2. [Image file behavior](https://docs.wpvip.com/vip-file-system/image-files/)
 3. Intermediate images

#  Intermediate images

By default, a set of alternate sizes are generated for images that are uploaded 
to a site’s WordPress media library. These alternate sizes are referred to as “intermediate
images”. WordPress Core defines a default array of intermediate image sizes: `thumbnail`,`
medium`, `medium_large`, and `large`. The pixel dimensions for each of these default
sizes can be defined in [the _Settings –> Media_ screen](https://wordpress.org/support/article/settings-media-screen/)
of the WordPress Admin dashboard.

On a typical WordPress install, intermediate image sizes are generated as separate
files (e.g., `image-150x150.jpg, image-300x300.jpg`).

On the VIP Platform, separate files are _not_ created for intermediate images. Only
the original (`full`) size version of the uploaded file is stored on [the VIP File System](https://docs.wpvip.com/vip-go-files-system/).
The intermediate sizes for an image are [dynamically generated at the time of a request](https://docs.wpvip.com/vip-file-system/image-files/transformations/)(
e.g., `image.jpg?w=150&h=150&crop=1`, `image.jpg?w=300&h=300&crop=1`), and then 
cached by [the edge cache](https://docs.wpvip.com/vip-platform/edge-cache/).

Additional custom intermediate image sizes can be registered for a site with [the `add_image_size()` function](https://developer.wordpress.org/reference/functions/add_image_size/)
in a theme or a plugin.

## Limitations

Because of VIP’s custom method for handling intermediate image sizes, some WordPress
functions will not work as expected.

 * [`get_intermediate_image_sizes()` ](https://developer.wordpress.org/reference/functions/get_intermediate_image_sizes/)
   will always return an empty array.
 * [The WP-CLI command `wp media image-size`](https://developer.wordpress.org/cli/commands/media/image-size/)
   will only return the `full` size of an image, any custom registered image sizes,
   and two [image sizes for higher density devices](https://github.com/WordPress/WordPress/blob/f0352db3e4d83cc266d396d6190e300e2adfe9d6/wp-includes/media.php#L5255-L5273)
   supplied by WordPress Core:  `1536x1536` and `2048x2048`.

## Intermediate image sizes in WordPress templates

Functions such as [`wp_get_attachment_image()`](https://developer.wordpress.org/reference/functions/wp_get_attachment_image/)
or `[the_post_thumbnail()](https://developer.wordpress.org/reference/functions/the_post_thumbnail/)`
can be used to output images of a specific registered image size in a WordPress 
template. For example: `the_post_thumbnail( 'medium' );`.

These functions will not only output an image at a specific size, but will generate
[a responsive `srcset`](https://docs.wpvip.com/vip-file-system/image-files/responsive-images/)
for the image as well.

## Intermediate images in media file imports

When migrating a site to VIP, media files within the `/uploads/` directory for import
usually include separate intermediate image files. Importing all of these files 
might be necessary if post and page content in the imported database contain links
to any of the individual intermediate files (e.g. `/uploads/2022/07/image-150x150.
jpg`). In that case, importing all of the intermediate files can prevent `404`s 
for images in migrated site content.

If links to separate intermediate files do not exist in site content, the intermediate
files can be excluded from the import. This can reduce the overall size of the media
that will be migrated by up to 95% and increase the speed of the import.

Last updated: March 17, 2026