I get asked some version of this question constantly: why do some compressed photos still look great at a tiny file size, while others turn to mush the second you touch a quality slider? It's not really about the tool doing the compressing. It's about which part of the image you squeeze, and by how much.
Here's the part almost nobody tells you upfront. JPEG quality doesn't lose detail at a steady rate as you turn it down. From 100% to about 85%, you genuinely won't spot a difference on most photos, but the file size already drops a fair bit. Keep going past 40% and things fall off a cliff pretty fast — blocky squares around edges, skin tones going slightly gray, skies turning blotchy. Most of the real savings happen somewhere in that 60–85% window. Most of the damage happens under 30%.
So the better approach isn't picking a quality number and hoping for the best. It's telling something your target size and letting it test qualities from high to low until it finds the first one that actually fits. That's really the whole trick behind "get me to 50 KB" style tools. They're not smarter about compression itself, they're just not guessing blindly the way a person dragging a slider back and forth usually is.
Resolution matters more than people assume
Quality gets all the attention, but pixel count is honestly the bigger lever. A 4000×3000 photo squeezed down to 30% quality is still storing three or four times as much detail-per-inch as a 2000×1500 version sitting at 60% quality. And the smaller one usually looks noticeably better, because the compression isn't fighting nearly as hard to hide anything.
If you're not printing this or zooming into it later, you almost never need the full resolution your camera handed you. 1600px on the long edge covers basically every website, social post, and form upload I've run into. Trim the dimensions first, then compress. It's a much easier job for the algorithm at that point, and it shows.
Which is more or less the whole story behind cutting a 1.2 MB photo down to 50 KB or less. It sounds like a brutal 96% cut (and it kind of is), but almost none of that original size was doing anything useful for you — it was resolution nobody was going to see, at a level of detail nobody needed. Trim the dimensions to something sensible, aim for 65–75% quality, and 50 KB stops being a fight.
A quick note on format
JPEG has stuck around this long because photos are exactly what it was built for: gradual color shifts, no hard edges to speak of. Try saving a screenshot or a logo as JPEG and you'll see weird fuzzy halos around the text edges — that's the format doing something it was never designed for. PNG flips that around: excellent for flat colors and screenshots, wildly oversized for photos. WebP usually splits the difference nicely, and I'd default to it now if I didn't occasionally still run into some older CMS that handles it badly.
After doing this more times than I'd like to admit, here's my actual rule of thumb: figure out what the image is for before you touch a single compression setting. A homepage banner earns more care than a thumbnail buried three clicks deep in a product grid. Match the effort to where it's actually seen, not the other way around.
If you'd rather skip the manual guessing entirely, ImgReduce runs that quality search for you — you just tell it the target size.