Use a JPEG quality of 80 to 85 for images on the web, and 90 to 95 for files you keep, edit or print. Skip 100. Quality 100 is not lossless, and it costs far more than it gives: on 55 lossless images from the Heart Photos wall, a quality 100 JPEG was about four times the size of the same image at quality 85 by median, for a small gain in measured fidelity. Whatever you pick, save from the original, not from a JPEG you already saved.
What does the JPEG quality number mean?
It is a setting for how much detail the encoder may throw away, not a percentage of the image you keep. A lower number divides the image's fine detail into coarser steps, so the file gets smaller and small errors appear, first in smooth gradients and around sharp edges.
The number is a convention of the software, not of the format. The JPEG standard (ISO/IEC 10918, created in 1992) does not define one, which is why a slider in one app may not match the same number in another. Pillow, the Python library we used below, defaults to 75 and warns that "values above 95 should be avoided." Treat any number as a starting point and look at the result.
How much smaller is each quality setting?
On Nov 6, 2026 we took the 55 PNG originals in the wall's Made by AI tag that are not photographs of people: landscapes, interiors, logos and game screenshots, from 0.6 to 4.2 megapixels (1.5 by median). PNG is lossless, so each one is a clean starting point, as a camera's RAW file or an editor's master would be. We saved each one as a JPEG at nine quality settings with Pillow 12.1.1 and libjpeg-turbo 3.1.3, using its defaults, which store color at half the resolution of brightness (4:2:0 chroma subsampling). Then we decoded every JPEG and compared it with the PNG using SSIM (structural similarity, from scikit-image 0.26), where 1.0 means identical.
| Quality | Median file | Median size vs quality 100 | All 55 together | Median SSIM | Lowest SSIM |
|---|---|---|---|---|---|
| 50 | 116 KB | 13% | 8.1 MB | 0.939 | 0.855 |
| 60 | 131 KB | 15% | 9.5 MB | 0.947 | 0.878 |
| 70 | 154 KB | 17% | 10.9 MB | 0.951 | 0.868 |
| 75 | 169 KB | 19% | 11.9 MB | 0.961 | 0.900 |
| 80 | 194 KB | 22% | 14.7 MB | 0.964 | 0.920 |
| 85 | 231 KB | 25% | 16.8 MB | 0.973 | 0.930 |
| 90 | 294 KB | 32% | 20.3 MB | 0.979 | 0.943 |
| 95 | 443 KB | 47% | 29.2 MB | 0.984 | 0.959 |
| 100 | 976 KB | 100% | 57.8 MB | 0.992 | 0.972 |
The 55 PNGs came to 127.0 MB together, so even quality 100 was less than half their size, and quality 85 about 13%.
What stands out is how the cost climbs at the top. Each step from 50 to 90 adds a little size for a little fidelity. From 90 to 95 the files grow by half, and from 95 to 100 they double again. Side by side at actual size, we could not pick out the quality 75 or 90 crops of a striped sail and a game map from the PNG; your eyes and your images are the final test.
Two honest caveats. SSIM is one measure of what people see, not the whole of it, and these are one wall's images, many of them made by AI, not a scientific test set.
Is JPEG quality 100 lossless?
No. Not one of our 55 images came back identical at quality 100. With the default color subsampling, some pixels were off by as much as 127 out of 255 at sharp colored edges, because half the color detail was gone before the quality setting applied. Even with subsampling turned off (Pillow's subsampling=0, called 4:4:4), every image still differed, by up to 4 or 5 levels per channel, and the files grew to 157% of the default quality 100 file by median.
If you need every pixel back, use a lossless format: PNG, lossless WebP or lossless JPEG XL. Our PNG vs WebP post measured those three.
What quality do Google's tools expect?
Lighthouse, the page audit built into Chrome, checks JPEGs by setting each one's compression level to 85 and comparing the sizes; it flags an image when that would save 4 KiB or more. That is not a rule that 85 is right for every image, but it tells you where Google's tools draw the line. Since Lighthouse 13 the check lives in its "Improve image delivery" insight. web.dev's own advice is the same as ours: try several quality levels and find the best trade between quality and size for each kind of image.
Does saving a JPEG again lose quality?
Yes, a little each time, and you cannot get it back. We saved each of the 55 images at quality 85, opened the JPEG and saved it again at 85, ten times over:
| Saves at quality 85 | Median SSIM vs the PNG | Lowest |
|---|---|---|
| 1 | 0.973 | 0.930 |
| 2 | 0.971 | 0.923 |
| 5 | 0.970 | 0.916 |
| 10 | 0.969 | 0.913 |
That is the gentle case: the same app, the same setting, no edits in between. Cropping, resizing, changing the setting or switching apps between saves tends to cost more. So keep an original, edit from it, and export a JPEG only at the end.
Which quality should you use for what?
| If the JPEG is for | Use | Why |
|---|---|---|
| A web page or a blog | 80 to 85 | Where Lighthouse checks, a quarter of quality 100's size here |
| An email or a chat | 75 to 85 | Small enough to send, still clean on a phone |
| Prints and photo labs | 90 to 95 | Headroom for large sizes and smooth skies |
| Your archive or further editing | 95, or better a lossless format | Every later save loses more |
| Thumbnails and previews | 60 to 75 | Small on screen, where errors hide |
Smooth gradients, such as skies, studio backdrops and dark scenes, show errors first, so give them a higher setting than busy scenes like foliage. If the image will be shown at a smaller size than the file, resize it first: what size images should be for a website saves far more than any quality setting. And for the web, a modern format beats any JPEG setting, as AVIF vs JPEG XL vs WebP shows.
Frequently asked questions
Is JPEG quality 80 good enough?
For the web, usually yes. On our images it was about a fifth of quality 100's size with a median SSIM of 0.964. Raise it for gradients and for anything you will print or edit again.
Is 90 or 100 better for printing?
90 to 95. Quality 100 doubled the file over 95 on our images for a small measured gain, and it is still not lossless. If a lab accepts TIFF or PNG and you want no loss at all, send that.
Why is my JPEG bigger after I compressed it?
Usually because it was saved again at a higher setting than the original used, which keeps the old errors and spends bytes describing them. Saving at a lower setting than before makes it smaller, but loses more detail. Start from the original instead.
Does the quality number mean the same in every app?
No. The JPEG standard does not define a quality scale, so apps map their sliders in their own ways. Compare the files you get rather than the numbers.
Does converting HEIC to JPEG need a high quality?
Yes, around 90, since the image is compressed a second time on top of what HEIC already dropped. Our HEIC to JPEG guide covers how on each system.
What Heart Photos does
Heart Photos does not save your JPEG again. A JPEG you upload is kept losslessly as JPEG XL, and Download Original hands you back the very file you uploaded, byte for byte. What visitors see is made from that original: AVIF at one fixed house setting, chosen by measuring fifty photographs, in the sizes each screen needs. So upload your best export, at 90 or 95 if you have the choice, and let the library make the smaller copies.
To see it on your own images, Open Heart Photos and upload one.