
🚫 Cloudflare email-decode.min.js: perché disabilitare l'offuscamento email e come rimuovere lo script in un minuto
Visiti PageSpeed Insights e trovate una risorsa bloccante per il rendering. Guardate meglio: email-decode.min.js, Cloudflare. «Questo script sta rallentando di nuovo il sito», pensate, e vi dirigete su Google in cerca di una soluzione.
Ad aprile 2026 Cloudflare ha finalmente risolto il problema: ha aggiunto l'attributo defer e lo script ha smesso di bloccare il rendering. Caso chiuso, a quanto pareva. Invece no. email-decode.min.js continua a lasciare soft 404 fantasma nella Google Search Console e il cifrario XOR che Cloudflare usa per «proteggere» gli indirizzi si decifra in pochi secondi. Nessuna sicurezza reale, nessun report pulito.
Nella pratica abbiamo incontrato questo script moltissime volte durante gli audit dei siti: si disattiva in un minuto e si ottiene come bonus una Search Console pulita. Vediamo nel dettaglio come funziona l'offuscamento, perché lo script causa ancora problemi e come rimuoverlo, con un'alternativa che nasconde davvero le email ai bot.
💡 Panoramica rapida:
- Capire come funziona l'Email Address Obfuscation in Cloudflare e perché esiste
email-decode.min.js. - Esplorare tre motivi per disattivare l'offuscamento dopo la correzione di aprile 2026.
- Disattivare lo script passo dopo passo: dashboard, API, Configuration Rules.
- Implementare un'alternativa con
IntersectionObservere base64, senza script esterni né soft 404.
Come Cloudflare nasconde le email
Quando un sito passa attraverso Cloudflare, il servizio attiva l'Email Address Obfuscation per impostazione predefinita. Cloudflare analizza l'HTML delle pagine, individua tutto ciò che assomiglia a un'email e sostituisce ogni indirizzo con una stringa esadecimale codificata con XOR. Per decifrarla, email-decode.min.js viene iniettato nel browser del visitatore.

L'idea ha senso: i bot non vedono gli indirizzi, le persone sì. Nella pratica è più complicato. Fino ad aprile 2026 lo script danneggiava apertamente le performance e la protezione stessa si è rivelata più debole di quanto Cloudflare prometta.
Tre motivi per disattivare email-decode.min.js
La correzione di aprile ha eliminato il blocco del rendering. Ma restano tre problemi. E sono più seri di qualche millisecondo perso.
Soft 404 in Search Console
Cloudflare sostituisce gli indirizzi email con link del tipo /cdn-cgi/l/email-protection#[hex]. Per Googlebot e gli altri crawler di ricerca questi URL restituiscono 404. Il risultato: errori «Soft 404» nella Google Search Console. Ahrefs e Screaming Frog li segnalano come link interni non funzionanti.
Non è una questione estetica. Decine di errori Cloudflare fantasma mascherano problemi reali di indicizzazione. Durante un audit tecnico si perde tempo a filtrare rumore invece di trovare pagine effettivamente rotte.
Il cifrario XOR non protegge
Cloudflare usa uno XOR a singolo byte, con la chiave incorporata direttamente nella stringa codificata. Il meccanismo di decifratura è identico per tutti i siti sotto Cloudflare. A uno spammer basta un solo decoder e può estrarre indirizzi da qualunque sito in pochi secondi.
La ricerca di Spencer Mortensen (2026) ha testato 25 metodi di offuscamento contro oltre 300 spam harvester usando indirizzi honeypot. Persino il primitivo display:none CSS ha mostrato un blocco del 100%. L'offuscamento di Cloudflare protegge solo dai bot che non sanno decodificare lo XOR, e quelli non raccoglierebbero comunque indirizzi.
Carico sul thread principale su mobile
1,2 KB di JavaScript con defer non sono critici su desktop. Ma su un dispositivo Android economico con CPU sotto carico, ogni piccolo task sul thread principale erode il budget di INP. Se state lottando per gli ultimi 50 ms, questo script è superfluo.
Disattivare l'offuscamento: guida passo dopo passo
Disattivare richiede un minuto. Scegliete il percorso per la vostra versione della dashboard.
Nuova dashboard (Security Settings)
- Accedete alla dashboard Cloudflare.
- Andate su Security → Settings.
- Trovate l'interruttore Email Address Obfuscation.
- Spostatelo su Off.
Vecchia dashboard (Scrape Shield)
Se l'interfaccia del vostro account non è ancora stata aggiornata:
- Accedete alla dashboard Cloudflare.
- Aprite la sezione Scrape Shield.
- Trovate Email Address Obfuscation e spostate l'interruttore su Off.

Lo script scompare all'istante. email-decode.min.js smette di essere iniettato su tutte le pagine della zona.
Via API
Per automazione o gestione in blocco, inviate una richiesta PATCH all'API Cloudflare:
1 curl -X PATCH "https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/settings/email_obfuscation" \ 2 -H "Authorization: Bearer <API_TOKEN>" \ 3 -H "Content-Type: application/json" \ 4 --data '{"value":"off"}'
Sostituite il vostro Zone ID e il token API con permesso di modifica delle impostazioni di zona.
Disattivazione selettiva tramite Configuration Rules
Avete bisogno dell'offuscamento sulla pagina contatti ma non sulle landing page? Usate le Configuration Rules:
- Andate su Rules → Configuration Rules.
- Create una regola con criteri: hostname, percorso URL o entrambi.
- Aggiungete l'impostazione Email Obfuscation e impostatela su Off.
- Applicate.
Potete anche escludere singoli indirizzi nell'HTML racchiudendoli in commenti:
1 <!--email_off-->[email protected]<!--/email_off-->
Alternativa senza Cloudflare: IntersectionObserver e base64
Se avete davvero bisogno di nascondere le email ai bot, c'è un modo migliore. Nessuno script esterno, nessun soft 404 e nessun impatto sull'INP. L'approccio: codificare l'indirizzo in base64 e decifrarlo tramite IntersectionObserver, solo quando il visitatore scorre fino al blocco che contiene l'email.
Passo 1. Markup HTML:
1 <a class="email-hidden" href="#" data-email="aW5mb0BleGFtcGxlLmNvbQ=="> 2 [email hidden] 3 </a>
L'attributo data-email contiene l'indirizzo in base64. Codificate la stringa con uno strumento online o con il comando echo -n "[email protected]" | base64.
Passo 2. Observer. Inserite lo script nel footer della pagina:
1 const emailTag = document.querySelector('.email-hidden'); 2 let observer = new IntersectionObserver((entries) => { 3 entries.map((entry) => { 4 if (entry.isIntersecting) { 5 let script = document.createElement('script'); 6 script.onload = function () { 7 emailDecode(entry.target); 8 }; 9 script.src = '/decode-email.js'; 10 document.head.appendChild(script); 11 } 12 }); 13 }); 14 observer.observe(emailTag);
Passo 3. Funzione di decifratura, file decode-email.js:
1 const emailDecode = (e) => { 2 let email = atob(e.dataset.email); 3 e.href = 'mailto:' + email; 4 e.innerHTML = email; 5 };
Risultato: l'email viene decodificata solo quando si scorre fino ad essa. Impatto zero sull'INP, zero errori soft 404. E il base64 non è peggiore dello XOR di Cloudflare come «protezione»: entrambi i metodi sono banalmente reversibili, ma abbinato a IntersectionObserver l'indirizzo non entra nemmeno nel DOM al caricamento della pagina.
Guida video
Se preferite una guida visiva, ecco una dimostrazione della disattivazione dell'offuscamento nella dashboard Cloudflare:
⁉️🤔 Domande frequenti
L'offuscamento Cloudflare interessa tutte le pagine del sito?
Sì, dopo aver aggiunto un sito a Cloudflare, l'Email Address Obfuscation è attivo per l'intera zona. Lo script
email-decode.min.jsviene iniettato su ogni pagina in cui viene rilevato testo simile a un'email. Potete escludere singole pagine tramite Configuration Rules e indirizzi specifici con i commenti HTML<!--email_off-->.
Cosa succede se disattivo semplicemente l'offuscamento?
email-decode.min.jssmetterà immediatamente di essere iniettato. Tutti gli indirizzi email sul sito diventeranno visibili nel codice sorgente, esattamente come li avete inseriti. Per la maggior parte dei siti questa è la normalità: l'email di contatto è già pubblica e nasconderla ai bot si può fare con metodi più semplici.
L'offuscamento Cloudflare protegge da tutti gli spam bot?
No. Il cifrario XOR è lo stesso per tutti i siti, chiunque può decifrare gli indirizzi. I dati di Spencer Mortensen mostrano che persino
display:noneCSS blocca il 100% degli oltre 300 spam harvester testati. L'offuscamento Cloudflare funziona solo contro bot primitivi che non tentano di decodificare lo XOR.
Posso nascondere lo script solo a PageSpeed Insights?
No, PageSpeed Insights controlla la pagina come un normale browser. Se lo script è iniettato, Lighthouse lo vedrà. Con la correzione di aprile 2026 il blocco del rendering è scomparso, ma restano gli effetti SEO (soft 404) e il micro-impatto sull'INP. L'unico modo per rimuovere completamente lo script è disattivare l'Email Address Obfuscation nella dashboard.
Come verifico che l'offuscamento sia effettivamente disattivato?
Aprite il codice sorgente della pagina (Ctrl+U) e cercate
email-decode.min.js. Nessuno script significa offuscamento disattivato. In alternativa, controllate la console del browser: prima della disattivazione il DOM contiene<script src="/cdn-cgi/scripts/.../email-decode.min.js">, dopo non c'è più. Le modifiche si applicano all'istante.
Disattivare o tenere: il verdetto
Con la correzione di aprile, email-decode.min.js ha smesso di bloccare il rendering. Ma restano il rumore SEO (soft 404 in Search Console) e l'illusione di sicurezza (lo XOR è reversibile in secondi). Disattivare dalla dashboard richiede un minuto. Bonus: report puliti e un paio di millisecondi di INP risparmiati su mobile.
Se l'offuscamento è davvero necessario, l'alternativa con IntersectionObserver e base64 offre una protezione reale dagli spam harvester. Senza effetti collaterali. La scelta è vostra, ma email-decode.min.js nel 2026 è più un'abitudine che una necessità.



