What does Google say about SEO? /
Quick SEO Quiz

Test your SEO knowledge in 5 questions

Less than a minute. Find out how much you really know about Google search.

🕒 ~1 min 🎯 5 questions

Official statement

Deferred loading of images via lazy loading can affect when Googlebot discovers images for indexing. Make sure that critical images for SEO are not omitted by the lazy loading technique.
60:09
🎥 Source video

Extracted from a Google Search Central video

⏱ 1h23 💬 EN 📅 17/12/2019 ✂ 10 statements
Watch on YouTube (60:09) →
Other statements from this video 9
  1. 9:29 Le nofollow est-il devenu un simple conseil que Google peut ignorer à sa guise ?
  2. 14:36 L'API d'indexation Google : faut-il vraiment oublier son utilisation pour vos pages classiques ?
  3. 16:54 La vitesse de page influence-t-elle vraiment le classement Google en 2025 ?
  4. 24:09 Les domaines expirés sont-ils vraiment inutiles pour le SEO ?
  5. 46:38 Pourquoi les requêtes automatiques vers Google peuvent-elles tuer votre stratégie SEO ?
  6. 55:36 Les données structurées peuvent-elles vraiment déclencher une pénalité pour cloaking ?
  7. 66:15 BERT améliore-t-il vraiment la compréhension de vos contenus par Google ?
  8. 67:39 Comment gérer l'explosion du crawl de Googlebot qui fait planter votre serveur ?
  9. 80:12 Les Core Updates Google récompensent-elles vraiment la « qualité » ?
📅
Official statement from (6 years ago)
TL;DR

Google confirms that lazy loading can delay or block the discovery of images by Googlebot, affecting their indexing. Specifically, if your critical images (products, premium visual content) are deferred, they may never be crawled. The solution? Exclude all images above the fold and those essential for SEO from lazy loading.

What you need to understand

Why does lazy loading pose a problem for Googlebot?

The native lazy loading (loading="lazy" attribute) or JavaScript is based on a simple principle: load an image only when it enters the user's viewport. The catch? Googlebot doesn't have a viewport in the traditional sense.

When the bot crawls a page, it simulates a fixed window rendering (usually 1024×768 on desktop). Images that are lazy-loaded below this area do not always "trigger". The result: Googlebot may leave without having discovered them. No indexing in Google Images, no visual SEO.

Are all lazy loading techniques equally problematic?

No, but detection varies by implementation. Native lazy loading (HTML5) has been better managed by Googlebot since 2020, but is still subject to rendering limitations. Custom JavaScript, on the other hand, is a lottery — some scripts wait for a scroll event that Googlebot never triggers.

The frameworks (React, Vue, Next.js) add a layer of complexity. If the image is injected via a component that waits for a DOM event, it will only be visible after hydration. And if the bot does not execute or stops the JS before that, the image disappears from the crawl.

What is a "critical image for SEO"?

Google refers to "critical" images, but remains vague on the definition. Essentially, consider any image carrying SEO significance as critical: product visuals in e-commerce, recipe photos, infographics, author portraits, partner logos, before/after images.

Conversely, purely decorative images (icons, background patterns, redundant illustrations) can be lazy-loaded without risk. The principle: if an image can generate traffic via Google Images or enhance the user experience before scrolling, it should be loaded immediately.

  • Googlebot does not have scrolling behavior, so images below the first viewport are likely to be ignored
  • Native lazy loading (HTML5) is better supported than custom JavaScript solutions, but still has blind spots
  • Critical images (products, key visual content) must be explicitly excluded from lazy loading
  • Modern frameworks (React, Next.js) require special attention to hydration and SSR
  • Google Images remains a significant acquisition channel: do not sacrifice its potential for a 0.5s gain in LCP

SEO Expert opinion

Is this statement consistent with what is observed on the ground?

Yes, but with a crucial nuance. Since 2020, Google has improved its management of native lazy loading, and most well-configured sites do not lose image indexing. However, problematic cases remain numerous: sites that lazy-load everything thoughtlessly, poorly configured CMSs (WordPress with aggressive plugins), SPA frameworks where images are injected via JavaScript without SSR.

In recent audits, I’ve seen e-commerce shops lose 50 to 70% of their Google Images traffic after enabling a lazy loading plugin for all product images. Overall SEO traffic dropped by 15-20% because Google Images was a major acquisition channel. Fixing the configuration took 48 hours, recovering traffic took 3 to 6 weeks.

What nuances should be applied to this advice?

Google deliberately simplifies. The real issue is not "lazy loading = danger", but "poorly implemented lazy loading = danger". If you use the native attribute loading="lazy" only on images below the fold AND your HTML is clean (no empty src or data-src without fallback), the risk is almost nil.

However, if you use a JS library that replaces all src with data-src and waits for an IntersectionObserver to load, you're playing with fire. Googlebot may execute the JS, but not always completely — especially if your page is slow or poorly coded. [To be verified]: Google has never published data on the rate of successful JS execution during crawling. We are working in the dark.

In what cases does this rule not apply?

If your site is purely textual (analysis blog, corporate site without strategic visuals), lazy loading is a non-issue. Likewise, if you’re targeting no Google Images traffic and your images contain no SEO content (pure decoration), you can lazy-load everything without remorse.

Another case: sites with marginal organic traffic or images already indexed elsewhere (reuse of brand visuals). But let’s be honest, these cases are minority. Most e-commerce sites, media, SaaS, agencies have a strategic interest in indexing their visuals. Neglecting Google Images is leaving 10 to 30% of potential traffic on the table.

Attention: Static site generators (Gatsby, Hugo) and certain builders (Elementor, Divi) lazy-load ALL images by default. Check the initial configuration; otherwise, your hero visuals may disappear from the index.

Practical impact and recommendations

What concrete actions should be taken on your site?

First instinct: audit the current state. Go to Google Search Console, in the "Performance" section, under the "Images" tab. If your image impressions and clicks have been plummeting for X months, it's probably related to lazy loading. Cross-check with a Screaming Frog or Oncrawl crawl in "JavaScript rendering" mode: how many images are detected in raw HTML vs. after rendering?

Next, identify your critical images — those that need to be indexed. For each, remove the loading="lazy" attribute or add them to an exception in your JS script. In WordPress, configure your plugin to exclude images from the first screen (CSS class .hero, .featured-image, etc.). In Next.js, use priority={true} on the relevant Image components.

What mistakes should you absolutely avoid?

Mistake number 1: lazy-loading all images by default without distinction. It's the SEO equivalent of burning cash. Mistake number 2: using a heavy JavaScript lazy loading that blocks the main thread and slows down execution — Googlebot can timeout before seeing the images.

Mistake number 3: not testing in real conditions. Your site might work locally but fail in production if the JS takes too long to load. Use Google Search Console (URL inspection) to check the rendering as Googlebot sees it. If your images do not appear in the screenshot, they are not indexed.

How can I check if my implementation is compliant?

Test with the "URL Inspection" tool in GSC. Enter a page with critical images, click on "Test live URL", then "View crawled page". Check that all your key images appear in the screenshot and the HTML source code ("More info" tab > "HTML"). If an image is missing, it won't be indexed.

Complete this with a Screaming Frog crawl in "JavaScript enabled rendering" mode. Compare the number of images detected with/without JS. A discrepancy of more than 20% indicates a problem. Finally, monitor your Google Images performance in GSC for 4 to 6 weeks after any changes — image indexing is slower than text indexing.

  • Disable lazy loading on all images above the fold
  • Exclude product images, recipe visuals, main photos on key pages from lazy loading
  • Use the native loading="lazy" attribute rather than a custom JavaScript library
  • Systematically test with Google Search Console's "URL Inspection" tool
  • Ensure that the source HTML has filled src attributes (no data-src alone)
  • Monitor Google Images performance in GSC after each modification
Lazy loading is an essential technical optimization for Core Web Vitals, but if misconfigured, it sabotages image indexing. The right balance: lazy-load everything that is below the fold AND non-critical, load the rest immediately. If you manage an e-commerce site, media outlet, or institutional site with a substantial volume of images, these trade-offs can quickly become complex. Consulting a specialized SEO agency can help avoid costly mistakes and support you in a tailored implementation, adapted to your technical architecture.

❓ Frequently Asked Questions

Le lazy loading natif (attribut HTML loading="lazy") est-il sûr pour le SEO ?
Oui, à condition de l'appliquer uniquement aux images below the fold. Google supporte cet attribut depuis 2020, mais les images au-dessus de la ligne de flottaison doivent rester en chargement immédiat pour garantir leur indexation.
Comment savoir si mes images sont indexées par Google ?
Vérifiez dans Google Search Console, onglet « Performances », puis filtrez par type de recherche « Images ». Si vos impressions/clics chutent ou sont inexistants, vos images ne sont probablement pas indexées. Confirmez avec l'outil « Inspection d'URL ».
WordPress lazy-loade toutes mes images par défaut, que faire ?
Depuis WordPress 5.5, le lazy loading natif est activé automatiquement. Utilisez un plugin (comme Perfmatters ou WP Rocket) pour exclure les images critiques (featured images, logos, visuels héros) ou ajoutez loading="eager" manuellement dans votre thème.
Le lazy loading JavaScript est-il plus risqué que le lazy loading natif ?
Oui, nettement. Les solutions JavaScript (bibliothèques type lazysizes, lozad) dépendent de l'exécution complète du JS par Googlebot, ce qui n'est pas garanti. Si le bot timeout ou n'exécute pas le script, les images restent invisibles.
Faut-il lazy-loader les images de fond CSS (background-image) ?
Les images CSS ne sont jamais indexées par Google Images, donc le lazy loading n'a aucun impact SEO négatif. En revanche, assurez-vous qu'elles se chargent assez vite pour ne pas pénaliser le LCP si elles sont visibles au-dessus de la ligne de flottaison.
🏷 Related Topics
Domain Age & History Content Crawl & Indexing AI & SEO Images & Videos Web Performance

🎥 From the same video 9

Other SEO insights extracted from this same Google Search Central video · duration 1h23 · published on 17/12/2019

🎥 Watch the full video on YouTube →

Related statements

💬 Comments (0)

Be the first to comment.

2000 characters remaining
🔔

Get real-time analysis of the latest Google SEO declarations

Be the first to know every time a new official Google statement drops — with full expert analysis.

No spam. Unsubscribe in one click.