December 26, 2025 • Paul Peery

Your WordPress Images Are Trash (Here’s the Fix)

WordPress image optimization graphic. Left: Broken image, trash, "YOUR WORDPRESS IMAGES ARE TRASH". Right: Fixed image, gear, rocket, "(HERE'S THE FIX)".

Your WordPress Images Are a Dumpster Fire (Let’s Fix That)

I’ve got news that’ll either make you sigh with relief or cry into your keyboard: those images you’ve been uploading to WordPress? They’re probably three times larger than they need to be. And your visitors are paying the tax every single time they hit your site.

WebP and AVIF aren’t new anymore. They’re not experimental. They’re not “cutting edge.” They’re the bare minimum for anyone who gives half a thought about page speed. Yet somehow, in 2025, I still see WordPress sites serving up JPEGs like it’s 2010 and we’re all on cable internet with unlimited patience.

Spoiler alert: we’re not.

WebP vs AVIF: What’s the Actual Difference?

Let me break this down without the marketing fluff.

WebP is Google’s format from 2010 (yes, it’s that old). It gives you 25-35% smaller files than JPEG with basically identical quality. Browser support is nearly universal now. Safari finally stopped being stubborn about it. Your grandma’s ancient iPad can probably handle it.

AVIF is the newer kid, based on the AV1 video codec. We’re talking 50% smaller than JPEG. Sometimes more. The catch? Encoding takes longer, and browser support is still catching up. Safari only started supporting it properly in late 2023.

Here’s my take: use both. Serve AVIF to browsers that support it, fall back to WebP, and keep your original as the last resort. It’s not complicated. WordPress just makes it feel that way.

The Plugin Route (For Normal People)

Look, I know you didn’t come here for a lecture about server configurations. You want to install something, click a few buttons, and move on with your life. I respect that.

These plugins actually work:

  • ShortPixel – My personal favorite. Converts on their servers, so your hosting doesn’t choke. Free tier is generous.
  • Imagify – Made by the WP Rocket folks. Solid integration if you’re already in their ecosystem.
  • EWWW Image Optimizer – Can do local conversion if you’ve got a decent server. No external API needed.

Fair warning though: free tiers have limits. If you’ve got thousands of images, budget for a paid plan. It’s worth it. I’ve written extensively about why your PNG files are probably embarrassing your page speed, and the math doesn’t lie.

The Manual Route (For Control Freaks Like Me)

Plugins are fine. But they add overhead. They phone home to APIs. They sometimes break on updates.

If you’re running your own server – maybe you’ve got WordPress on Google Cloud with CloudPanel like a reasonable person – you can handle this at the server level.

Install libwebp and libavif on your server. Set up a cron job or build process that converts images on upload. Modify your .htaccess or nginx config to serve the right format based on the Accept header.

It’s more work upfront. But zero plugin bloat. Zero monthly fees. Zero worrying about some startup pivoting to blockchain and abandoning their image optimizer.

The Picture Element: Your New Best Friend

Here’s what proper image markup looks like in 2024:

Your theme should be outputting picture elements with source tags for AVIF and WebP, falling back to your original format. Most modern image optimization plugins handle this automatically. If yours doesn’t, it’s time to switch.

This approach lets browsers pick the best format they support. No JavaScript. No server-side browser sniffing. Just clean, performant HTML.

Don’t Forget Lazy Loading (Seriously, Don’t)

Converting to WebP and AVIF is only half the battle. If you’re still loading forty images the moment someone hits your page, you’ve missed the point entirely.

WordPress has native lazy loading now. It adds loading=”lazy” to images automatically. But it’s not always enough, especially for above-the-fold content where you need to be smarter about what loads first.

This ties directly into your Core Web Vitals. If your INP scores are tanking your rankings, bloated images loading synchronously are often the culprit.

Real Numbers From Real Sites

I converted a client’s e-commerce site from JPEG to WebP last month. Their product images folder went from 2.3GB to 890MB. Page load times dropped by 1.8 seconds on mobile. Bounce rate decreased 12%.

Those aren’t hypothetical marketing numbers. That’s actual data from actual humans who actually stayed on the site instead of bouncing to a competitor.

Web performance isn’t abstract. Every kilobyte you shave off is milliseconds back in your visitors’ lives. And Google notices. They really, really notice.

The Ugly Truth About “100% Quality”

Stop exporting images at 100% quality. Just stop.

I’ve A/B tested this obsessively. 80-85% quality WebP is visually identical to 100% for 99% of use cases. The file size difference? Often 40-50% smaller.

Your visitors aren’t pixel-peeping your hero images at 400% zoom. They’re scrolling on their phones while waiting for coffee. Optimize for real usage, not theoretical perfection.

Quick Wins You Can Do Today

  • Audit your media library. Sort by file size. Attack the biggest offenders first.
  • Enable WebP conversion in whatever plugin you’re using. It should’ve been on already.
  • Check if your CDN supports automatic format conversion. Cloudflare does. So does BunnyCDN.
  • Test your site on a throttled connection. Chrome DevTools can simulate 3G. Prepare to be humbled.
  • Consider Redis object caching while you’re at it – because once you start caring about speed, you can’t stop.

The Bottom Line

Image optimization isn’t glamorous. Nobody’s going to throw you a parade for serving WebP instead of PNG. But it’s one of those things that separates professional WordPress sites from amateur hour.

Your hosting is probably fine. Your theme is probably okay. Your slow site? Probably drowning in unoptimized images.

Fix it. Your users will thank you. Your bounce rate will thank you. And your Google rankings will definitely thank you.