Sitemap
Alt.

Alt is a Medium publication by CTRL Magazine. A place for all things tech.

Why do images save as WebP (and now AVIF)? How to get a JPG back

Chrome did not convert your picture. The site sent WebP because your browser said it could show it. The proof, and 5 ways to get a JPG.

11 min readOct 11, 2026

--

Press enter or click to view image in full size
A brown rabbit sitting in tall green grass, beside the words Why do images save as WebP? And now AVIF, with two labels reading WEBP and JPG
One address can hand your browser a WebP and a plain download a JPG. Tested on 30 September 2026.

Images save as WebP because the website sent you a WebP file, and Chrome saved it as it arrived. Nothing was converted. Every Chrome image request lists the formats it can show, and AVIF and WebP come first. So the site or its CDN often sends one of those, which is why pictures now save as AVIF too. Sites do it to cut bytes. Our 9.8 MB test photo came out 45.7% smaller as WebP than as JPEG, at each format’s Auto setting. Chrome 99, in March 2022, made Save image as ask the same way the page does. Below: the proof, and 5 ways to get a JPG back.

This story was written with the assistance of an AI writing program. Every figure comes from a file measured with Blinkimg’s engine or from the source linked beside it.

Why do images save as WebP?

Because your browser told the site it could show WebP. Each time a page loads a picture, the browser sends an Accept header: a list of the formats it can display. This is Chrome 154’s list, from Chromium’s source code:

image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8

The other browsers send the same kind of list:

  • Edge 121 and later: the same start as Chrome, AVIF then WebP, on MDN’s list of default Accept values.
  • Firefox 128 and later: AVIF, then WebP, then PNG, on the same MDN page.
  • Safari: WebP first, then AVIF, JPEG XL and HEIC where the system can decode them, in WebKit’s source code.

The server reads the list and chooses. Chrome chooses nothing. Microsoft’s Eric Lawrence said so on the Chromium issue about saving images: “Chrome will download whatever the URL of the image returns.”

Press enter or click to view image in full size
Three steps. One: Chrome asks for the image, and its Accept header lists image/avif and image/webp first, even for a .jpg address. Two: the site or its CDN answers with AVIF or WebP, while a request that names no image type gets the JPEG. Three: Save image as asks again, keeps the reply and names the file .webp
Nothing in Chrome converts the picture. Sources: Chromium’s source code and Chromium issue 340303232; CDN answers tested with curl on 30 September 2026.

Why does a .jpg address save as a .webp file?

Because the name in the address is only a label. The server’s reply carries a Content-Type header that says what the bytes are. Chrome’s save dialog then suggests the extension that matches the Content-Type.

On 30 September 2026, I requested three public demo images with curl, each at an address ending in .jpg. Each got three requests. The first carried Chrome 154’s image header. The second put image/jxl at the front, the way Chrome 155 is coded to ask. The third was a plain Accept: */*, which is what curl sends.

Press enter or click to view image in full size
A table of three demo addresses that end in .jpg. Cloudinary returned AVIF to Chrome’s header, JPEG XL when image/jxl came first and JPEG to a plain request. imgix returned AVIF, AVIF and JPEG. Shopify returned WebP, WebP and JPEG
One address, three different files, chosen only by the Accept header. Tested with curl on 30 September 2026.
  • Cloudinary’s demo: AVIF, then JPEG XL, then JPEG.
  • imgix’s demo: AVIF, AVIF, then JPEG.
  • A Shopify store from Shopify’s own docs: WebP, WebP, then JPEG.

Every reply’s Vary header named Accept: the answer depended on the list the browser sent. To repeat the test in a Mac or Linux terminal, run this. It prints image/avif, and without the -H part it prints image/jpeg:

curl -s -o /dev/null -w "%{content_type}\n" -H "Accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" "https://res.cloudinary.com/demo/image/upload/f_auto,q_auto/sample.jpg"

Who decides the format: the site, its CDN or the address?

Often the CDN, the service in front of a site that resizes and caches its images. The big ones read your Accept header:

  • Cloudflare Polish serves WebP only when the Accept header includes it (Cloudflare’s docs).
  • Cloudinary’s f_auto picks the best format for the browser, which can be AVIF, JPEG XL or WebP (Cloudinary's docs).
  • imgix’s auto=format tries AVIF, then WebP, then JPG or PNG, reading headers and user agents (imgix's docs).
  • Shopify’s CDN detects the formats the browser supports and falls back to JPG (Shopify’s docs).

A few decide by the address. On Google’s image host, -rw at the end of an address asks for WebP. In my test, that address returned WebP even to curl, and without -rw it returned a PNG. So a header-driven site sends the JPEG to anyone who does not ask for WebP. An address-driven site sends WebP until you change the address.

Why did Chrome suddenly start saving WebP in 2022?

Because Chrome 99, stable on 1 March 2022, changed how Save image as asks for the file.

Before it, Save image as downloaded the image again with no Accept header. A site that chooses by that header saw no image formats and sent the JPEG. So the page showed a WebP, and the saved file was a JPG. A comment on Chromium issue 40790536 described the gap in September 2021. The fix of 28 December 2021 made the save send the page’s image header. Its commit message warned that this “may cause the server to return an image that is different”.

Eleven days after Chrome 99 shipped, a Reddit thread asked “Why is Chrome suddenly saving images as .webp — it never used to?”

Press enter or click to view image in full size
A timeline from 2019 to 2026: a Chrome help thread in April 2019 where 772 people have the same question, Chrome 99 making Save image as ask like the page on 1 March 2022, a Reddit thread asking why Chrome suddenly saves .webp on 12 March 2022, Unsplash asking for a save-as-JPG option in May 2024, Google removing the Save Image as Type extension in March 2026, and Chrome 155 asking for JPEG XL first on 6 October 2026
The switch felt sudden because one Chrome release changed the save. Sources: Google Chrome Help Community, Chrome Releases, Chromium, Reddit, gHacks and Chrome Platform Status.

Sites that pick WebP by browser name or by address sent it to Chrome all along. That explains a 2019 Chrome help thread where 772 people pressed “I have the same question”. In 2021 the problem even ran the other way: a Mozilla support answer noted that Chrome, not Firefox, gave the JPG back.

What comes after WebP?

AVIF is already here, and JPEG XL arrives with Chrome 155.

Chrome, Edge and Firefox list AVIF before WebP, so a site that can make AVIF can send it instead. Unsplash serves AVIF to Chrome through imgix. In May 2024 it filed Chromium issue 340303232, asking browsers for a way to save a JPG. On Microsoft Q&A, a 2024 thread is titled “Edge is forcing me to save GIF/JPG/PNG as WEBP and AVIF”.

Chrome 155, stable from 6 October 2026, decodes JPEG XL on desktop and Android, according to Chrome Platform Status. Chromium’s code then puts image/jxl first in the image request. Cloudinary's demo already answers that header with a JPEG XL file, so some downloads will save as .jxl. Ways 1 to 4 below ask the server for a JPEG, so they work for AVIF and JPEG XL too.

Is WebP actually smaller than JPG?

Usually on real photos, and not always.

The figure most pages repeat, 25% to 34% smaller than JPEG, comes from Google’s WebP compression study. It compared a 2011 WebP encoder with libjpeg 6b, matched on a quality score called SSIM. Cloudflare’s docs say JPEG sometimes compresses better. They put the saving from JPEG to WebP at around 17%.

Get Sahadat Husain’s stories in your inbox

Join Medium for free to get updates from this writer.

We ran our own files through Blinkimg’s engine at each format’s Auto setting. Auto sets quality by eye, not at an equal quality score.

  • Our 9.8 MB test photo, 4964 × 2782: JPEG 605.5 KB, WebP 329.0 KB. WebP is 45.7% smaller.
  • The same photo at 1920 × 1076: JPEG 140.3 KB, WebP 85.5 KB. WebP is 39.1% smaller.
  • A photo-like test image, 800 × 600: JPEG 74.7 KB, WebP 110.8 KB. WebP is 48.3% larger.
  • The test image cropped smaller: WebP was larger at 512 × 512 (50.4 KB against 36.1), 500 × 500 (47.9 against 34.5) and 400 × 400 (23.9 against 17.8). WebP was smaller at 150 × 150 (1.2 against 2.1) and 64 × 64 (0.3 against 0.7).
Press enter or click to view image in full size
A bar chart of JPEG against WebP at Auto quality. Our 9.8 MB test photo at 4964 by 2782: JPEG 605.5 KB, WebP 329.0 KB. The same photo at 1920 by 1076: JPEG 140.3 KB, WebP 85.5 KB. A photo-like test image at 800 by 600: JPEG 74.7 KB, WebP 110.8 KB
WebP won on the real photo and lost on the noisy test image. Measured with the Blinkimg engine; KB means 1,000 bytes.

The test image is a noisy gradient, and noise is expensive to compress. So the saving depends on the picture, not on the format’s name. On a real photo like ours, the site saves bandwidth and you inherit the compatibility problem.

How do you stop saving images as WebP?

Chrome has no switch for it. The request for a save-as-JPG option, Chromium issue 340303232, is still open. Firefox’s, Mozilla bug 1644950, has been open since June 2020. So each way below gets a JPEG from the server or converts your file once. The first ones give you the better file.

1. Use the site’s own Download button

If the site has its own Download button, use it first. On Google Photos, a Product Expert on Google’s help forum explains that Download in the three-dot menu returns the original file. Right-click saves the copy the page displays.

2. Change the address to ask for JPEG

Right-click the picture, choose Copy image address and paste it into a new tab. Change the part that asks for WebP or AVIF, press Enter, and save from that tab. These switches worked on 30 September 2026:

  • Cloudinary: change f_auto to f_jpg, or delete f_auto.
  • imgix: delete auto=format. Adding fm=jpg beside it still returned AVIF, as imgix's docs warn.
  • Shopify: add &format=pjpg to the end. &format=jpg still returned WebP.
  • Google’s image host: delete -rw from the end. That address returned a PNG.
Press enter or click to view image in full size
A table of address switches tested on 30 September 2026. Cloudinary: change f_auto to f_jpg or delete it, JPEG. imgix: delete auto=format, JPEG. Shopify: add &format=pjpg, JPEG. Google’s image host: delete -rw at the end, PNG
Each switch returned the original format to Chrome’s own image header. Sources: Cloudinary, imgix and Shopify documentation, and our curl test.

On other sites the address may have no switch at all. Then use way 3.

3. Download it with curl

curl, a download tool built into macOS and Windows 10 and 11, sends Accept: */*, which names no image format. In my test, all three CDNs answered it with the JPEG.

  1. Copy the image address, as in way 2.
  2. Open Terminal on a Mac, or Command Prompt on Windows.
  3. Run the command below with your address between the quotes. On Windows, type curl.exe instead of curl.
curl -o picture.jpg -w "%{content_type}\n" "PASTE-THE-IMAGE-ADDRESS-HERE"

curl saves picture.jpg in the folder the window opened in and prints the file’s real type. If it says image/webp, the site picks by the address: rename the file to .webp and try way 2. If the address carries a size, such as w=800, the JPEG comes at that size.

4. In Firefox, change what it asks for

Firefox has a setting, documented on MDN, that replaces the list it sends for images: image.http.accept. Firefox's source code leaves the setting empty, which means Firefox builds the list itself.

  1. Type about:config in the address bar and continue past the warning.
  2. Search for image.http.accept and set it to */*.
  3. Reload the page, then save the picture.

Firefox then asks for images the way curl does, and all three CDNs in my test answered that with a JPEG. Pages load the larger JPEGs meanwhile, so empty the value again when you are done.

5. Convert the file you saved, once

Check first whether you need to. WebP opens in the browsers of 96.74% of users (caniuse, August 2026 data). It also opens in Windows Photos with Microsoft’s WebP Image Extension, and in Photoshop 23.2 and later. If your app or form still refuses the WebP, convert once, from the best copy you have.

  • A folder of WebP files: Blinkimg’s WebP to JPG converter converts 10 files a run on the Free plan, with no signup.
  • A transparent logo or cut-out: convert the WebP to PNG instead. JPG has no transparency, so the background turns solid.
  • On a Mac: Preview opens WebP (I checked on macOS 26.5). Choose File > Export, then JPEG or PNG. Apple’s Preview guide adds a batch tip: open the files in one window, select them in the sidebar, then export.
  • An animated WebP: a JPG holds one frame, so keep the file as WebP.

Which popular fixes should you skip?

These five still circulate, and each one makes things worse:

  • Renaming the file to .jpg. A WebP file must begin with the letters RIFF and WEBP (Google’s container spec), and a rename keeps them. Any app or form that reads the first bytes still sees a WebP.
  • A Registry edit that saves WebP with a .jpg name. It is the same rename, done automatically.
  • An old browser, Internet Explorer or a User-Agent switcher. Internet Explorer is retired, and old browsers miss security fixes. A switcher changes how every site sees you.
  • A screenshot. You get the pixels at screen size, not the file.
  • Save Image as Type. Many how-to pages still recommend this extension. Google took it down in March 2026 after it was hijacked for affiliate fraud, with over a million users, gHacks reported. Other extensions now reuse the name.

Can a website serve WebP and still give people a JPG?

Yes. If you run a site, keep the saving and still hand people a JPG:

  1. Serve AVIF and WebP on the page. That is where the bytes are saved.
  2. Add a Download button that returns the original file.
  3. Answer saves with the JPEG. Chrome’s Save image as request carries Sec-Fetch-Dest: empty (Chromium issue 340303232), so your server can tell it from a page's image request.

Name the headers you choose by in Vary, such as Vary: Accept, so caches keep the versions apart. If your images are already WebP, compress the WebP files instead of going back to JPG.

Questions people ask

Why does Chrome save images as WebP?

Chrome saves images as WebP because the website sent WebP. Every Chrome image request lists AVIF and WebP among the formats it can show. So the site or its CDN often answers with one of them. Save image as keeps the file as it arrived and converts nothing. Chrome 99 made the save ask like the page, in March 2022.

How do I stop Chrome from saving images as WebP?

Chrome has no setting for it. Use the site’s own Download button first. Otherwise, change the image address to ask for JPEG, such as f_jpg instead of f_auto on Cloudinary. Or download the address with curl, which three CDNs answered with a JPEG in a September 2026 test. Convert the saved file only as a last resort.

Why does an image that ends in .jpg save as .webp?

The name in an address is only a label. The server’s reply carries a Content-Type header that says what the bytes really are. A CDN can send WebP or AVIF from an address ending in .jpg. Chrome’s save dialog then suggests the extension that matches the Content-Type, so the file lands as .webp.

Will my downloads start saving as JPEG XL?

Some will. Chrome 155, stable from 6 October 2026, decodes JPEG XL, and Chromium’s code then lists image/jxl first in every image request. In a test on 30 September 2026, Cloudinary’s demo answered that request with a JPEG XL file. Asking the server for a JPEG, by address or with curl, works for JPEG XL too.

Do Firefox and Safari save WebP too?

Yes, whenever the site sends WebP. Firefox 128 and later list AVIF and WebP first in image requests, according to MDN, and Safari’s WebKit code lists WebP first. Firefox also has a setting, image.http.accept in about:config, that replaces that list. Neither Chrome nor Firefox offers a save-as-JPG option in 2026.

Why is every PNG a WebP now?

Because many sites and CDNs send WebP to any browser that accepts it. An address ending in .png can deliver a WebP, since the reply’s Content-Type decides the format, not the name. Google says lossless WebP files are 26% smaller than PNGs, and WebP keeps transparency, so sites swap PNGs for WebP.

The next time an image saves as WebP

Check the address first. A format switch, the site’s Download button or one curl command gets you the site’s own JPEG. Convert only when none of those work, and only once.

When you do convert, Blinkimg turns WebP into JPG or PNG for free, 10 files a run, with no signup. It deletes every file within 24 hours. If you convert folders every week, Blinkimg Pro Max costs $8.50 a month and removes the 10-file limit on conversions.

--

I build Blinkimg (blinkimg.com), a free image compressor and converter for JPG, PNG, WebP, AVIF and HEIC. I test what images really weigh.

See more from me

Alt.
Alt.

Published in Alt.

Alt is a Medium publication by CTRL Magazine. A place for all things tech.