Largest Contentful Paint usually comes down to one image
Of the three Core Web Vitals, Largest Contentful Paint (LCP) is the one images break most often. LCP measures how long it takes the biggest visible element - frequently a hero banner or the first product photo - to fully render. If that file is heavy, everything downstream waits for it, no matter how fast your server responds.
The chain reaction from bytes to rankings
Google has been explicit that page experience, including Core Web Vitals, factors into ranking - modestly, alongside relevance and authority, but not something to ignore on competitive queries. The mechanism is simple: heavier images increase bytes transferred, bytes transferred increase LCP, and a slow LCP nudges both user experience metrics and search signals in the wrong direction at once. Compression is one of the few optimizations that improves speed, cost, and rankings with a single action.
How much compression is actually enough
There is no universal percentage that works for every photo. Judge by outcome instead: does the compressed file look correct at the size it will actually display, and is the byte count meaningfully smaller than the original? Compress Images shows the before/after size so you are not guessing.
Above-the-fold images deserve first attention
Not every image on a page affects LCP. The element that paints first - almost always something visible without scrolling - is the one worth obsessing over. Below-the-fold images still matter for total page weight and should be compressed too, but pair them with lazy loading so they do not compete with the LCP candidate for bandwidth on initial load.
- Compress and prioritize the hero or first product image above everything else
- Lazy-load gallery and footer images that load later anyway
- Avoid render-blocking scripts that delay the image request itself
Measuring before and after, not just trusting the tool
Run a real measurement - PageSpeed Insights, Lighthouse, or your analytics vendor's field data - before and after a compression pass. Lab tools show what is possible; field data confirms whether it actually moved LCP for the audience that matters. A win in a lab test that does not show up in field data usually means something else on the page is now the bottleneck.
Mistakes that quietly undo compression gains
- Compressing a file that is still far larger than its display size - resize first, then compress
- Serving a WebP file behind markup that still requests a legacy fallback for everyone
- Re-uploading an "optimized" export from a design tool without checking the resulting byte size
- Forgetting that a CDN cache can keep serving the old, heavy file until it is purged
Building compression into the publishing habit
The teams that keep Core Web Vitals healthy do not run a one-time cleanup - they make compression part of how every image gets published. A quick pass through Compress Images before upload, or a batch job for whole content libraries, keeps new content from re-introducing the problem a redesign just fixed. Pair it with correctly sized exports from Resize Images so compression is working on files that were never oversized to begin with.
None of this requires a performance engineer. It requires a habit, applied consistently, on the images that actually paint first.
Why mobile networks make the problem worse
Lab tests on a fast office connection can hide exactly how bad an unoptimized image feels on a mid-range phone over cellular data. A file that loads acceptably on fiber can add a full second or more to LCP on a throttled 4G connection - and a meaningful share of any audience is on exactly that kind of connection at any given moment. Testing with network throttling enabled, not just on a fast desktop, is the only way to see the experience most visitors actually have.
This is also why compression pays off disproportionately for markets and audiences on slower or metered connections: every kilobyte saved is a kilobyte that does not cost a visitor time or, in some regions, literal mobile data charges.
Compression as part of a broader speed budget
Images are rarely the only reason a page is slow, but they are usually the biggest single lever available without touching code, fonts, or third-party scripts. Set a rough byte budget per page template - a maximum combined image weight for the visible viewport - and treat any page that exceeds it as needing a compression pass before anything else gets optimized. It is a far faster win than most JavaScript or font-loading investigations, and it compounds well with them once compression is already handled.
Picnie at Picnie. Writes about image automation, developer experience, and shipping product faster.