Safe WebP Queue — Browser-Powered Image Conversion for WordPress by Niko MinadzeSafe WebP Queue — Browser-Powered Image Conversion for WordPress by Niko Minadze

Safe WebP Queue — Browser-Powered Image Conversion for WordPress

Niko Minadze

Niko Minadze

Some WordPress hosts can serve WebP images but don’t have the image tools needed to create them.
I wanted people on those hosts to have a free way to convert their images without changing their hosting plan or signing up for a conversion service.
Main plugin page
Main plugin page
Safe WebP Queue normally uses the server to create WebP copies. I added an optional browser mode: your computer downloads an image from your site, converts it and sends the finished WebP back to WordPress. The original JPEG or PNG stays intact.
The encoder comes from jSquash/libwebp, compiled to WebAssembly. I built the WordPress integration around it: selecting images, checking browser support, showing progress, validating uploads and managing the resulting files.
There were some less obvious problems to solve. What happens if someone replaces an image while it is converting? Changes the quality setting? Starts a server conversion at the same time?
The plugin checks that the source and settings are still current before accepting a result. Browser saves coordinate with server jobs and cleanup, and existing WebP files belonging to something else are protected.
I tested the browser workflow in Chrome and Safari, including transparent PNGs, WordPress-generated image sizes and conversions that produced larger files. Those larger results can be skipped.
Browser conversion needs the admin tab to stay open. Hosts with a compatible server encoder can still use background conversion.
The result is a free, open-source WordPress plugin with a practical fallback for hosting that cannot generate WebP itself.
Browser conversion (WebAssembly) run
Browser conversion (WebAssembly) run
Like this project

Posted Sep 19, 2026

I built a WordPress plugin that converts images in your browser when hosting cannot create WebP, while keeping originals and checking each saved result.