Description
Pixavif converts your WordPress images to AVIF and WebP and serves them to every browser that supports them. The conversion runs on your own server with the image library your host already has, so there is no API key, no monthly quota and no image ever leaves your site.
AVIF and WebP files are usually 30 to 70 percent smaller than the same JPEG or PNG. Smaller images mean a faster Largest Contentful Paint (LCP), better Core Web Vitals and one less warning in PageSpeed Insights (“Serve images in next-gen formats”).
Your original files are never edited, compressed or replaced. The AVIF and WebP copies live in their own folder, and you can remove them at any time.
How it works
- Check the server. Pixavif encodes a small test image to AVIF and WebP and checks the result. If a format is missing, it tells you why and can write the email to your hosting company for you.
- Pick a quality. Smaller files, Balanced or Higher quality. A before and after slider shows the difference on one of your own photos.
- Convert. Existing images are converted in the background and new uploads are converted automatically. You can close the tab, pause, resume or cancel at any time.
Features
- Converts JPEG, PNG and GIF images to AVIF, WebP or both.
- Every image size is converted: thumbnails, medium, large, custom sizes and scaled images.
- No limits on the number of images or file size. No credits, no external service.
- Quality presets, or set your own AVIF and WebP quality.
- If a converted file would be larger than the original, it is not kept.
- Background queue with retries, a time limit per image and resume after an interruption.
- Two delivery methods: picture tags (any server, any CDN) or rewrite rules on Apache and LiteSpeed. On nginx, Pixavif gives you the config to paste.
- Whole page mode for images printed by themes and page builders. When Elementor Pro, Divi, Bricks or another theme builder is active, the Overview offers to switch it on.
- Adds missing width and height to the images it serves, so the layout does not shift while the page loads (CLS).
- Test delivery sends a real request to your site and confirms that AVIF or WebP is actually served.
- Media Library column, row actions, bulk actions and a filter by conversion status.
- Exclude images by file name pattern, by folder, or one by one.
- Site health checks: missing image library, full disk, stuck queue, files missing after a site move, low memory, another converter or a page cache. Each comes with a short fix guide.
- One click repair when converted files go missing. Visitors get the originals until then, never a broken image.
- Conversion history with search, filters and a before and after view for every image.
- Server diagnostics written in plain language, with a report you can copy for support.
- Error log of the last 200 errors with CSV export.
- WP-CLI:
wp pixavif status,convert,bulk,restoreandtest. - Multisite support. Each site has its own settings and folder.
Server requirements
Pixavif uses the same image library WordPress already uses for thumbnails. Nothing extra to install.
- WebP: PHP GD or Imagick with WebP support. Almost every host has it.
- AVIF: PHP 8.1 or newer with GD built with AVIF, or Imagick with AVIF support. Most modern hosts have it.
Not sure what your host supports? Install Pixavif and open Media Pixavif. The server check takes a few seconds and changes nothing on your site.
Your originals stay safe
Pixavif never touches your original JPEG and PNG files. Copies are stored in wp-content/uploads-pixavif. Remove the copies of one image, or all of them from Tools, and your site goes straight back to the originals.
Quiet by design
- No admin nags, upgrade banners or dashboard widgets.
- Nothing runs during the upload request. Conversion happens in the background.
- No JavaScript or CSS files on the front end. Picture tag mode adds one small inline CSS rule so the wrapper never changes your layout.
- Nothing is converted until you start it.
External services
Pixavif does not send your images or any other data to an external service. All conversions run on your own server.
“Test delivery” sends HTTP requests only to your own site, to check that converted images are served.
The plugin includes the Freemius SDK for an optional opt-in. Nothing is sent unless you choose to opt in. If you opt in, basic information about your site and WordPress setup is shared with Freemius. Freemius terms: https://freemius.com/terms/ and privacy policy: https://freemius.com/privacy/
Screenshots






Installation
- Go to Plugins Add New, search for “Pixavif” and click Install, then Activate.
- Open Media Pixavif. The setup checks your server, lets you pick a quality and starts the conversion.
- Optional: open Settings to change the delivery method, exclusions or how many images are converted at the same time.
FAQ
-
Does Pixavif change my original images?
-
No. Originals are never edited or replaced. Copies are saved in
wp-content/uploads-pixavifwith the new extension added, for examplephoto.jpg.avif. -
Is it really unlimited and free?
-
Yes. Conversion happens on your own server, so there is no quota, no API key and no per-image cost.
-
AVIF or WebP, which one should I use?
-
Keep both on. AVIF is usually the smallest file, WebP is the fallback for browsers and servers without AVIF, and the original is the last fallback. Pixavif picks the best one for each visitor.
-
What if my server doesn’t support AVIF?
-
Pixavif uses WebP instead, so your images are still optimized. The Server tab explains the easiest fix. On PHP 8.0 or older, switching to PHP 8.1 or newer in the hosting panel often turns AVIF on. The “Email your host” button prepares a message with the exact technical details your host needs.
-
Will it fix “Serve images in next-gen formats” in PageSpeed Insights?
-
For images in the Media Library, yes. After the bulk conversion, clear your page cache and run the test again. Images loaded by CSS backgrounds or by scripts need server rewrite delivery (see below).
-
Does it work with nginx, Cloudflare, LiteSpeed Cache or WP Rocket?
-
Yes. Picture tags, the default delivery method, only change the page HTML, so they work with any server, CDN and page cache. Clear the page cache after the first conversion.
Server rewrite works on Apache and LiteSpeed. On nginx, copy the configuration from Settings Delivery, reload nginx and click Re-check on the Server tab. If your CDN ignores the Accept header, Test delivery will tell you and recommend picture tags.
-
Does it work with Elementor, Divi and other page builders?
-
Yes. Tested with Elementor, Elementor Pro, Divi, Beaver Builder, SiteOrigin, WooCommerce, the block editor, Spectra, Kadence Blocks and GenerateBlocks, on Astra, Kadence, GeneratePress, OceanWP, Neve, Blocksy, Hello Elementor, Storefront and the default themes. Right to left languages and Polylang are covered too.
Page builder editors are left alone, so picture tags never end up saved in your content. For images that builders and themes print outside the post content, turn on “Also replace images outside post content” in Settings Delivery.
-
Does it work with lazy loading and cache plugins?
-
Yes. Tested with LiteSpeed Cache, WP Super Cache, Autoptimize, Smush, WP-Optimize and a3 Lazy Load. Clear the page cache once after a bulk run so cached pages pick up the new markup.
-
Some images still load as JPEG. Why?
-
Check the Pixavif column in the Media Library first. Images added by a theme or page builder need “Also replace images outside post content”. Clear any page cache. And if the converted file would be bigger than the original, Pixavif keeps the original on purpose.
With picture tags, a few images stay JPEG or PNG because they are added by scripts or CSS: the WooCommerce zoom image, CSS background images (for example Elementor section backgrounds) and galleries that make their own resized copies outside the Media Library. Server rewrite covers these, because it works on the image URL instead of the HTML.
-
Which images are skipped on purpose?
-
CMYK JPEGs (print files), images smaller than 64 x 64 pixels, animated GIFs and copies the server’s image library would damage. Every copy is checked after encoding. If transparency or a wide color profile (for example from an iPhone photo) was lost, the copy is discarded and the original is used. On servers with ImageMagick 6, transparent images get WebP instead of AVIF. AMP pages keep plain images.
-
A few themes style images with selectors that expect the image directly inside its parent. Switch to server rewrite (Apache and LiteSpeed), or skip single images with the
pixavif_skip_picturefilter or theno-pixavifCSS class. -
How do I undo everything?
-
Open Media Pixavif Tools and choose “Remove all converted files”. Every AVIF and WebP copy is deleted and your pages show the originals again. Deactivating the plugin also removes its server rules right away.
-
Does it work on multisite?
-
Yes. Each site has its own settings, statistics and folder (
uploads-pixavif/sites/{id}). -
Where is the source of the admin JavaScript?
-
The readable source ships with the plugin in
src/admin/. It is built with@wordpress/scriptsintobuild/admin/.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Pixavif: AVIF & WebP Converter, Image Optimizer” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Pixavif: AVIF & WebP Converter, Image Optimizer” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.3
- Changed: plugin name is now “Pixavif: AVIF & WebP Converter, Image Optimizer”. The slug and settings are unchanged.
- Improved: readme and FAQ.
1.0.2
- Fixed: on a new site without an uploads folder yet, the excluded folders picker showed an error instead of “no sub-folders yet”.
1.0.1
- Changed: requires WordPress 6.9, for the bundled Action Scheduler 4.2.0.
- Changed: the optional opt-in is offered once on the Overview. Activation no longer opens a separate screen.
- Changed: the requirements notice shows on the Plugins screen only.
- Improved: picture delivery CSS and the notice script load through the WordPress enqueue functions.
1.0.0
- First release.
