WordPress image optimization plugins compared: what each one does and how to choose
An image optimization plugin compresses images, converts them to WebP or AVIF and decides how they are served. Seven compared on where the work is done, what happens to your originals, what the free version stops at and what is left if you remove the plugin.
- By
- WP Ministry
- Published
In short
- WordPress already makes several sizes of each upload, lets the browser pick one, lazy-loads images and accepts WebP and AVIF files.
- It does not convert a JPEG or PNG to WebP or AVIF by default. That, and stronger compression, is what a plugin adds.
- Where the work is done matters most. On your server the images stay at home and the server carries the load. On the maker's servers the load is theirs and an allowance usually applies.
- Some plugins replace your files and keep a backup. Others leave the files alone and store converted copies beside them.
- A free allowance covers every size WordPress makes of an upload, not only the picture you added. Read the current figure on the plugin's listing.
- Run one plugin that compresses, and back up the uploads folder before a bulk run.
An image optimization plugin does up to three jobs. It compresses image files, it converts them to WebP or AVIF, and it decides how the smaller files reach the visitor. Some plugins do that work on your server and some send each image to their maker's servers. One leaves the files alone and serves them from its own network. That difference settles most of the choice.
This page compares seven plugins from the WordPress.org plugin directory. It does not rank them. Which one fits depends on your server, the size of your library and whether the original files must be kept. For sizing, formats and how far to compress, see how to optimize WordPress images without losing quality.
What WordPress does with no plugin
- It makes several sizes of each upload and lets the browser choose. Since WordPress 4.4, the image markup it generates carries
srcsetandsizesattributes. - It scales down very large uploads. Since 5.3, an upload wider or taller than 2,560 pixels gets a scaled copy at that limit. The original file is kept in the uploads folder.
- It lazy-loads. Since 5.5, WordPress adds
loading="lazy"to images that havewidthandheightattributes. A plugin's lazy loading adds to this. It fills no gap. - It accepts WebP and AVIF uploads. WebP since 5.8 and AVIF since 6.5, when the image library on the server supports the format. The smaller sizes are made in the same format as the upload.
- It can resize in the browser. Since 7.1, an image added in the block editor is resized and compressed before upload, in browsers that support this. Otherwise the server does it, as before.
What it does not do by default is turn a JPEG or PNG into WebP or AVIF. A developer can change that with the image_editor_output_format filter. Everyone else needs a plugin.
When no plugin is needed
If you add a few images a month, each already sized for its space and saved in a suitable format, WordPress does the rest. A plugin earns its place when the library is large, when several people upload without resizing first, or when years of old uploads are JPEG and PNG.
How to choose
- Where the work is done. On your server, the images stay at home and the server carries the load of every run. On the maker's servers, the load is theirs, every image leaves the site, and free use is usually counted.
- How the new format is served. Rewrite rules make the web server hand over the WebP or AVIF file while the page's HTML stays the same.
<picture>tags change the HTML to list each format. A CDN address points each image at the maker's network. - What happens to the originals. Some plugins replace your files and keep a backup. Others never touch them and store converted copies beside them.
- What the free version stops at. A monthly allowance, a size limit, a count of visits, or a format kept for paying customers.
The seven plugins side by side
| Plugin | Where the work is done | WebP and AVIF | Originals | Limit on free use |
|---|---|---|---|---|
| EWWW Image Optimizer | Your server, with tools that need PHP's exec() function. If they cannot run, the maker's API | WebP is free. AVIF comes with its paid CDN | Replaced when the result is smaller. Local backups | Lossless compression and WebP. Stronger compression is paid |
| Converter for Media | Your server, with the GD or Imagick extension | WebP is free. AVIF is in the paid version | Not modified. Converted copies go in a separate folder | AVIF is paid |
| Modern Image Formats | Your server, when an image is uploaded | AVIF where the server supports it, otherwise WebP | The uploaded file is kept. The smaller sizes are made in the new format | None named in its listing |
| Imagify | Imagify's servers | Both, in the free plan | Replaced. Backup is on by default and can be restored | A monthly allowance, measured in megabytes |
| ShortPixel Image Optimizer | ShortPixel's servers | Both | Replaced. Backed up on your server and can be restored | A monthly allowance of credits, one for each image or thumbnail |
| Smush | Outside servers, reached through the Smush API | Paid version only | Not deleted. The free version compresses the resized copies | A size limit for each image |
| Optimole | Optimole's cloud, as each image is asked for | Both, chosen for each visitor's browser | Not altered. Image addresses point to its CDN | A monthly count of visits, not of images |
EWWW Image Optimizer
EWWW compresses with tools that run on your own server. Its listing says this needs PHP's exec() function. Where the server cannot run them, EWWW offers lossless JPEG compression and WebP conversion through its own API, also free.
The free version compresses without removing detail and converts to WebP, delivered by Apache-style rewrite rules, by JavaScript or by <picture> tags. AVIF is part of Easy IO, its paid CDN. A bulk optimizer covers the Media Library, the theme and folders you name, and can run from WP-CLI. A file is replaced only when the optimized version is smaller. Local backups are in the free version. It resizes images at upload or in bulk and has lazy loading of its own.
Its listing sets no cap on the number or size of images in free mode, and does not say what is left if the plugin is removed.
It suits an owner who wants images kept on the server, on a host that allows exec().
Converter for Media
Converter for Media converts and leaves the originals as they are. The work runs on your server and needs the GD or Imagick extension with WebP support.
The free version makes WebP, and AVIF is in the paid version. Files are served by rewrite rules, so the listing asks for Apache's mod_mime, mod_rewrite and mod_expires. On nginx the server needs extra configuration. A browser that supports neither format gets the original file. One button converts the whole Media Library, new uploads are converted as they arrive, and WP-CLI can run the job too. Converted files live in /wp-content/uploads-webpc/. The listing mentions no resizing and no lazy loading.
If the plugin is removed, the listing says it removes everything it made.
It suits a site whose images are already sized well and only need a newer format.
Modern Image Formats
Modern Image Formats is made by the WordPress Performance Team and was formerly called WebP Uploads. When an image is uploaded, it makes the smaller sizes as AVIF if the server supports it, and otherwise as WebP. You choose between the two under Settings, then Media. The uploaded file itself stays a JPEG or PNG, and a setting on the same screen makes every size in the original format as well.
It has no bulk run. Images already in the library change only if their sizes are regenerated, with the Regenerate Thumbnails plugin or wp media regenerate. Its listing mentions no resizing, no lazy loading, no paid version and no allowance.
It is one of the feature plugins offered through Performance Lab, whose listing describes the collection as mostly for trying features that may later join WordPress, and tells users to proceed with caution.
It suits a new site that wants every upload in a newer format with no outside service.
Imagify
Imagify is made by WP Media. Each image is sent to Imagify's servers, optimized there and returned. It needs a free account.
WebP and AVIF are both in the free plan. They are displayed with <picture> tags, which is the default, or with rewrite rules. Imagify's documentation says the rules go into .htaccess on Apache and LiteSpeed and are added by hand on nginx, and that <picture> tags cannot reach background images set in CSS. Bulk optimization runs in the background. The original is moved to a backup folder and can be restored. The backup is on by default. Oversized images can be resized to a maximum width you set, up to 2,560 pixels. The listing mentions no lazy loading. Compression is chosen for you, with lossless as an option.
The free plan has a monthly allowance measured in megabytes, and the listing gives the current figure. If you remove Imagify, the listing says your images stay compressed.
It suits an owner who wants few settings.
ShortPixel Image Optimizer
ShortPixel sends each image to its own cloud, downloads the result and replaces the file. It needs an API key, sent by email when you sign up.
It converts to WebP and AVIF. Its documentation gives three ways to deliver them: <picture> tags, rules in .htaccess, or its CDN. Bulk optimization runs in the background or from WP-CLI, and can take in folders outside the Media Library. With the backup option on, originals are kept in a backup folder and can be restored one at a time or in bulk. It can resize large images, and it offers lossy, lossless and a level between them called glossy. Its listing names lazy loading among its features without describing it.
Free use is counted in credits each month, one for each image or thumbnail it shrinks, and the listing gives the current figure. When they run out, optimization pauses until the allowance resets. If you stop using ShortPixel, the listing says images stay optimized unless you restore them.
It suits an owner who wants to pick the compression level and run a large library from the command line.
Smush
Smush is made by WPMU DEV. Its documentation says the Smush API sends images to outside servers, where they are compressed and returned.
Compression is lossless or lossy. The listing says Smush does not delete originals. The free version compresses the resized copies, and full-size compression is part of Smush Pro. So is conversion to WebP and AVIF, served directly, through server rules or through its CDN. The free version optimizes the existing library in bulk and has lazy loading of its own. The documentation describes a backup setting, which has to be on before a bulk run if you want to restore afterwards, and another that resizes large uploads to a size you set.
The free version skips images above a size limit, and the listing gives the figure. It names no monthly allowance, and does not say what is left if the plugin is removed.
It suits a site that wants free compression and lazy loading controls, and has no need to convert formats.
Optimole
Optimole does not change the files on your server. It replaces image addresses in your pages with addresses on its CDN. Each image is then resized, compressed and converted in Optimole's cloud to suit the visitor's screen and browser. WebP or AVIF is sent where the browser supports it.
Your originals are the source and are not altered. Optimole has lazy loading of its own and works through the library in the background. The free plan is limited by visits to your site each month, not by the number of images, and the listing gives the current figure.
The listing says uninstalling restores the site to its original state. Since the files were never changed, the site then serves them as they were. While it is installed, your images depend on another company's network.
It suits a site on a small server whose visitors use many kinds of device.
Which one to use when
- Shared hosting with a small server. Imagify, ShortPixel and Smush compress on outside servers, and Optimole does everything in its cloud. EWWW's local mode needs
exec(), which a shared host may not allow, so ask first. - A large existing library. Count files, not pictures. ShortPixel's listing notes that an image usually has five or more thumbnails and each takes a credit. EWWW and Converter for Media name no allowance for work done on your server, and Optimole counts visits. Where you have WP-CLI, run the bulk job from there.
- A photographer who must keep originals. Converter for Media, Modern Image Formats and Optimole leave the uploaded file alone. With the others, keep the backup option on. Imagify has a lossless mode and does not remove EXIF data. ShortPixel describes its glossy level as made for photographers and can keep EXIF data. EWWW removes metadata unless you switch that off.
- A store with thousands of product images. Every product photo is stored in several sizes, so a monthly allowance goes quickly. Work out the number of files before you choose, and run the bulk job at a quiet hour. How to speed up WooCommerce covers the rest of a store.
- A site already behind an image CDN. If the CDN already resizes and converts images, a second converter adds nothing. Converter for Media's listing says it cannot work when images are served from another server, and Imagify's documentation advises against rewrite rules with Cloudflare or another CDN. Use
<picture>tags there, and purge the CDN's cache after a bulk run. How to set up a CDN for WordPress covers the CDN itself.
Whichever you choose, try it on a few images before the whole library. If you would rather hand the job over, our speed optimization service is a one-time job: you name the pages, and we measure them before the work and again after it.
What not to rely on
- The plugin's backup as your only copy. A bulk run replaces files in the uploads folder. Take a full backup first. See WordPress backup plugins compared.
- Compression to fix the wrong dimensions. A photo far wider than its space is still too large after compression. Resize before you upload.
Common questions
Can I run two image optimization plugins at once?
Not two that compress. Imagify's listing says it will usually shrink images another tool has already compressed, which is a second round of compression on the same picture. A plugin that only converts does a different job, but do not let two plugins serve WebP for the same images.
Will my images go back to the originals if I delete the plugin?
It depends on the plugin. Imagify and ShortPixel both say images stay optimized after the plugin is gone, so restore from the plugin's backup first if you want the originals. Converter for Media removes the copies it made, and your own files were never changed.
I converted everything, so why does the browser still get JPEG files?
Reload the page with the browser's developer tools open and look at the type shown for each image on the Network panel. If it still says JPEG, check for rewrite rules that were never added on nginx, and for a CDN serving its stored copy.
- Cost guideWordPress speed optimization cost: what the job is, what it should include and what moves the price
- GuideHow to clean up and optimize a WordPress database, and what it does for speed
- GuideHow to enable gzip and Brotli compression in WordPress
- GuideHow to fix Cumulative Layout Shift (CLS) in WordPress: find what moves and reserve its space
- GuideHow to fix Interaction to Next Paint (INP) on a WordPress site
- GuideHow to fix Largest Contentful Paint (LCP) in WordPress: find the slow part, then fix it

