A ton of hours went into the development of EWWW IO 5.3, even though it seems there is always more to do! There were a ton of enhancements and fixes, and while you can read the changelog for all the detail, I want to highlight a few things I’m particularly excited about.

About that WebP Format…

WebP Logo
Yes, you’re looking at a WebP version of the WebP logo (13kb vs. the 34kb PNG)

Version 5.3 features an oft-requested WebP rewriting mode that allows you to serve WebP images without any JavaScript overhead. This now gives us 4 methods to suit any site:

  1. Easy IO with one-click automatic WebP conversion and delivery.
  2. Server-based rewrite rules (.htaccess) for Apache/Litespeed. Suitable for any site that doesn’t use a CDN, or if your CDN has WebP caching support.
  3. JS WebP Rewriting includes both the original and WebP version in the page, and uses JavaScript to detect which browsers support WebP. Use with our Lazy Load option for best performance, and to avoid layout “jank”.
  4. The newcomer, <picture> WebP Rewriting, includes the original and WebP versions of an image inside a <picture> tag. This allows the visitor’s browser to choose whichever format is best. The only downside to this is that it doesn’t support CSS background images (notoriously added by page builders).

Whichever method you choose, the WebP image format can give a huge speed boost to your site!

Security Updates

But there’s more! Some have noticed our score on the security-scanning site CodeRisk.com, and well… it stinks. Now, to be fair, their scanner can’t distinguish between code that is only accessible to admin-users and public-facing code. In other words, if someone could use EWWW IO as an attack vector, they’ve already hacked your site and you have other problems to deal with.

That said, I carved out the time to analyze every single threat detected by CodeRisk, and implemented counter-measures for everything! A lot of work went into this, and I’m looking forward to seeing our CodeRisk score improve in the future.

Background & Scheduled Optimization

Some of you won’t even notice this, but that’s why I have to talk about it! For most folks, EWWW IO is handling image optimization in the background when you upload a new image. But it’s not very speedy about it. Truth is, the PHP library we use for such things uses some rather slow database queries.

So I rewrote it to use the new queue table that we built for the bulk optimizer, and the days of slow queries are gone. Background optimization is faster and less resource-intensive in 5.3. Plus, you can go to Tools->EWWW Image Optimizer to check the queue status and find some other new gadgets.

This rewrite also opened the door for a revamp of Scheduled Optimization, which is now more reliable, and can keep running forever. Well, unless you shut it off, which is another new trick it learned. If it ever causes trouble, just disable Scheduled Optimization, and it will shut down automatically.

Defer JS?

Now wait, I hear you saying, “I thought this was an image optimization plugin?” To be clear, I have no intention of making EWWW IO into the Swiss army knife of performance plugins. But our Easy IO service already has the ability to deliver and compression JavaScript (JS) and style sheets (CSS). So with the functionality we already had in the Easy IO module, deferring JS was an easy add-on.

This allows anyone using Easy IO to cross one more thing off your to-do list. It’s available in 5.3.1 as the EXACTDN_DEFER_SCRIPTS override.


Like I said, there are a lot of other changes in 5.3, many of which affect our Tools page in the wp-admin, but you can read all about those in the change-log.