In a recent episode of Google’s Search Off the Record podcast, two leading Google developers issued a warning: Avoid Lazy-Loading on prominent, above-the-fold images is likely to harm site performance, specifically the Largest Contentful Paint (LCP)—a pivotal metric in Google’s Core Web Vitals.
Highlights
- Google engineers caution that lazy loading visible images—like hero or banner images—can substantially delay LCP.
- When an above-the-fold image is delayed, browsers treat it as low priority, extending loading time.
- Developers are urged to load only off-screen assets lazily and keep hero elements eager, with proper dimensions set.
- Confirm correct implementation by inspecting the rendered HTML—using Search Console’s URL Inspection tool to verify that image URLs appear in
src
orsrcset
.
“If you are using lazy loading on an image that is immediately visible, that is most likely going to have an impact on your LCP. It’s like almost guaranteed,” said Google webmaster trends analyst John Mueller, citing an example from developer-centric site developers.google.com where lazy loading every image by default caused slowdowns.
according to SEJ
Why Lazy Loading Hero Images Backfires
LCP measures the point when the largest visible element—typically a hero image or headline—is rendered on screen. In an ideal flow, the browser’s preload scanner flags this image as critical and fetches it early.
However, when the loading="lazy"
attribute is applied, the image is demoted in priority:
- The browser waits for render-blocking CSS and other work first.
- The image request is delayed.
- Scripts, styles, and other assets consume bandwidth before the hero image loads.
On slower connections or low-powered devices, this can significantly push back LCP and even cause visible layout shifts if image dimensions weren’t declared.
according to SEJ
Best Practices to Protect LCP
To avoid these performance pitfalls, Google recommends the following:
- Load above-the-fold images eagerly (omit
loading="lazy"
) and setwidth
andheight
to prevent layout shifts. - Use
loading="lazy"
only for content below the fold. - For dynamic sections or fallback templates (e.g., post-insertion carousels), ensure that final rendered HTML includes the actual image URLs in standard
src
orsrcset
attributes.
according to SEJ
Tools like Search Console’s URL Inspection are invaluable for verifying that the rendered HTML meets these criteria.
Insights from Across the Web
Web performance guides echo Google’s recommendations. For instance, the Core Web Vitals reference site explicitly advises making LCP images load eagerly:
“Lazy loading is a double-edged knife: load your critical content eagerly, and lazily load everything else.”
according to corewebvitals
Performance plugins for platforms like WordPress—including WP Rocket and Perfmatters—offer options to exclude above-the-fold images from lazy loading, addressing LCP without manual coding.
according to Kinsta
Even developer forums emphasize this principle:
“Don’t lazy load images above the fold. Preload them instead—especially the LCP element,” shared one performance engineer on Reddit
Summary Table
Image Type | Recommendation | Reason |
---|---|---|
Hero / LCP image | Eager load | Prevents LCP delay and layout shift |
Images below the fold | Lazy load | Saves bandwidth without compromising performance |
Background or JS-inserted | Eager/preload | Avoids delayed discovery through render-blocking JS |
Final Take on Avoid Lazy-Loading
Google’s message is clear: lazy loading is beneficial—but only when implemented thoughtfully. Using it on hero or above-the-fold images typically harms LCP and, by extension, user experience and search performance. Developers should instead reserve lazy loading for off-screen content, ensuring that prime visuals load promptly.
Rudra Singh writes about AI tools and productivity hacks for Rouser Tech.