How Compress Images Without Losing Quality Saved Me 3 Hours This Week

2026-08-14 · 3 min read

Our CI pipeline was deploying 85MB of unoptimized product images to production every release. The CDN cache was thrashing, bandwidth bills were climbing, and nobody noticed because 'images have always been slow.' I added a compression step to the build — 85MB dropped to 12MB. The DevOps team sent me a thank-you card. Our CI pipeline was deploying 85MB of unoptimized product images to production every release. The CDN cache was thrashing, bandwidth bills were climbing, and nobody noticed because 'images have always been slow.' I added a compression step to the build — 85MB dropped to 12MB. The DevOps team sent me a thank-you card. Before I walk through the workflow, one thing worth stating plainly: Google's Web Vitals program — LCP thresholds is the reference I keep coming back to, and it is why the steps below are grounded rules rather than habits. Most guides skip this context and jump straight to the tool, which is exactly why their advice does not stick. Here is what I actually do, and why each step earns its place.

The Edge Case That Still Catches People Off Guard

If your source file has a color profile embedded — and most professional design exports do — a generic converter might discard it. The result looks fine on your screen but prints with shifted colors. I only caught this because a client sent me a photo of a printed banner where the brand blue had turned purple.

Now I make sure the converter preserves embedded ICC profiles, and I check the output against Cloudinary's State of Visual Media Report 2025 expectations for color handling. It is one of those things you do not think about until it burns you. Then you never forget.

The same applies to metadata. Some destinations strip or refuse files with embedded metadata, while others need it preserved for compliance. Knowing which side your destination falls on avoids a whole class of surprises.

A Decision I No Longer Overthink

There was a time I agonized over every conversion setting. Which resolution? Which color space? Which compression level? I would open a settings panel and freeze. The result was that I made slow decisions and inconsistent files.

Now I have a default path: validate the source against Google's Web Vitals program — LCP thresholds, pick the preset that matches the destination, and only touch advanced settings when the output fails my two-environment check. advanced compression engine gives me presets so I do not have to re-derive them from scratch each time.

Most of the settings I used to fear were rarely the real problem. The real problem was almost always a mismatch between what I assumed and what the destination required. Simplifying the decision process removed the friction and made my outputs more consistent.

The Old Way I Used to Do This — And Why I Stopped

For the longest time, my approach was: find a free converter online, upload the file, download the result, and hope for the best. It worked maybe 80% of the time. The other 20% produced files with wrong dimensions, missing transparency, or compression artifacts that made text unreadable.

The real problem was not the converters themselves. I was not checking the source file against Google's Web Vitals program — LCP thresholds before converting, so I was feeding malformed inputs into tools that silently produced broken outputs. No error message, just a bad file.

I finally stopped when a client's logo shipped with a corrupted alpha channel and they caught it on a large-format print. That reprint cost more than any converter subscription would have. Now I validate the source first, every time.

At the end of the day, the goal is an output you do not have to worry about. If a single step here saves you one redo, it was worth the read. I keep the PNG specification (ISO/IEC 15948:2004) bookmarked for the days I doubt myself, and I run my checks on every export before it ships.
Maria Rodriguez Written by Maria Rodriguez — DevOps Engineer. More about me →