PageSpeed Insights keeps flagging your images, and you want smaller files without paying for a service or putting a CDN (content delivery network, a service that serves your files from its own servers) in front of your site. Signing up for a delivery network to shrink a few hundred JPEGs is a bit like renting a warehouse to store one bicycle.
You can convert the images in your Media Library to WebP instead, keep the files on your own host, and serve them from there. The free Robin Image Optimizer plugin does this with no account, no API key, and no cap on how many images you convert.
This guide covers what WordPress does with WebP out of the box, how to convert new uploads and your existing library with Robin, and how to confirm visitors get the WebP files. It closes with an honest limits section on when a different tool fits better.
Let’s convert some images. 👇
⚖️ DISCLAIMER: Robin Image Optimizer is a member of the Themeisle family of products. This tutorial uses the free version from WordPress.org.
Why convert your images to WebP?
WebP is Google’s image format for the web. Lossy WebP files are 25–34% smaller than JPEGs at the same visual quality, and lossless WebP files are 26% smaller than PNGs, in Google’s compression study. WebP supports transparency too, so it can replace most PNGs.
The saving varies from image to image, and you can see each one in your Media Library after converting (Step 5 shows where). Smaller files mean faster pages, and the gap shows most on phones with a weak connection.
Browser support is no longer a concern: 97% of browsers in use display WebP, including Chrome, Edge, Firefox and Safari from version 14.
For more background on the format, see What Is WebP.
What WordPress does with WebP on its own
WordPress has accepted WebP uploads since version 5.8, so you can convert a file on your computer and upload the WebP. It won’t convert your JPEG and PNG uploads for you, and it leaves the images already in your library as they are.
The WordPress Performance Team’s free Modern Image Formats plugin covers new uploads. It creates WebP (or AVIF, when your server supports it) for each image you upload after installing it. To convert older images you have to regenerate them with a tool like Regenerate Thumbnails or WP-CLI, and by default it creates the resized copies in the new format only, with no JPEG fallback.
That’s fine for a new site. A site with years of uploads needs the whole library converted, the originals kept as a fallback, and delivery handled. Robin does all of that.
Step 1: Install the free Robin Image Optimizer plugin
Robin runs on more than 100,000 WordPress sites and has a 4.4 out of 5 rating on WordPress.org.
- In your dashboard, go to Plugins → Add Plugin.
- Search for Robin Image Optimizer.
- Click Install Now, then Activate.

You won’t see a sign-up screen or a key field. A Robin Image Optimizer menu appears in the sidebar.
Step 2: Check the WebP settings
Open Robin Image Optimizer → Settings. A fresh install already has the settings you need switched on:
- Convert Images to WebP creates a WebP copy of each JPG, PNG and GIF.
- Auto optimization on upload handles every new image shortly after you upload it.
- Backup images keeps each original, so you can restore any image later.

Convert Images to AVIF (Pro) sits right below. Leave it off on the free plan.
Robin also compresses the original JPEG or PNG. The default Compression mode is Lossless, which barely changes the file and saves the least. Lossy is the better choice for most sites: on our test site it took ten photos from 1.60 MB to 921.50 KB, 43.7% lighter. Click Save changes at the bottom of the page.
Step 3: Choose how WebP reaches your visitors
Robin saves each WebP next to its original, as photo.jpg.webp beside photo.jpg. Your pages still point to the JPEG, so the plugin has to tell browsers about the new file. The Delivery mode for converted images setting, on the same screen, decides how:
| Delivery mode | Tier | How it works | Best use |
|---|---|---|---|
| Replace <img> tags with <picture> tags (default) | Free | Wraps each image in a <picture> tag that lists the WebP and the original, and each browser picks the format it supports | Most sites, on any host |
| Replace image URLs | Free | Points each image URL at the converted file, including in inline styles | Themes whose layout shifts with <picture> tags |
| Redirection (via .htaccess) | Free | Leaves your pages alone; the server sends the WebP when a browser asks for the JPEG | Apache servers only |
Keep the default <picture> option unless you have a reason to change it. It needs no server setup, works with page caching, and leaves the original in place for any browser that can’t show WebP.
Under the three options, click Test delivery. Robin requests a test image the way a browser would and reports what came back. A green WebP served means the files reach visitors.

💡 PRO TIP: If some images look misaligned after you turn delivery on, your theme’s CSS probably styles the
<img>tag by its exact position. Switch to Replace image URLs and check the page again.
Step 4: Convert the images already in your Media Library
Robin handles new uploads on its own from here. For the images you uploaded before installing it, run a bulk pass:
- Open the Bulk optimization tab and stay on Media library.
- Click Start Optimization.
- Check the counts in the window that opens, then choose Optimize now or Scheduled optimization.

The window lists how many images, thumbnails and WebP conversions are waiting. Filter by upload date lets you start with recent uploads if your library is large.
- Optimize now is the fastest, but the tab has to stay open until it finishes. Close it and the run stops.
- Scheduled optimization works through the library in the background, so you can close the tab and come back later.
A few hundred images? Pick Optimize now and get a coffee. ☕ For thousands, the schedule is easier on you. WordPress runs scheduled tasks when someone visits the site, so on a quiet site the background pass moves slowly.
When the run ends, the dashboard shows the before and after sizes and a log for each image.

Step 5: Check the results
Go to Media → Library and switch to the list view. The Robin Image Optimizer column shows the new file size, the WebP size and the original size for every image.

Some rows will have no WebP size. WebP isn’t smaller for every image, and when the WebP copy would be heavier than the optimized JPEG, Robin keeps the JPEG and serves that. In our test, one of ten photos ended up this way. Each row also has Restore original, if you ever want an image back as it was.
To see what a visitor downloads, open a page in a private window, right-click, choose Inspect, open the Network tab, click the Img filter and reload. The Type column should say webp for converted images.
Seeing jpeg everywhere? Check these first:
- Your page cache. Purge your caching plugin or CDN so visitors stop getting pages saved before the change.
- Background images set in CSS. Hero sections and page builder backgrounds often live in stylesheets, which the <picture> method can’t reach. Replace image URLs covers inline styles.
- Images outside the Media Library. A logo hardcoded in your theme files isn’t in the library, so Robin doesn’t convert it.
What the free version covers, and what Pro adds
| Feature | Free | Pro |
|---|---|---|
| WebP conversion (JPG, PNG, GIF) | ✅ Unlimited | ✅ |
| Compression of new and existing images | ✅ Unlimited, up to 10 MB per file | ✅ |
| Backups and one-click restore | ✅ | ✅ |
| No account, API key or CDN | ✅ | ✅ |
| AVIF conversion | ❌ | ✅ |
| Continuous background processing | ❌ Scheduled runs only | ✅ |
Everything in this guide works on the free plan. The main reason to upgrade is AVIF, a newer image format built on the AV1 video codec. AVIF files are usually smaller than WebP at the same visual quality, so photo-heavy pages get lighter still. They take longer to create, though, and about 96% of browsers display them (Safari only from version 16).
Robin handles that gap for you. With AVIF turned on, the <picture> tag lists AVIF first, then WebP, then the original, and each browser takes the first format it can show. The AVIF vs WebP comparison goes deeper into the two formats.
Robin Pro costs $49 per year and covers up to 50 sites.
Honest limits: when a different tool is the better call
With Robin, your images are stored in your Media Library and served from your own host. The conversion itself runs on Robin’s optimization service: the plugin sends each image there and writes the result back into your library. That’s why it works on cheap shared hosting with no server setup. If your policy says no image may leave your server, pick a plugin that converts locally:
- Modern Image Formats converts new uploads with your server’s own image library. It’s free, but it leaves existing images and delivery fallbacks to you.
- Converter for Media converts to WebP on your server, existing library included, and serves the files through server rewrite rules.
If your visitors are spread across the world, or you need images resized on the fly for each screen, a CDN fits better. Optimole, also from Themeisle, converts and resizes images in the cloud for each visitor and serves them from a global CDN. Our image CDN vs local compression test compares the two approaches.
If you want free WebP files in your own library with the originals kept as a fallback, Robin is the simpler choice. ⚖️
Wrapping up 🏁
The whole process, condensed:
- Install the free Robin Image Optimizer plugin.
- Confirm Convert Images to WebP is on and switch the compression mode to Lossy.
- Keep the <picture> delivery mode and click Test delivery.
- Run a bulk pass on your existing library: Optimize now for small libraries, Scheduled for large ones.
- Check the Media Library column, and purge your cache if visitors still get JPEGs.
For the PageSpeed side of image formats, read the next-gen image formats guide. The image optimizer plugins comparison covers the wider field.
Have you moved your site to WebP yet, or is something holding you back? Tell us in the comments! 💬
FREE GUIDE
4 Essential Steps to Speed Up Your WordPress Website
Follow the simple steps in our 4-part mini series and reduce your loading times by 50-80%. 🚀


















