What does Google say about SEO? /

Official statement

Googlebot does not execute Service Workers. If a site uses a Service Worker to serve WebP images instead of JPEG/PNG, Googlebot will only see the original formats (JPEG/PNG), not the WebP. This does not affect image crawling, but Google will not index the WebP versions served solely via Service Worker.
49:09
🎥 Source video

Extracted from a Google Search Central video

⏱ 51:17 💬 EN 📅 12/05/2020 ✂ 37 statements
Watch on YouTube (49:09) →
Other statements from this video 36
  1. 1:02 Should you overlook the Lighthouse score to optimize your SEO?
  2. 1:02 Is page speed really a Google ranking factor?
  3. 1:42 Do Lighthouse and PageSpeed Insights really have no impact on rankings?
  4. 2:38 Do Google's Web Vitals really model user experience?
  5. 3:40 Is it true that page speed is as crucial a ranking factor as claimed?
  6. 7:07 Is it really a good idea to inject the canonical tag through JavaScript?
  7. 7:27 Can you really inject the canonical tag via JavaScript without risking your SEO?
  8. 8:28 Does Google Tag Manager really slow down your site, and should you abandon it?
  9. 8:31 Is GTM really sabotaging your loading time?
  10. 9:35 Is serving a 404 to Googlebot while showing a 200 to visitors really cloaking?
  11. 10:06 Is it really cloaking when Googlebot sees a 404 while users see a 200?
  12. 16:16 Are 301, 302, and JavaScript redirects really equivalent for SEO?
  13. 16:58 Are JavaScript redirects truly equivalent to 301 redirects for Google?
  14. 17:18 Is server-side rendering truly essential for Google SEO?
  15. 17:58 Should you really invest in server-side rendering for SEO?
  16. 19:22 Does serialized JSON in your JavaScript apps count as duplicate content?
  17. 20:02 Does the JSON application state in the DOM create duplicate content?
  18. 20:24 Is Cloudflare Rocket Loader passing Googlebot's SEO test?
  19. 20:44 Should you test Cloudflare Rocket Loader and third-party tools before activating them for SEO?
  20. 21:58 Should you worry about 'Other Error' messages in Search Console and Mobile Friendly Test?
  21. 23:18 Should you really be concerned about the 'Other Error' status in Google's testing tools?
  22. 27:58 Should you choose one JavaScript framework over another for your SEO?
  23. 31:27 Does JavaScript really consume crawl budget?
  24. 31:32 Does JavaScript rendering really consume crawl budget?
  25. 33:07 Should you ditch dynamic rendering for better SEO results?
  26. 33:17 Is it really time to move on from dynamic rendering for SEO?
  27. 34:01 Should you really abandon client-side JavaScript for indexing product links?
  28. 34:21 Does asynchronous JavaScript post-load really hinder Google indexing?
  29. 36:05 Is it really necessary to switch to a dedicated server to improve your SEO?
  30. 36:25 Shared or Dedicated Server: Does Google really make a difference?
  31. 40:06 Is client-side hydration really a SEO concern?
  32. 40:06 Is SSR + client hydration really safe for Google SEO?
  33. 42:12 Should you stop monitoring the overall Lighthouse score to focus on the Core Web Vitals metrics that matter for your site?
  34. 42:47 Is striving for 100 on Lighthouse really worth your time?
  35. 45:24 Is it true that 5G will accelerate your site, or is it just a mirage?
  36. 49:09 Is it true that Googlebot overlooks your WebP images served by Service Worker?
📅
Official statement from (5 years ago)
TL;DR

Martin Splitt confirms that Googlebot does not execute Service Workers. If your strategy for serving WebP images relies solely on this technology, Google will index the original JPEG/PNG formats, not the optimized versions. Essentially, you lose the SEO benefit of WebP for image indexing — only user-side performance remains intact.

What you need to understand

What is a Service Worker and why do some sites use it for images?

A Service Worker is a JavaScript script that runs in the background of the browser, independently of the web page. It allows intercepting network requests and manipulating responses before they reach the browser.

Some developers use it to dynamically serve WebP images to compatible browsers, while maintaining JPEG/PNG for older browsers. It is a form of progressive enhancement on the client side, technically elegant, but invisible to a bot that does not execute JavaScript at the same level as a modern browser.

Why doesn’t Googlebot execute Service Workers?

Googlebot has been executing JavaScript for years, but not all types of scripts. Service Workers operate outside the main thread of the page and require persistent state management between requests — something Googlebot does not implement.

The bot treats each URL as an isolated request, with no session context or Service Worker cache. As a result, any image substitution logic on the Service Worker side is simply bypassed. Googlebot sees what the HTML directly returns, period.

What’s the difference between what the user sees and what Google sees?

The user with a modern browser benefits from the optimized WebP version, with significant gains in weight and loading speed. Googlebot, on the other hand, fetches the original formats defined in the HTML or <picture> tags without the Service Worker layer.

This means that your Core Web Vitals on the user side may be excellent, but Google indexes heavier images than those actually served. Crawling is not blocked — JPEG/PNG images are discovered — but you miss out on the WebP label in Google’s Image index.

  • Googlebot completely ignores Service Workers, no matter how sophisticated they may be.
  • Images served only via Service Worker will not be indexed in WebP, even if the end user receives them in that format.
  • Crawling of images continues normally on the original formats defined in the source HTML.
  • User performance remains intact, but the SEO impact of WebP is lost for image indexing.
  • This limitation applies to all resources served exclusively via Service Worker, not just images.

SEO Expert opinion

Is this statement consistent with field observations?

Absolutely. Tests with Google Search Console and rendering tools have long shown that Googlebot does not handle Service Workers. The URL Inspection Tool does not execute them either. No surprises here.

What’s more interesting is that Martin Splitt is taking the time to clarify this publicly. It shows that enough sites have adopted this strategy for Google to deem it necessary to explicitly lay down the limits. Purely client-side JavaScript implementations remain a partial blind spot for crawling.

What nuances need to be added to this rule?

The issue only concerns sites where the Service Worker is the sole method of serving WebP. If you use <picture> tags with WebP sources declared on the server side, Googlebot will see them perfectly — Service Worker or not.

In other words, Martin Splitt’s statement targets architectures where the source HTML contains only JPEG/PNG, and where a Service Worker performs transparent substitution on the client side. In this specific case, yes, Google indexes the original formats. [To verify]: it is unknown whether Google plans to execute Service Workers one day — nothing indicates that it is on the roadmap.

What risks are there if we ignore this limitation?

The main risk? You believe you are serving WebP to Google when that’s not the case. This skews your SEO assumptions, particularly for image search where format and weight matter.

Another perverse effect: if you completely disable JPEG/PNG on the server thinking the Service Worker is sufficient, you risk breaking image indexing or making certain resources inaccessible to the bot. Let’s be honest, this is rare — but it happens on excessively optimized client-side stacks without server fallback.

Attention: If your WebP strategy relies solely on a Service Worker, Google will never index your images in that format. You lose a significant image SEO lever, even though user UX remains optimal.

Practical impact and recommendations

What should you do to ensure Google indexes your WebP images?

The most robust solution is to serve WebP on the server side, via <picture> or <img> tags with declared srcset and types. Googlebot fully understands this syntax and will index the WebP versions without any issues.

If you are using a modern CDN (Cloudflare, Fastly, Akamai), activate automatic WebP conversion with content negotiation via the Accept header. The bot sends this header, receives WebP if available, and indexes it correctly. No need for JavaScript.

What mistakes should be avoided in the WebP implementation?

Never rely solely on client-side JavaScript — Service Worker or otherwise — as the only method of serving an image format. It is a layer of enhancement, not a foundational architecture for SEO.

Also, avoid conditional JavaScript redirects that load different URLs based on detected WebP support on the browser side. Googlebot will follow the default version, often the JPEG, and ignore the WebP branch. Always favor server logic or native HTML tags.

How to check if your WebP implementation is crawl-compatible?

Use the URL Inspection Tool in Google Search Console to test a page containing your images. Look at the rendered HTML version: if the <img> or <picture> tags point to .webp, you’re good. If you only see .jpg/.png, your Service Worker is doing the job — and Google does not see it.

Also, test with curl -A "Googlebot" -H "Accept: image/webp" on your image URLs. If the server returns WebP with the correct Content-Type, you’re safe. If it returns JPEG regardless, you need to revisit your server configuration.

  • Implement WebP images server-side via <picture> tags or HTTP content negotiation.
  • Never rely only on a Service Worker to serve optimized formats intended for indexing.
  • Check Googlebot’s rendering using the URL Inspection Tool and confirm that .webp appears in the HTML.
  • Test server responses with curl by simulating a Googlebot user-agent and an Accept: image/webp header.
  • Maintain an explicitly declared JPEG/PNG fallback for non-compatible bots and browsers.
  • Monitor server logs to ensure Googlebot receives the correct resources during crawling.
Image optimization for SEO — particularly the fine management of WebP formats, multi-browser fallbacks, and server/CDN configurations — can quickly become technical. If your stack is complex, or if you notice discrepancies between what your users see and what Google indexes, an audit by a specialized SEO agency can save you valuable time and help avoid costly visibility errors.

❓ Frequently Asked Questions

Si j'utilise un Service Worker pour le cache offline, est-ce que ça pose problème pour Googlebot ?
Non, tant que le contenu initial est servi normalement côté serveur. Googlebot ignore le Service Worker mais crawle la réponse HTTP standard. Le cache offline n'impacte pas l'indexation.
Est-ce que Googlebot exécute quand même le JavaScript classique dans les pages ?
Oui. Googlebot exécute le JavaScript standard depuis 2015 (moteur Chromium). Ce qui n'est pas supporté, c'est le Service Worker qui fonctionne en arrière-plan, hors du thread principal de la page.
Puis-je détecter Googlebot et lui servir du WebP via un fallback serveur spécifique ?
Techniquement oui, mais c'est du cloaking si le contenu diffère de celui servi aux utilisateurs. Mieux vaut utiliser la négociation de contenu HTTP (Accept: image/webp) qui fonctionne pour tous.
Les balises <picture> avec source WebP sont-elles bien indexées par Google ?
Parfaitement. Googlebot comprend nativement les balises <picture> et <source> avec type="image/webp". C'est la méthode recommandée pour diffuser du WebP de manière compatible SEO.
Si Google n'indexe pas mes WebP via Service Worker, est-ce que ça impacte mon classement ?
Indirectement. Vous perdez le bénéfice SEO image (recherche Google Images, snippets enrichis) mais les Core Web Vitals côté utilisateur restent bons. L'impact dépend de votre stratégie de trafic image.
🏷 Related Topics
Domain Age & History Crawl & Indexing AI & SEO Images & Videos

🎥 From the same video 36

Other SEO insights extracted from this same Google Search Central video · duration 51 min · published on 12/05/2020

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