Skip to content

Allt om WordPress, webbutveckling — och mer därtill

🚫 Cloudflare email-decode.min.js: varför inaktivera e-postobfuskering och hur du tar bort skriptet på en minut

🚫 Cloudflare email-decode.min.js: varför inaktivera e-postobfuskering och hur du tar bort skriptet på en minut

Du besöker PageSpeed Insights och ser en resurs som blockerar renderingen. Du tittar närmare: email-decode.min.js, Cloudflare. "Det här skriptet saktar ner sajten igen", tänker du och går till Google för att hitta en lösning.

I april 2026 fixade Cloudflare äntligen problemet: de lade till attributet defer och skriptet slutade blockera renderingen. Fallet verkade avslutat. Men nej. email-decode.min.js lämnar fortfarande spöklika mjuka 404:or i Google Search Console, och XOR-chiffret som Cloudflare använder för att "skydda" adresser kan dekrypteras på sekunder. Inget verkligt skydd, inga rena rapporter.

I praktiken har vi stött på det här skriptet många gånger under sajtrevisioner: du inaktiverar det på en minut och får en ren Search Console på köpet. Låt oss bryta ner hur fördunklingen fungerar, varför skriptet fortfarande orsakar problem och hur du tar bort det, med ett alternativ som faktiskt döljer e-post för bottar.

💡 Snabb översikt:

  • Förstå hur Email Address Obfuscation fungerar i Cloudflare och varför email-decode.min.js överhuvudtaget finns.
  • Utforska tre skäl att inaktivera fördunklingen efter aprilfixen 2026.
  • Inaktivera skriptet steg för steg: dashboard, API, Configuration Rules.
  • Implementera ett alternativ med IntersectionObserver och base64, utan externa skript eller mjuka 404:or.

Hur Cloudflare döljer e-post

När en sajt körs genom Cloudflare aktiverar tjänsten Email Address Obfuscation som standard. Cloudflare skannar sidornas HTML, hittar allt som ser ut som en e-postadress och ersätter varje adress med en XOR-kodad hex-sträng. För att dekryptera den injiceras email-decode.min.js i besökarens webbläsare.

PageSpeed Insights-varning om email-decode.min.js-skript

Tanken är vettig: bottar ser inga adresser, människor gör det. I praktiken är det mer komplicerat. Fram till april 2026 skadade skriptet prestandan öppet, och själva skyddet visade sig vara svagare än vad Cloudflare lovar.

Tre skäl att inaktivera email-decode.min.js

Aprilfixen eliminerade renderingsblockeringen. Men tre problem kvarstår. Och de är allvarligare än förlorade millisekunder.

Mjuk 404 i Search Console

Cloudflare ersätter e-postadresser med länkar som /cdn-cgi/l/email-protection#[hex]. För Googlebot och andra sökrobotar returnerar dessa webbadresser 404. Resultatet: "Mjuk 404"-fel i Google Search Console. Ahrefs och Screaming Frog flaggar dem som trasiga interna länkar.

Det här är inte kosmetiskt. Dussintals spöklika Cloudflare-fel maskerar verkliga indexeringsproblem. Under en teknisk revision slösar du tid på att filtrera brus istället för att hitta faktiskt trasiga sidor.

XOR-chiffret skyddar inte

Cloudflare använder single-byte XOR, där nyckeln är inbäddad direkt i den kodade strängen. Dekrypteringsmekanismen är identisk för alla sajter under Cloudflare. En spammer behöver en avkodare, och de kan extrahera adresser från vilken sajt som helst på sekunder.

Spencer Mortensens forskning (2026) testade 25 fördunklingsmetoder mot över 300 spamskördare med hjälp av honeypot-adresser. Även primitiv CSS display:none visade 100% blockering. Cloudflares fördunkling skyddar bara mot bottar som inte kan avkoda XOR, och de skulle ändå inte samla in adresser.

Huvudtrådsbelastning på mobil

1,2 KB JavaScript med defer är inte kritiskt för desktop. Men på en budget Android-enhet med belastad CPU äter varje liten huvudtrådsuppgift av INP-budgeten. Om du kämpar för de sista 50 ms är det här skriptet onödigt.

Inaktivera fördunkling: steg-för-steg-guide

Inaktivering tar en minut. Välj vägen för din dashboard-version.

Nya dashboarden (Security Settings)

  • Logga in på Cloudflares dashboard.
  • Gå till Security → Settings.
  • Leta reda på reglaget Email Address Obfuscation.
  • Ställ det på Off.

Gamla dashboarden (Scrape Shield)

Om ditt kontointerface inte har uppdaterats än:

  • Logga in på Cloudflares dashboard.
  • Öppna sektionen Scrape Shield.
  • Leta reda på Email Address Obfuscation och ställ på Off.
Inaktivera e-postobfuskering i Scrape Shield-sektionen i Cloudflares instrumentpanel

Skriptet försvinner omedelbart. email-decode.min.js slutar injiceras på alla sidor i zonen.

Via API

För automatisering eller bulkhantering, skicka en PATCH-begäran till Cloudflares API:

1curl -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"}'

Ersätt med ditt Zone ID och API-token med behörighet att redigera zoninställningar.

Selektiv inaktivering via Configuration Rules

Behöver du fördunkling på kontaktsidan men inte på landningssidor? Använd Configuration Rules:

  • Gå till Rules → Configuration Rules.
  • Skapa en regel med kriterier: värdnamn, URL-sökväg eller båda.
  • Lägg till inställningen Email Obfuscation och sätt den till Off.
  • Verkställ.

Du kan också exkludera enskilda adresser i HTML genom att omsluta dem i kommentarer:

1<!--email_off-->[email protected]<!--/email_off-->

Alternativ utan Cloudflare: IntersectionObserver och base64

Om du faktiskt behöver dölja e-post för bottar finns det ett bättre sätt. Inget externt skript, ingen mjuk 404 och ingen påverkan på INP. Tillvägagångssättet: base64-koda adressen och dekryptera den via IntersectionObserver, endast när besökaren scrollar till blocket som innehåller e-posten.

Steg 1. HTML-uppmärkning:

1<a class="email-hidden" href="#" data-email="aW5mb0BleGFtcGxlLmNvbQ==">
2 [email hidden]
3</a>

Attributet data-email innehåller adressen i base64. Koda strängen med ett onlineverktyg eller kommandot echo -n "[email protected]" | base64.

Steg 2. Observer. Placera skriptet i sidfoten:

1const emailTag = document.querySelector('.email-hidden');
2let 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});
14observer.observe(emailTag);

Steg 3. Dekrypteringsfunktion, filen decode-email.js:

1const emailDecode = (e) => {
2 let email = atob(e.dataset.email);
3 e.href = 'mailto:' + email;
4 e.innerHTML = email;
5};

Resultat: e-posten avkodas endast vid scrollning till den. Noll påverkan på INP, noll mjuka 404-fel. Och base64 är inte sämre än Cloudflares XOR för "skydd", båda metoderna är trivialt reversibla, men parat med IntersectionObserver kommer adressen inte ens in i DOM:en vid sidladdning.

Videoguide

Om du föredrar en visuell guide, här är en demonstration av hur du inaktiverar fördunkling i Cloudflares dashboard:

⁉️🤔 Vanliga frågor

Påverkar Cloudflares fördunkling alla sajtens sidor?

Ja, efter att du lagt till en sajt i Cloudflare är Email Address Obfuscation aktiverad för hela zonen. Skriptet email-decode.min.js injiceras på varje sida där text som liknar en e-postadress upptäcks. Du kan exkludera enskilda sidor via Configuration Rules, och specifika adresser via HTML-kommentarer <!--email_off-->.

Vad händer om jag bara inaktiverar fördunklingen?

email-decode.min.js slutar injiceras omedelbart. Alla e-postadresser på sajten blir synliga i källkoden, precis som du placerade dem. För de flesta sajter är detta normal drift: kontaktmejlen är redan offentlig, och att dölja den för bottar kan göras med enklare metoder.

Skyddar Cloudflares fördunkling mot alla spambottar?

Nej. XOR-chiffret är samma för alla sajter, vem som helst kan dekryptera adresserna. Spencer Mortensens data visar: även CSS display:none blockerar 100% av över 300 testade spamskördare. Cloudflares fördunkling fungerar bara mot primitiva bottar som inte försöker avkoda XOR.

Kan jag dölja skriptet endast för PageSpeed Insights?

Nej, PageSpeed Insights kontrollerar sidan som en vanlig webbläsare. Om skriptet injiceras kommer Lighthouse att se det. Med aprilfixen 2026 är renderingsblockeringen borta, men SEO-effekter (mjuk 404) och mikropåverkan på INP kvarstår. Det enda sättet att ta bort skriptet helt är att inaktivera Email Address Obfuscation i dashboarden.

Hur verifierar jag att fördunklingen faktiskt är inaktiverad?

Öppna sidans källkod (Ctrl+U) och sök efter email-decode.min.js. Inget skript betyder att fördunklingen är inaktiverad. Alternativt, kontrollera webbläsarkonsolen: före inaktivering innehåller DOM:en <script src="/cdn-cgi/scripts/.../email-decode.min.js">, efter är den borta. Ändringar tillämpas omedelbart.

Att inaktivera eller behålla: domen

Med aprilfixen slutade email-decode.min.js blockera rendering. Men SEO-brus (mjuk 404 i Search Console) och illusionen av säkerhet (XOR är reversibelt på sekunder) kvarstår. Inaktivering via dashboarden tar en minut. Bonus: rena rapporter och ett par sparade INP-millisekunder på mobil.

Om fördunkling verkligen behövs ger alternativet med IntersectionObserver och base64 verkligt skydd mot spamskördare. Utan bieffekter. Valet är ditt, men email-decode.min.js år 2026 är mer vana än nödvändighet.