SEV Rewrite-Free WebP for W3TC
SEV Rewrite-Free WebP for W3TC is a lightweight companion plugin for W3 Total Cache that automatically serves WebP images to browsers that support them.
Unlike traditional WebP delivery methods, this plugin does not rely on Apache or Nginx rewrite rules. No changes to .htaccess, mod_rewrite, or web server configuration are required. Instead, it rewrites image URLs directly in the generated HTML before the page is sent to the visitor.
This makes the plugin particularly useful on managed hosting environments, including many Plesk installations, where configuring or relying on web server rewrite rules is difficult, restricted, or simply not practical. If W3 Total Cache ImageService has already generated a WebP version of an image, this plugin serves it without requiring any server-side rewrite configuration.
This is an independent, unofficial add-on and is not affiliated with, endorsed by, or sponsored by BoldGrid / W3 EDGE, the makers of W3 Total Cache. “W3 Total Cache” is a trademark of its respective owner and is used here only to describe compatibility.
Features
- No Apache or Nginx rewrite rules required.
- No
.htaccessmodifications. - Automatically detects WebP support via the browser’s
Acceptheader. - Rewrites image URLs only when a corresponding WebP image exists.
- Supports
src,srcset,data-src, anddata-srcsetattributes. - Sends a
Vary: Acceptheader for correct browser, CDN, and proxy caching. - Extends the W3 Total Cache page cache key so WebP and non-WebP pages are cached separately.
- Lightweight and requires no configuration.
How it works
- A visitor requests a page.
- The plugin checks the HTTP
Acceptheader to determine whether the browser supports WebP. - It scans the post content for image URLs (
src,srcset,data-src, anddata-srcset). - For each image, it checks whether W3 Total Cache ImageService has already generated a WebP version.
- If a WebP image exists, the corresponding URL in the generated HTML is replaced with the
.webpURL. - A
Vary: Acceptresponse header is added so browsers, CDNs, and reverse proxies cache WebP and non-WebP responses separately. - The W3 Total Cache page cache key is extended with
:webpor:no-webp, ensuring W3 Total Cache stores separate cached pages for browsers with and without WebP support.
Requirements
- W3 Total Cache must be installed and active.
- Images must have been converted using Media → W3TC Image Service.
Limitations
This plugin does not convert images to WebP. Image conversion is handled entirely by W3 Total Cache ImageService. If no WebP version exists for an image, the original image URL remains unchanged.