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

Google is capable of executing JavaScript and could display email addresses found in JavaScript code in its search results. To effectively obfuscate an email address and prevent it from being visible in searches, it is preferable to use methods other than JavaScript, such as web forms or character escaping techniques.
0:38
🎥 Source video

Extracted from a Google Search Central video

⏱ 1:44 💬 EN 📅 26/10/2009
Watch on YouTube (0:38) →
📅
Official statement from (16 years ago)
TL;DR

Google confirms that it executes JavaScript and can extract email addresses present in the JS code, potentially making them visible in search results. For SEOs, this means that traditional JavaScript obfuscation techniques (encoding, concatenation, DOM manipulation) no longer provide any protection against indexing. Google recommends prioritizing contact forms or character escaping, but this recommendation raises questions about balancing user accessibility and spam protection.

What you need to understand

Why does this statement challenge 15 years of field practices?

Since the early 2000s, JavaScript obfuscation was seen as an effective deterrent against email scraping. The logic was simple: if the address does not appear directly in the source HTML, basic bots cannot extract it. Thousands of sites still use techniques like atob() for base64 decoding, string concatenation, or late DOM insertion via addEventListener.

Google now unequivocally states that it executes JavaScript and can thus display these emails in its results. This capability is not new technically — Googlebot has been rendering pages with Chromium for several years — but the official confirmation changes the game. If Google indexes these emails, it means they can appear in SERPs, be captured by scrapers exploiting the Search API, or feature in third-party databases.

Does Googlebot really execute all JavaScript at the same level as a browser?

The short answer: yes, but with nuances. Googlebot uses a recent version of Chromium, allowing it to execute nearly all modern JS: ES6 modules, async/await, complex DOM manipulation. However, some limitations persist: execution timeouts (typically 5 seconds), limited resources, no support for user interactions (clicks, scrolls), and variable handling of late asynchronous requests.

For obfuscated emails, this means that even a script that constructs the address in several steps is likely to be decoded. A setTimeout(() => reveal(), 0) offers no protection. A reversed base64 encoding does not either. The only real barrier remains explicit user interaction — but this degrades UX unacceptably for most use cases.

What is the difference between “visible in the results” and “indexed in the index”?

Google refers here to “displayed in search results”, which leaves some ambiguity. An address can be indexed (present in Google’s index) without ever appearing as a snippet in the SERPs. Conversely, an address may be extracted during rendering but filtered from public display by privacy rules.

The practical reality: if the email is in the DOM after JS execution, it is probably indexed. If it is indexed, it could leak through specific queries (searching by full email, advanced operators), even if Google does not display it in a classic snippet. The distinction is technical, but the exposure surface remains significant.

  • Traditional JavaScript obfuscation offers no protection against indexing by Google since Googlebot executes modern Chromium.
  • Techniques like base64 encoding, string concatenation, or delayed DOM insertion are transparent to the engine.
  • Google recommends contact forms or character escaping techniques (HTML entities, CSS tricks) as alternatives.
  • The distinction between “indexed” and “visible in SERPs” is vague: an indexed email could leak through advanced queries or third-party tools.
  • This statement validates that Googlebot renders pages at the same level as a modern browser, with some limitations (timeouts, no user interactions).

SEO Expert opinion

Is this statement consistent with field observations since 2018?

Absolutely. Since the transition to evergreen Googlebot (regularly updated Chromium), tests show that Google is indeed executing modern JS. Frameworks like React, Vue, Angular are rendered correctly, SPAs are indexed, and dynamically loaded content appears in the index. Email obfuscation by JS was already leaky in reality — this statement simply formalizes what practitioners have observed.

Several audits conducted on e-commerce and SaaS sites between 2021 and now have shown emails obfuscated in JS appearing in Google's autocomplete suggestions, or indexed in caches accessible via search operators. The consistency is total: if content arrives in the DOM after execution, Google sees it.

What critical nuances is Google deliberately omitting in this recommendation?

First point: the contact forms recommended by Google do not address all use cases. A business directory site, a team page with 20 contacts, a footer with multiple departments — replacing all those emails with forms significantly degrades UX and multiplies friction. Google does not address the conversion impact, nor the reduced accessibility for users who simply want to copy-paste an address into their email client.

Second nuance: the “character escaping techniques” mentioned are vague. Google is likely referring to HTML entities (replacing @ with @) or CSS tricks (rendering direction rtl, unicode-bidi). But these techniques have their own limitations: HTML entities are decoded by Googlebot, and CSS tricks complicate the code for a marginal gain in protection. [To be verified]: no public data confirms that these methods actually prevent indexing — just that they complicate basic scraping.

In what contexts does this recommendation become counterproductive?

Sites with a legal obligation to display contact information (legal notices, regulated professional pages): replacing the email with a form could pose compliance issues. Certain sectors (legal, health, administration) require an email address to be directly accessible, without intermediaries.

Sites with a high volume of contacts (directories, B2B marketplaces, professional networks): the multiplication of forms creates unacceptable UX friction and a technical overhead (submission management, server-side anti-spam, notifications). Platforms where email is a discoverability element (searching for a specific contact via Google): hiding the email effectively cuts off an acquisition channel. Google’s recommendation overlooks these business realities.

Warning: If you opt for forms, make sure to implement a robust server-side anti-spam solution (CAPTCHA, rate limiting, honeypots). Public forms can quickly become spam vectors if inadequately protected — you're trading one problem (email scraping) for another (form spam).

Practical impact and recommendations

What concrete steps should you take if your emails are currently obfuscated in JavaScript?

First step: audit your current exposure. Use Google Search Console to identify pages where emails appear in indexed snippets. Test with queries like site:yourdomain.com "@yourdomain.com" to see what Google has indexed. Also, check caches (cache:URL) and rich results (JSON-LD, microdata) that may expose emails even if the visible HTML does not display them.

Second action: segment your emails by criticality. Generic addresses (contact@, info@) can probably remain visible without much risk — they already receive massive spam. Personal emails (firstname.lastname@), executive addresses, or sensitive contacts deserve real protection. Apply differentiated strategies rather than a one-size-fits-all rule.

What alternatives provide a better protection/UX balance than forms?

SVG images generated dynamically server-side with the email in vector text: Google doesn’t systematically do OCR on SVGs (for now), and UX remains acceptable if the image is selectable via an invisible overlay. Limitation: reduced accessibility for screen readers, requires a fallback.

Systems that reveal information after actual user interaction: a “Show email” button that triggers an AJAX request to an endpoint protected by a token. Google does not simulate user clicks, so the email remains invisible to crawlers. Disadvantage: additional friction, requires JavaScript active on the client side. mailto: links encoded in data attributes with reconstruction on mouseover: the href attribute remains blank on load, the email is stored in data-user and data-domain, and reconstructed only on hover. Partial protection, but better than pure JS obfuscation.

How can you verify that your replacement solution really works?

Use the URL Inspection Tool in Search Console and check the screenshot of the rendering. If the email appears in the screenshot, it is visible to Google. Also test with the Mobile-Friendly Test which shows the rendered HTML: search for your email address in the displayed source code.

Set up SERP monitoring to detect emails appearing in snippets: tools like OnCrawl, Oncrawl, or custom scripts can alert you if an email address appears in search results. Periodically test with specific queries (name + email, domain + @) to check for leaks.

  • Audit current pages via Search Console and site: queries to identify already indexed emails.
  • Segment addresses by criticality: generic emails vs personal, public vs sensitive.
  • Replace JS obfuscations with forms (generic addresses) or hybrid solutions (SVG, post-interaction revelation).
  • Implement a robust server-side anti-spam if opting for public forms.
  • Test with URL Inspection Tool and Mobile-Friendly Test to verify actual rendering.
  • Establish SERP monitoring to detect email leaks in results.
Migrating from a JavaScript obfuscation architecture to a genuinely protective solution (secure forms, conditional revelation, server-side encoding) requires a thorough analysis of your business needs and technical constraints. These optimizations often touch on multiple layers (frontend, backend, SEO, UX) and may necessitate complex trade-offs between protection, accessibility, and performance. If your organization lacks internal resources or if confidentiality concerns are critical, engaging a specialized SEO agency can help you design a tailored strategy that protects your contacts without sacrificing visibility or conversion rates.

❓ Frequently Asked Questions

Google indexe-t-il tous les emails présents dans le JavaScript exécuté ?
Oui, si l'email apparaît dans le DOM après exécution du JavaScript, Googlebot peut l'indexer. Cela inclut les emails générés par concaténation, décodage base64, ou insertion DOM différée, tant que le script s'exécute dans les timeouts de rendu de Google (environ 5 secondes).
Les HTML entities (comme @ pour @) protègent-elles vraiment contre l'indexation ?
Non, les HTML entities sont décodées par Googlebot lors du parsing. Remplacer @ par @ ou @ n'empêche pas l'indexation de l'adresse complète. Ces techniques peuvent ralentir le scraping basique, mais n'offrent aucune protection contre Google ou des scrapers avancés.
Un email affiché uniquement après un clic utilisateur est-il indexé par Google ?
Non, Googlebot ne simule pas les interactions utilisateur (clics, hovers, scrolls). Si l'email n'apparaît dans le DOM qu'après un événement click réel, il restera invisible pour le crawler. C'est l'une des rares protections qui fonctionne encore, au prix d'une friction UX accrue.
Les formulaires de contact ont-ils un impact négatif sur le SEO ou la conversion ?
Les formulaires ajoutent une friction qui peut réduire les conversions, surtout si l'utilisateur veut simplement copier l'email dans son client mail. Côté SEO, ils n'ont pas d'impact direct négatif, mais ils suppriment un élément de contenu textuel indexable (l'email lui-même) qui peut servir de signal de pertinence locale ou professionnelle.
Peut-on utiliser des images (PNG, SVG) pour afficher les emails sans risque d'indexation ?
Les images PNG/JPG sont relativement sûres car Google ne fait pas d'OCR systématique sur les contenus visuels pour l'indexation textuelle. Les SVG sont plus risqués si le texte est encodé en balises <text> plutôt qu'en paths, car Google peut extraire le contenu textuel des SVG. Privilégiez les paths vectoriels ou les images raster pour une protection maximale.
🏷 Related Topics
Content AI & SEO JavaScript & Technical SEO Local Search

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.