

Bulk Optimize screen with live progress
WebberZone Image Optimizer is a free WebP converter and AVIF converter for WordPress. It converts the JPEG, PNG, GIF and WebP images already in your media library to WebP and AVIF, optimizes new uploads automatically, and serves each visitor the smallest file their browser can read. Images are typically 40–60% smaller with no visible difference, so pages load faster and score better on PageSpeed Insights and Core Web Vitals.
Everything happens on your own server. Your images are never uploaded anywhere. The plugin makes no outbound network requests of any kind — there is no external service, no API key, no monthly image quota, no account to create and nothing that can stop working because a company shut down or changed its pricing. AVIF is not a paid upgrade: every feature is free.
Almost certainly nothing you do not already have. WordPress cannot crop or resize an uploaded image without either the Imagick or the GD extension, so every working WordPress install already has one of them, and both have been able to write WebP for years.
You do not have to guess. The plugin tests your server by actually encoding a small image with each backend at activation, rather than trusting what the extension claims to support, and the settings screen shows you exactly which formats came back working. If AVIF is unavailable the option is simply marked as such and WebP carries on normally.
By default, each optimized copy is written alongside the original with the new extension appended, so photo.jpg gains photo.jpg.webp, and the original is left unchanged. The File naming setting can switch this to replacing the extension instead (photo.webp) — see the settings screen for the trade-off before turning it on.
You can also compress the original JPEG and PNG files themselves. JPEG compression uses Imagick or GD at the quality you choose; PNG compression uses a local oxipng or pngquant tool when your server has one. A maximum image dimension resizes oversized uploads and, optionally, existing originals. Every change is backed up first, and Restore originals reverses it. Both features are off by default. Deactivation stops optimized delivery but does not restore compressed originals.
Images are wrapped in a <picture> element, so the browser chooses the format. That matters more than it sounds: the common alternative is to vary the response on the Accept header, which returns different bytes for a single URL. Any cache in front of that — a page cache plugin, a CDN — which ignores Vary will happily hand a WebP file to a browser that cannot display it. A <picture> element has no such failure mode.
Responsive images are handled properly. Each format’s <source> lists only the optimized srcset candidates that exist, with their descriptors preserved exactly. Missing intermediate copies are omitted, while a missing smallest, widest or highest-density copy withholds that format so the optimized set always covers the same range as the original set. The original <img> remains as the fallback.
Background images set in block styles, such as Group and Cover block backgrounds, get a CSS image-set() alternative, which does the same job as <picture> in CSS. For images referenced from a stylesheet file, where the browser is never offered a choice, the Delivery tab generates ready-to-paste Apache and nginx rules, complete with the Vary: Accept header those rules require.
The bulk screen works through a database-backed queue one batch at a time. Close the tab and nothing is lost; a background worker carries on, and reopening the screen resumes exactly where it stopped. Failures are retried a few times and then listed with the reason.
image-set()wp wzio status, convert, queue, run, clean