Skip to main content

False Promises of WebP Support

By Jason Grigsby

Published on February 19th, 2025

Topics
A cartoon figure looks inquisitively at a milk carton, which includes a notice that the WebP image format is missing.

Two of our clients with websites on different platforms have encountered the same problem: their hosting provider says they automatically converts images to WebP, but we never see any WebP images. In both cases, this is due to a Cloudflare Polish configuration setting.

The two hosts in question are BigCommerce and WP Engine. In BigCommerce’s defense, they don’t publicly promote WebP support, but support threads from knowledgeable partners made it seem like automatic WebP support was expected. On the other hand, WP Engine has an entire knowledge base article about WebP wherein they say:

If you are using WP Engine’s Global Edge Security or advanced network, Cloudflare Polish is enabled by default. This means your site will use WebP images automatically, without any additional configuration steps.

Unfortunately, this is untrue. Or rather, it is technically true, but it is extremely unlikely Cloudflare Polish will ever automatically convert an image to WebP because of the way WP Engine has Polish configured.

Cloudflare Polish advertises itself as a “one-click image optimization product.” It does some nice things like removing meta-data from images, setting caches, and converting images into WebP format.

Like most “one-click” solutions, it’s missing features that I think are necessary for a responsive images solution (e.g., resizing images based on URL parameters and AVIF support), but I can understand the appeal of Polish for many organizations and especially for hosting providers who can speed up their client sites without asking the website owners to update their code.

When Cloudflare Polish encounters an image, it evaluates whether converting the image to WebP format will result in a smaller file size. If it does, it converts the image on-the-fly and the end user is none-the-wiser. You can only tell the image has been converted by looking at the image type in the browser’s developer tools.

So why isn’t Cloudflare Polish automatically converting images to WebP for BigCommerce and WP Engine customers? It is because they have Polish’s lossless compression option turned on.

Most image formats trade image quality for smaller file sizes. When they do this, it is called a lossy compression. In JPEG, you can set the quality you want. The lower the quality setting, the smaller the file will be.

While lossy image formats are most common—particularly for photographs—there are formats like TIFF which are lossless image formats. PNG and WebP support both lossy and lossless formats. PNG24 and PNG32 are both lossless. Whereas PNG8 was designed to replace GIFs and thus is lossy. WebP doesn’t have different names for the lossy versus lossless formats, but it does support them.

By now you may have figured out where the problem lies. If Polish’s lossless option is turned on, it is unlikely that images uploaded in any lossless format (e.g., JPEG) will ever be smaller when converted to lossless WebP. In fact, Cloudflare’s documentation says:

The Lossless option prevents conversion of JPEG to WebP, because this is always a lossy operation.

I contacted BigCommerce and WP Engine to find out if the lossless option was turned on for their implementations. BigCommerce confirmed it in a support ticket. WP Engine support pointed me to their documentation for their advanced network which says it includes “Cloudflare Polish lossless image compression.”

The main promise of Cloudflare Polish is that it is a “one-click image optimization product that automatically optimizes images.” But if the lossless setting is on, the amount of optimization that Polish can do is minimal. Removing meta data and setting caches won’t make a big difference in image file size. Converting an image to lossy WebP can make a big difference.

BigCommerce and WP Engine customers would benefit greatly from turning off Cloudflare Polish’s lossless setting.

While flipping the switch to turn off the lossless option is at most a five-minute task, I can understand why BigCommerce and WP Engine might be reluctant to do so. That one switch will affect every customer. I believe it will be a positive change, but any change that affects all customers will inevitably upset some.

So if they are unable to turn off the lossless option, then they need to stop claiming to support WebP. In particular, WP Engine’s knowledge base article on WebP is at best misleading, and at worst, completely wrong given Cloudflare’s documentation on how Polish behaves when lossless is turned on.

If I had only encountered this on one hosting provider, I wouldn’t have written about it. But now that I’ve seen two providers with this problem, I wondered how many others might be impacted.

It is easy to imagine a hosting provider signing up for Cloudflare, thinking they were getting WebP support, and never realizing that their settings are preventing images from getting converted.

Because Cloudflare is supposed to only convert images if the file size is smaller, the problem can be easy to miss. In fact, when I contacted support at both companies, the initial response I received was that images weren’t getting converted to WebP because Polish found that the file sizes weren’t smaller.

If you’re on another hosting provider and they use Cloudflare Polish, you may want to make sure that your images are actually getting converted to WebP.

Perhaps the implementors at BigCommerce and WP Engine both made mistakes and these are isolated cases. I can’t tell. But I do wonder if Cloudflare might share part of the blame here.

  • Does Cloudflare Polish default to lossless compression? If so, should it?
  • Should Cloudflare actively discourage the lossless option? Frankly, Polish with lossless turned on is kind of pointless.
  • If they think most customers should use the lossy option, perhaps they should bury the lossless option in advanced settings where people won’t use it accidentally.
  • When they launch large customers like BigCommerce and WP Engine, are they reviewing the client configuration? If so, perhaps seeing the lossless option should be a trigger for a discussion with the client.
  • Can Cloudflare provide a way to allow websites to opt into the lossy version of Polish even if their host has selected the lossless version?
  • Can Cloudflare add AVIF support to Polish? Ok, I admit this has nothing to do with the rest of the list. I just want AVIF support.

At minimum, Cloudflare hosting clients should know that if have lossless turned on, that they don’t support WebP and they shouldn’t claim that support.