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

For lazy-loaded images, inserting an image tag within a noscript element allows Google to properly recognize and index them.
21:05
🎥 Source video

Extracted from a Google Search Central video

⏱ 58:29 💬 EN 📅 27/07/2018 ✂ 10 statements
Watch on YouTube (21:05) →
Other statements from this video 9
  1. 6:28 Comment Google transfère-t-il réellement les signaux lors d'une migration HTTPS ?
  2. 8:53 Pourquoi HTTP et HTTPS créent-ils deux index distincts dans la Search Console ?
  3. 10:30 Les guidelines des quality raters peuvent-elles pénaliser votre site directement ?
  4. 22:03 Les sitemaps d'images sont-ils vraiment utiles pour le référencement ?
  5. 24:44 Le contenu au-dessus du pli conditionne-t-il vraiment votre classement Google ?
  6. 26:18 Faut-il encore utiliser l'outil Fetch as Google pour indexer ses pages ?
  7. 35:06 La vitesse de crawl élevée dans la Search Console nuit-elle vraiment au classement ?
  8. 39:00 Googlebot traite-t-il vraiment les sites JavaScript aussi bien que les sites statiques ?
  9. 43:53 Une navigation mobile simplifiée peut-elle vraiment ruiner votre indexation mobile-first ?
📅
Official statement from (7 years ago)
TL;DR

Google recommends adding an image tag within a noscript element for each lazy-loaded visual to ensure its indexing. Without this fallback tag, Googlebot might miss some critical images for your SEO. This is a simple but often overlooked precaution that can be costly in terms of visibility on Google Images.

What you need to understand

Why does Google emphasize noscript tags for lazy-loading?

Natively lazy-loading (loading="lazy") or through JavaScript delays image loading until the user scrolls. This technique improves Core Web Vitals by reducing the initial page weight.

But here's the catch: Googlebot doesn’t always execute JavaScript or may not simulate a complete scroll. If your image depends solely on a script to load, the crawler might miss it. The noscript tag provides a safety net: it delivers the image URL even if JS doesn’t execute.

How does this noscript tag actually work?

Technically, you insert a standard img tag within a noscript element right after your lazy-loaded image. When the browser or bot detects that JS is disabled or not executed, it reads the noscript content and discovers the image.

In practice, this means an image is visible to humans through efficient lazy-loading and a static fallback version for bots. It's redundant, sure, but it's the price to pay to ensure that Google indexes your visuals.

Are all types of lazy-load affected?

Mueller's directive mainly targets custom JavaScript implementations (IntersectionObserver, third-party libraries). The loading="lazy" native HTML5 is normally recognized by Google, but even there, the noscript remains a safeguard.

If you're using a CMS with a lazy-load plugin, check its source code. Many popular WordPress plugins completely forget the noscript fallback, which may explain why certain product images or key infographics never appear in Google Images.

  • Lazy-loading boosts speed but can make your images invisible to Google if poorly implemented.
  • The noscript tag serves as a safety net to ensure indexing even if JS fails or is not executed.
  • Google explicitly recommends this practice through John Mueller, making it a standard to apply systematically.
  • Custom JS implementations are the most at risk; loading="lazy" HTML5 is better supported, but the noscript remains prudent.
  • Check your plugins and frameworks: many do not automatically generate the noscript fallback.

SEO Expert opinion

Is this recommendation really necessary for all sites?

Let's be honest: if your site isn’t getting any traffic from Google Images and your visuals are purely decorative, it might not be worth the trouble. But as soon as you sell products, publish infographics, or rely on visual traffic, ignoring this advice is a strategic mistake.

I’ve seen e-commerce sites lose 15 to 25% of organic traffic after migrating to a high-performing theme with aggressive lazy-loading but no noscript fallback. The product pages were indexed, yes, but the images? Invisible. The problem is that Google doesn’t alert you: images quietly vanish from the index.

Does noscript slow down the page?

Technically, noscript is only read if JS is disabled or not executed. For an average user with JS enabled (99% of cases), the browser completely ignores this block. Zero impact on initial weight, zero render-blocking.

However, be careful: if you duplicate every image with a complete tag in the noscript (with redundant srcset, sizes, alt), you increase the raw HTML size. Keep it minimal: just a basic img src is enough for indexing. [To check] on pages with 50+ images, the DOM impact can become measurable.

Do Google's testing tools detect this issue?

Neither Search Console nor Lighthouse clearly signals the absence of noscript for lazy-loaded images. Google Search Console may show a decrease in the number of indexed images, but without pointing to the root cause.

The only reliable way: inspect your HTML with JavaScript disabled in DevTools, or use the URL inspector in Search Console and manually check that the images show up in the rendered HTML. If they’re missing, it means your lazy-load lacks a fallback and Google is likely missing them too.

Practical impact and recommendations

What changes should be made in the code?

Identify each img tag with loading="lazy" or loaded via JS (data-src, class="lazyload", etc.). Immediately after this tag, insert a noscript block containing an identical image with a standard src.

Basic example: after your <img data-src="product.jpg" class="lazy">, add <noscript><img src="product.jpg" alt="Product description"></noscript>. That's all. The alt remains crucial in the noscript for SEO context.

How can I check if my images are being indexed?

Use the Google Search Console, "Performance" section, "Images" tab. Compare the number of detected images with the actual number on your site. A significant gap? Likely an indexing problem.

Another test: search site:yourdomain.com inurl:image-key.jpg in Google Images. If the image doesn’t appear even though it’s been online for weeks, that’s a red flag. Disable JS in Chrome DevTools and reload a product page: if the images don’t show up at all, Google can’t see them either.

What pitfalls to avoid during implementation?

Classic mistake: duplicating the complete srcset in the noscript. It's unnecessary and increases the DOM size. A simple src to the base image is more than sufficient for indexing.

Another trap: forgetting the noscript on critical above-the-fold images. If your hero banner or main product visual is lazy-loaded (bad idea, by the way), the noscript becomes vital. Even better: never lazy-load images that are visible on initial load, use fetchpriority="high" instead.

  • Audit all pages with lazy-loaded images (products, blog, landing pages)
  • Systematically add a noscript with an img src after each deferred image
  • Check in Search Console the evolution of the number of indexed images over 3 months
  • Test with JS disabled to ensure images remain visible in the raw HTML
  • Never lazy-load above-the-fold images (LCP candidates)
  • Prioritize high-SEO value product images and infographics for implementation
The noscript tag for lazy-loaded images is not optional; it’s a technical requirement if you want to ensure your indexing in Google Images. Implementation remains simple in theory, but checking it on a large scale for an e-commerce or editorial site can quickly become complex. If you lack technical resources internally or your audit reveals hundreds of affected pages, consulting a specialized SEO agency can speed up the effort and avoid costly mistakes. Personalized support can also help identify priority images and optimize the overall visual strategy to maximize organic traffic.

❓ Frequently Asked Questions

Le loading="lazy" HTML5 natif nécessite-t-il aussi un noscript ?
Officiellement, Google supporte le loading="lazy" natif, mais Mueller recommande le noscript comme filet de sécurité. En pratique, le noscript reste une bonne assurance même avec l'attribut natif.
Si j'ajoute un noscript, cela crée-t-il du contenu dupliqué pour Google ?
Non, Google comprend que le noscript est un fallback technique. Il n'indexe pas deux fois la même image, il utilise simplement le noscript comme source de secours si le JS échoue.
Les images en lazy-load sans noscript sont-elles totalement invisibles pour Google ?
Pas forcément. Si Googlebot exécute le JavaScript correctement, il peut voir l'image. Mais le risque existe, surtout sur des pages lourdes ou avec un JS complexe. Le noscript élimine ce risque.
Faut-il inclure l'attribut alt dans le tag image du noscript ?
Oui, absolument. L'alt fournit le contexte sémantique à Google. Sans lui, même si l'image est indexée, elle n'apparaîtra pas pour les bonnes requêtes dans Google Images.
Cette pratique impacte-t-elle les Core Web Vitals ou le score Lighthouse ?
Non. Le noscript n'est pas exécuté si le JS fonctionne, donc il n'affecte ni le LCP, ni le CLS, ni le poids initial perçu par Lighthouse. C'est totalement transparent pour la performance utilisateur.
🏷 Related Topics
Domain Age & History Crawl & Indexing Images & Videos

🎥 From the same video 9

Other SEO insights extracted from this same Google Search Central video · duration 58 min · published on 27/07/2018

🎥 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.