Dev.to WebDev πŸ›  Dev πŸ‘ 0 πŸ“– 2 min read

Removing image/webp from the Accept header mostly gets you AVIF: five image hosts tested

People who want JPG files instead of WebP often try an extension that removes image/webp from the Accept header Chrome sends with image requests. The idea is that the server will then fall back to JPEG. I tested that on

People who want JPG files instead of WebP often try an extension that removes image/webp from the Accept header Chrome sends with image requests. The idea is that the server will then fall back to JPEG. I tested that on 15 November 2026 against five image hosts, with curl and a Chrome user agent, sending each image request three times:

  1. Chrome's normal header: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
  2. The same with image/webp removed
  3. The same with both image/webp and image/avif removed

Results

Image Normal No WebP No WebP, no AVIF
Unsplash (imgix, auto=format) AVIF, 21,077 B AVIF, 21,077 B JPEG, 50,606 B
IKEA product photo (Cloudflare) AVIF, 19,016 B AVIF, 19,016 B JPEG, 71,924 B
Cloudinary demo (f_auto) AVIF, 38,161 B AVIF, 38,161 B JPEG, 87,162 B
Allbirds (Shopify CDN) WebP, 46,738 B PNG, 118,448 B PNG, 118,448 B
Nike (t_default preset) PNG, 147,200 B PNG, 147,200 B PNG, 147,200 B

Three of the five hosts prefer AVIF over WebP. For them, removing WebP from the list changes nothing, because AVIF is still listed and AVIF is what they were sending anyway. Only the Shopify CDN, which tops out at WebP, falls back to the original PNG once WebP is gone.

The Nike URL uses a named preset with no format option in it, so the server sends the same PNG to everyone. Its response has no Vary header at all. The other four answer with Vary: Accept (Unsplash and Cloudinary also vary on User-Agent), which is the signal that the format depends on what you ask for.

Sending */*

A request with Accept: */* got the original format from all five: JPEG from Unsplash, IKEA and Cloudinary, PNG from Allbirds and Nike. That is also what curl and wget send by default, which is why a command-line download of an image URL often gives you a JPEG while "Save image as" in the browser gives you WebP or AVIF. The browser saves the bytes it already received for display.

What this means in practice

  • An extension that only strips image/webp mostly trades WebP for AVIF on big image CDNs. Stripping AVIF too gets JPEG where the server negotiates, but pages then load larger files.
  • Hosts that pick the format from a fixed URL preset ignore the header completely.
  • If you only need one file, the URL is often the easier lever. With Chrome's normal header still sent, imgix returned a real JPEG for fm=jpg (50,606 B, the same file as the third request above) and Cloudinary for f_jpg in place of f_auto. Shopify's CDN did not: format=jpg and format=pjpg both still came back as WebP.

I make PixLasso, a Chrome and Edge extension that converts on right-click instead (it draws the image and saves a real JPG or PNG locally), so I had a reason to check whether header tricks would make that unnecessary. On these five hosts they mostly don't. The guide with the other no-install options, Firefox's image.http.accept pref included, is here: Can you disable WebP in Chrome?

πŸ“° Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes β€” full credit and traffic to the original publisher.