PixSpeed Complete Guide: Free WebP & AVIF Image Converter for WordPress

One complete guide to PixSpeed: install it, convert your first image, bulk-convert the whole library, master the serving modes and fix the 7 most common issues.

This is the complete PixSpeed guide. Everything you need lives on this one page — what the plugin does, installation, every setting, bulk conversion, the three serving modes and fixes for the most common problems. Use the table of contents to jump straight to what you need.

PixSpeed is a free WordPress plugin that creates next-generation copies of your images — WebP and AVIF — and serves them automatically to browsers that support them. The result: smaller image payloads, faster page loads and better Core Web Vitals, with your original files left completely untouched.

Why next-gen image formats matter

JPEG turned thirty in 2022 and it shows. Modern formats compress the same image far more efficiently:

Images are usually the heaviest part of a web page, so this directly improves Core Web Vitals — especially Largest Contentful Paint. The catch has always been serving the right format to the right browser. That is exactly the problem PixSpeed solves: a Chrome user gets the tiny AVIF, a slightly older browser gets WebP, and anything else silently gets your original JPEG or PNG.

What PixSpeed actually does

What PixSpeed does not do

Just as important:

How the conversion engine works

PixSpeed checks what your server can do and picks the best available engine automatically:

FormatDetection orderTypical availability
WebPGD → Imagick → cwebpNearly universal
AVIFImagick → avifenc → GDImagick with AVIF delegate, or the avifenc binary
On a typical shared or managed host, WebP works out of the box. AVIF usually needs one extra package on VPS/dedicated servers: apt install webp libavif-bin — or a host whose Imagick was built with the AVIF delegate. You can also override the engine per format in Settings. The dashboard shows a full engine table immediately after activation, so you always know what you are working with.

PixSpeed installs like any WordPress plugin and needs no configuration before your first conversion. This guide walks you from a clean install to a verified, served WebP/AVIF image in five steps.

Step 0 — Check the requirements

Not sure what your host offers? Don't guess — the plugin tells you in the next step.

Step 1 — Install and activate

  1. In your dashboard go to Plugins → Add New → Upload Plugin.
  2. Choose the pixspeed.zip file and click Install Now.
  3. Click Activate.
Once activated, a new PixSpeed menu item appears in your admin sidebar.

Step 2 — Read the engine table

Open PixSpeed → Dashboard. At the top you will find stats cards (files converted, space saved) and below them the engine detection table. Every row answers one simple question: can this server convert this format, and with which engine? A typical managed host shows GD or Imagick as yes for WebP, and either yes or no for AVIF depending on the build.
Tip: if AVIF shows no everywhere, you can still use PixSpeed with WebP only — then ask your host to enable the AVIF delegate or install libavif-bin, and PixSpeed will pick it up automatically.

Step 3 — Convert your first image

  1. Go to Media → Library and switch to list view if needed.
  2. Look at the new WebP/AVIF column — it shows the status badge for each image.
  3. Hover a JPEG or PNG row and click Convert in the row actions.
  4. Reload — the badge now shows WebP (and AVIF where supported), and every generated size of that image got its own variants.

Your original file is still there, byte for byte. Only new sibling files were added next to it.

Step 4 — Verify that variants are actually served

Converting is half the job — serving is the other half. PixSpeed ships a built-in test: on the PixSpeed dashboard, press the serving test button. It fetches one of your converted images the way a modern browser would and reports whether the AVIF/WebP variant came back, including the size difference. If the test passes, your visitors are already getting the smaller files.
If something looks off here, the serving mode is usually the reason — see the serving modes explained guide, or jump straight to troubleshooting.

Step 5 — Convert the rest

One image proved it works — now let the plugin handle the whole library in one run. The bulk conversion guide covers the dashboard converter, the media library bulk action and the WP-CLI route for very large libraries.

Reassuring detail: you can revert everything at any time — single images, selected batches, or the entire library — from the dashboard. Restoring deletes only the generated variants.

PixSpeed's defaults are tuned so most sites never need to open Settings. But when you do — quality tuning, engine overrides, switching serving mode — this guide explains every switch and what it actually affects.

Where the settings live

Open PixSpeed → Settings in your dashboard. Everything on this page saves instantly with a confirmation at the top, and none of it touches your existing variant files until you explicitly restore and re-convert.

Formats — what gets converted

Both formats are created alongside each other — a JPEG upload becomes .jpg.webp and .jpg.avif, for every size WordPress generates.

Quality sliders

Two independent sliders: WebP quality (default 82) and AVIF quality (default 60). AVIF needs a lower number for equivalent visual quality — that is the codec, not a mistake.
GoalWebPAVIF
Maximum savings (screenshots, thumbnails-heavy sites)7050
Balanced (default)8260
Portfolio / photography sites9070

Engines — who does the conversion

In auto mode PixSpeed detects what your server offers and picks the best engine per format:

Two dropdowns let you override this per format — useful when one engine produces better results on your specific images, or when a host has multiple options. The PixSpeed dashboard shows the full detection table, so you always know which engine actually runs.

Serving

Bulk processing

Batch size (default 3) controls how many images the dashboard bulk converter processes per step. Lower it on modest shared hosting to keep the site snappy during a run; raise it on a VPS to finish faster. With WP-CLI the same knob applies via wp wac convert all --limit=N — see the bulk conversion guide.

Auto-convert on upload

Enabled by default. Every new image is converted the moment WordPress generates its sizes, so your bulk run stays a one-time backlog job. Disable it only if you want to review every conversion manually.

Integrations & maintenance

One converted image proves the point — a full library pays the bandwidth bill. PixSpeed gives you three routes to get there, from a single dashboard button to a WP-CLI run you can schedule at 3 AM. All three convert every generated size of every image, skip what is already done, and leave your originals untouched.

  1. Open PixSpeed → Dashboard.
  2. Find the Bulk converter card and press Start Bulk Conversion.
  3. Watch the progress bar — PixSpeed processes a configurable number of images per batch (default 3) so the server stays responsive.
  4. The live log lists every file: converted, skipped or failed, with the reason.
  5. When it finishes, the stats cards update with files converted and space saved.

The run is resumable by design: if anything interrupts it, just press the button again — finished images are skipped automatically.

Option 2 — The media library bulk action

For targeted batches — say, one month of uploads:

  1. Go to Media → Library in list view.
  2. Select the checkboxes of the images you want.
  3. Choose Convert to WebP/AVIF from the bulk actions dropdown and hit Apply.
The same menu offers Restore, which removes the variants for the selected images and keeps the originals.

Option 3 — WP-CLI for large libraries

Thousands of images? Run it from the terminal — no browser timeouts, no PHP limits:

# See engines and current stats wp wac status # Convert everything, in chunks, skipping finished images wp wac convert all --limit=50 --skip-existing # Convert specific attachments only wp wac convert 123 124 125 # Undo everything (deletes variants, keeps originals) wp wac restore all --yes
A practical pattern for very large sites: loop wp wac convert all --limit=100 --skip-existing in a screen/tmux session or a nightly cron until it reports nothing left to do.

After the run — purge your page cache

With the default Picture tag serving mode your HTML does not change, so purging is optional — the next render already wraps images correctly. But if you use the legacy URL swap mode, or simply want cached HTML refreshed everywhere immediately, purge your page cache after the bulk run.

PixSpeed makes this a one-click job when FlynCache Purge is active: a purge button appears on the PixSpeed dashboard. Any other cache plugin works too — just run its normal purge. Details on how each serving mode interacts with caches: serving modes explained.

What happens to new uploads?

Nothing to remember: auto-convert on upload is on by default, so every new image is converted the moment it enters the media library. Your bulk run is a one-time backlog job — after it, PixSpeed keeps up on its own. You can check the toggle any time in Settings.
Converting images is only half of PixSpeed's job. The other half is making sure each visitor actually receives the WebP or AVIF variant their browser understands — and that is what the serving mode controls. Pick the right one and everything is fast and cache-safe; this guide makes the choice obvious.
PixSpeed wraps your images in a <picture> element with AVIF and WebP <source> entries. The browser then picks the best format it supports, all by itself.

This is the default for a reason: if you do not want to think about serving, stop reading and keep this mode.

Mode 2 — Server rewrite (fastest)

Here the HTML keeps your original URLs untouched, and the web server delivers the variant per request based on the browser's Accept header. Zero HTML processing, zero markup changes — the leanest possible page weight.
On Apache and LiteSpeed servers, PixSpeed manages the required .htaccess rules for you automatically when you enable rewrite mode — and removes them when you disable it.
On nginx, paste the snippet from the PixSpeed Help tab into your server configuration. It is two pieces — a small map and a location block:
# /etc/nginx/conf.d/wac-serve.conf map $http_accept $wac_img_ext { default ''; '~*image/avif' '.avif'; '~*image/webp' '.webp'; } # inside each server { } block of your site: location ~* ^(?<wac_img_path>/wp-content/uploads/.+)\.(jpe?g|png|gif)$ { expires 30d; access_log off; add_header Vary Accept; try_files $wac_img_path$wac_img_ext $uri =404; }
Then run nginx -t and reload nginx. The Vary: Accept header matters: it tells CDNs and caches that the response depends on the Accept header, which keeps variant delivery correct through proxies.

Mode 3 — URL swap (legacy)

The oldest trick: PixSpeed rewrites image URLs inside your HTML to point directly at the variant files. It works everywhere and needs no server changes, but the HTML now differs per capability — and unless your cache is Accept-aware, a cached page can serve stale URLs after a bulk conversion. If you use this mode, purge your page cache after converting (the dashboard button handles FlynCache in one click). It is kept for compatibility; new sites should use Picture tag or Server rewrite.

Side-by-side comparison

Picture tagServer rewriteURL swap
Config neededNone.htaccess (auto) / nginx snippetNone
Page-cache safeYes — HTML identicalYes — HTML identicalPurge after bulk runs
HTML weightSlightly larger (sources added)UnchangedUnchanged
DeliveryBrowser picks formatServer picks formatURL rewritten
Best forEveryone, managed hostsVPS/dedicated, max speedLegacy setups

How to choose in 10 seconds

Always verify after switching

Whichever mode you pick, press the serving test button on the PixSpeed dashboard afterwards. It fetches a real image with a modern browser's Accept header and confirms which variant came back — and shows the size saved. If the test fails, the troubleshooting guide covers the usual suspects, and if caching is involved, FlynCache Purge support explains the purge side of the story.

PixSpeed is deliberately simple, but it lives in the real world — different hosts, different caches, different server software. Here are the seven issues that account for almost every support question, with the fastest fix for each.

SymptomLikely causeFastest fix
AVIF badge never appearsNo AVIF engine on serverFix #1
Variants exist but originals are servedServing config (nginx/cache)Fix #2 or #3
Old images still load after bulk runPage cacheFix #3
GIF looks staticExpected behaviourFix #4
Converted image looks worseQuality settingFix #5
Transparency lostSource file, not the pluginFix #6
Variant files left after uninstallSafety defaultFix #7

Fix #1 — No AVIF engine detected

Open the PixSpeed dashboard and read the engine table. If every AVIF row shows no, your server cannot produce AVIF yet. On a VPS or dedicated server, install the tools and reload PHP:
apt install webp libavif-bin systemctl reload php8.3-fpm # your PHP version may differ

On shared hosting, ask the host to enable the Imagick AVIF delegate or install libavif-bin. Meanwhile WebP conversion keeps working — PixSpeed degrades gracefully, it never blocks the whole plugin because one format is unavailable.

Fix #2 — Variants exist but browsers get originals (nginx)

This is the classic nginx symptom in Server rewrite mode: the files sit in uploads, but nginx never tries them. The fix is the snippet from the PixSpeed Help tab — a map $http_accept plus a location block with try_files. Copy it from serving modes explained, add it to your server config, then always validate before reloading:
nginx -t && systemctl reload nginx
If editing server config is not an option, switch the serving mode to Picture tag — it needs zero server configuration and is equally cache-safe.

Fix #3 — Old images still loading after a bulk run

Your page cache is serving HTML (or image URLs) generated before the conversion. With the default Picture tag mode this is rare, because the HTML structure does not change. With URL swap mode it is guaranteed — always purge after bulk runs. Either way:

Fix #4 — Animated GIFs: what to expect

Animated GIFs are converted to a static first-frame WebP, and if that WebP would be larger than the GIF, PixSpeed skips the file entirely. So: animated GIFs stay animated as originals (browsers receive the GIF), and static-looking results are expected behaviour, not a bug. For truly smaller animated images, convert the source to MP4/WebM video — the standard practice for animation on the web.

Fix #5 — A converted image looks worse than the original

Quality defaults (WebP 82 / AVIF 60) favour savings and are visually equivalent for most photos — but taste is personal, and some images (fine gradients, text in images) are quality-sensitive. Raise the sliders in Settings (portfolio preset: 90/70), then restore the affected images and convert them again. Restoring always returns the exact original bytes.

Fix #6 — Transparency problems in PNGs

WebP and AVIF both support full alpha transparency, and PixSpeed preserves it — if a PNG's transparent background suddenly looks wrong, check the source: transparency flattened before upload cannot be recovered by any converter. Also verify the theme is not placing the image on a coloured background via CSS. If a specific file still misbehaves, restore that single image and re-convert it at higher quality — and if it persists, report it via digitalwasim.com with the original file attached.

Fix #7 — Variant files remain after uninstalling

By design, deleting the plugin removes settings and database records but keeps variant files — so an accidental uninstall can never destroy your images. Two clean paths: restore everything from the dashboard before deleting, or define define('WAC_DELETE_FILES', true); in wp-config.php before deleting the plugin, which tells the uninstaller to remove variant files as well.

Still stuck?

Work through the checklist: engine table on the dashboard → serving test button → serving mode → cache purge. Ninety percent of cases resolve at one of those four steps. The serving modes guide and the installation guide cover the details, and you can always reach the developer through digitalwasim.com.

Who develops PixSpeed?

PixSpeed is developed by Wasim Akram, an independent publisher and developer who also writes the guides you are reading on digitalwasim.com. It is the second free tool in his WordPress toolbox, alongside the FlynCache Purge plugin. If PixSpeed saves you bandwidth and time, you can buy the developer a coffee — it genuinely helps keep free tools like this maintained.

Frequently asked questions

Is PixSpeed really free?

Yes. PixSpeed is free and open source under the GPLv2 or later license. There is no account, no subscription and no paid API behind it — all conversion happens on your own server.

Will PixSpeed slow down my site?

No. Variants are created when you upload or run a bulk conversion — never on page view. Visitors only receive the smaller pre-made files, which makes pages load faster.

Where are the converted files stored?

Right next to your originals, in the same uploads folder. A file called photo.jpg gets photo.jpg.webp and photo.jpg.avif siblings. Nothing is moved, renamed or replaced.

Can I undo the conversion later?

Yes. Restore any single image from the media library, or everything at once from the PixSpeed dashboard, or run wp wac restore all --yes over WP-CLI. Original files are never modified.

How do I know my host supports conversion?

Open the PixSpeed dashboard right after activation — the engine table shows exactly which engines were detected for WebP and AVIF. If at least one WebP engine shows yes, you can start converting.

How long does a bulk conversion take?

Roughly 1–3 seconds per image size on a typical host, depending on engine and image dimensions. A 500-image library with several sizes each usually finishes within minutes. The dashboard shows live progress, so you always know where you are.

Can I switch serving modes later?

Yes, any time, without re-converting anything. Serving mode only decides how variants are delivered — the generated .webp and .avif files are identical regardless of the mode.

Does the Picture tag mode hurt SEO?

No. Alt text, dimensions, srcset and lazy loading are preserved, and search engines index the original file exactly as before. Google explicitly documents the picture element as a valid way to serve next-gen formats.

Which mode is best on nginx hosting?

Server rewrite is the fastest if you can edit the server config — copy the map and location snippet from the Help tab into your nginx configuration, test with nginx -t and reload. If you cannot touch server config, Picture tag is the better pick: zero config, fully cache-safe.

Do quality changes re-convert existing images?

No. New settings apply to images converted from that point on. To apply new quality to existing images, restore them and run the bulk conversion again — everything gets fresh variants.

What quality values should I use?

The defaults (WebP 82, AVIF 60) are a sweet spot modelled on common optimizer presets: visually indistinguishable from the original in most photos, with big savings. Raise to WebP 90 / AVIF 70 for portfolio-grade crispness; lower to WebP 70 / AVIF 50 if bandwidth is your top priority.

Is it safe to delete the plugin to start over?

Deactivating and deleting removes PixSpeed's settings and database records but leaves variant files on disk by default. To also delete those files, define WAC_DELETE_FILES as true in wp-config.php before deleting — or restore everything first.