SolisReach
← Journal
Web Performance5 min read

Image optimization: the five-minute fix most sites still skip

Written by the SolisReach team

In nearly every single performance audit we run for a new client, unoptimized images turn out to be the single largest contributor to overall page weight, and simultaneously usually the easiest issue on the whole list to actually fix. A hero image exported straight from a camera at full native resolution and dropped directly into a CMS without any processing can easily be five to ten times larger in file size than it genuinely needs to be for how it's actually displayed on the page.

Serve the specific size the layout actually needs, nothing more

A 4000-pixel-wide source image displayed inside an 800-pixel container on the actual page is wasting the overwhelming majority of its total file size on fine visual detail no browser will ever actually render to the user. Responsive images, serving genuinely different sized files for different screen widths using the standard srcset attribute, are a fully solved technical problem in most modern frameworks today, and simply not implementing this correctly remains the single most common oversight we find in client audits.

Modern image formats cut file size further, essentially for free

WebP and the newer AVIF format both produce meaningfully smaller resulting files than traditional JPEG or PNG at genuinely equivalent visual quality, often somewhere between 25 and 50 percent smaller in practice, with essentially universal browser support at this point in time. Serving these newer formats with a JPEG fallback available for the rare remaining older browser is about as close to a completely free performance win as exists in web development today.

Lazy loading images that sit below the visible fold

Images that aren't actually visible on the initial page load genuinely don't need to load immediately, needlessly competing for limited network bandwidth with the content that's actually visible to the user right away. Native browser lazy loading, a single simple HTML attribute at this point in browser support, effectively defers offscreen images until a visitor actually scrolls near them, which noticeably speeds up the perceived initial page load for longer, genuinely image-heavy pages.

Why we automate this instead of relying on manual compression

Manual image compression before each upload works until someone forgets, which happens reliably within the first few months on almost every project we've observed. We now set up automated image optimization in the build pipeline itself wherever the platform allows it, so the fix applies by default rather than depending on someone remembering a manual step every single time.

The real before-and-after numbers from a typical client audit

On one recent client site, a homepage carrying roughly 8 megabytes of unoptimized images dropped to just under 1.5 megabytes after implementing responsive sizing, modern format conversion, and lazy loading together, with no visible difference in image quality that any real visitor could actually detect on a normal display. Largest Contentful Paint on that same page moved from 4.6 seconds to 1.9 seconds, entirely from this one category of fix, without touching any other part of the site's code or infrastructure.

This is a genuinely typical result, not an unusually dramatic outlier we're cherry-picking for effect. We see comparable improvements on the large majority of sites we audit that haven't already had a dedicated image optimization pass done, which is part of why we recommend it as the very first fix on almost every performance engagement we take on.

On one recent client site, a homepage carrying roughly 8 megabytes of unoptimized images dropped to just under 1.

How CDN-based image optimization services fit into this picture

For clients without an easy way to build automated optimization directly into their own build pipeline, a CDN-based image optimization service handles resizing, format conversion, and compression on the fly at request time, transforming a single source image into whatever specific size and format a given visitor's browser actually needs, without requiring any change to the underlying CMS or asset management workflow at all.

We recommend this approach specifically for clients on platforms where a deeper build-pipeline integration isn't practical or cost-effective, since it delivers most of the same real performance benefit with meaningfully less upfront engineering setup, at the cost of a small, genuinely worthwhile ongoing service fee.

What we check to make sure this stays fixed after launch

Fixing a site's existing images once doesn't prevent a content editor from uploading a fresh, unoptimized 12-megabyte photo six months later, straight from a phone's camera roll, undoing a meaningful part of the earlier optimization work without anyone necessarily noticing right away. We add an automated image weight check to the same monitoring we use for other performance regressions, flagging any newly published page that meaningfully exceeds an established image weight budget for that specific page type.

This catches the problem within days of it happening rather than months later during the next scheduled full audit, which keeps the original optimization work from slowly eroding in the background as new content gets added to the site over time by people who aren't necessarily thinking about performance while they're focused on getting new content published.

How we explain this to a client's content team without sounding pedantic

Content editors aren't going to remember a technical rule about ideal file dimensions and compression ratios in the middle of a busy publishing day, and lecturing them about it after the fact tends to breed quiet resentment rather than actually changing behavior going forward. We instead build the optimization directly into the upload experience itself wherever the platform allows it, so an editor uploading a full-resolution photo gets it automatically resized and compressed on the way in, without needing to remember a manual step or a specific technical rule at all.

Where the platform genuinely can't support automatic optimization on upload, we provide a short, plain-language one-page guide instead, focused entirely on the two or three things that matter most, rather than a comprehensive technical document nobody on a busy content team will realistically ever read start to finish.

Removing the need for a human to remember anything at all is always the better fix when it's genuinely available, and we treat the plain-language guide as a fallback for the specific platforms where that automation isn't yet an option, not as our actual first choice of solution.

Start a project

Want this applied to your site?

We run a Core Web Vitals and SEO audit before quoting any performance marketing engagement, and we're happy to share what we'd find on yours.