Image Format Checker
Enter a page and see which of its images reach a modern browser as AVIF or WebP, which arrive only in their original format, and how many bytes the difference is worth. Each image is requested twice: once as a current browser asks for it, once as a browser that accepts anything.
What the checker does
- Reads the page's HTML once (up to 1.5 MB) and takes up to 20 images from
<img>(withsrcsetand the common lazy-loading attributes),<picture>andog:image. - Requests each image twice: with
Accept: image/avif,image/webp,…, as a current browser sends it, and withAccept: */*, as a client that asks for nothing in particular. - Reads the first bytes of each answer to tell the real format, whatever the file name or
Content-Typesays, and counts the bytes. - Reports the
Varyheader and the cache status the CDN printed, and follows up to 3 redirects, checking every target address again. - For a
<picture>with an AVIF or WebP<source>, the modern request goes to that source and the other one to the<img>: there the browser chooses the format, not the server.
Reading the results
AVIF or WebP
A browser that supports these formats received one. The size next to it is what that browser downloaded; the size under "Other browsers" is what a browser without AVIF or WebP support gets.
Original only
The image came as JPEG, PNG or GIF even to a browser that asked for AVIF and WebP: the site does not convert it.
Same file for every browser
Both requests received the same format. That is the result for a site without format negotiation, and for a site that serves WebP files to everyone. With nothing to compare, no saving is shown.
Without Vary: Accept
The answer changes with the Accept header but does not say so with Vary: Accept, and shared caches are allowed to keep it. A proxy between the server and a visitor could then hand an AVIF or WebP file to a browser that did not ask for one.
The saving
Only images whose two answers were both read in full, and came in different formats, count toward the total. A size known only from Content-Length is shown but never added up: the figure is a measurement, not an estimate.
Rate-limited or blocked
When a site answers 429, 403, a bot check, or the small 503 page rate limiters send, the checker stops sending it requests for that check and marks the remaining images as not checked. Try again a few minutes later.
How a server chooses the format
A browser lists the image formats it can show in its Accept header. A server or CDN that converts images reads it and answers AVIF, WebP or the original from the same URL. It should then send Vary: Accept, so that caches keep one copy per format.
The other way is in the HTML: a <picture> element lists AVIF and WebP <source> files and the browser takes the first one it supports. Both work, and the checker follows whichever the page uses.
AVIF or WebP: which is smaller, and when
Limits and what we send
- Up to 20 images on up to 5 hosts per page, up to 5 MB read per image, 20 seconds per check.
- 3 checks a minute and 20 a day from one address. A finished check is reused for 10 minutes, and one site is checked at most 6 times in 10 minutes, whoever asks.
- Requests come from our server in Turkey over IPv4, with a User-Agent that ends in
cdn.com.tr-image-check/1.0and links to this page. A CDN may answer us from a different location than your visitors, some sites block automated clients, and a site reachable only over IPv6 cannot be checked. - Only public addresses on ports 80 and 443 are requested; private and internal networks are refused. Images are not stored: only formats, sizes and a few headers come back.
- Images that JavaScript adds after the page loads, and CSS background images, are not in the HTML, so the checker does not see them.
Convert images at the edge
With image optimization on, CDN.com.tr serves JPEG and PNG images as WebP to browsers that support it, for a whole account or for a single delivery rule. Processing counts toward your monthly quota.