Désactivez l'obfuscation d'e-mail de Cloudflare : cela nuit à vos Core Web Vitals

L'obfuscation d'e-mail de Cloudflare injecte un script bloquant le rendu pour un chiffrement trivialement réversible. Désactivez-le ou remplacez-le.

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2026-03-11

Qu'est-ce que l'obfuscation d'e-mail de Cloudflare ?

L'obfuscation d'adresses e-mail de Cloudflare (Email Address Obfuscation) est une fonctionnalité de Scrape Shield qui masque les adresses e-mail de vos pages aux collecteurs d'e-mails et aux bots, tout en les gardant visibles pour les visiteurs humains. Elle est activée par défaut sur chaque zone Cloudflare.

Dernière révision par Arjen Karel en mars 2026

Son fonctionnement est simple. Le proxy de périphérie de Cloudflare analyse votre HTML à la recherche de tout ce qui ressemble à une adresse e-mail. Il remplace chaque adresse par une chaîne hexadécimale encodée via XOR et injecte un script bloquant le rendu appelé email-decode.min.js pour décoder les adresses dans le navigateur. Le script pèse environ 1,2 Ko, s'exécute de manière synchrone et se supprime du DOM après son exécution.

Le problème : ce script n'est pas chargé avec async ou defer. Il bloque le rendu. Et il le fait pour une fonctionnalité que la plupart des visiteurs ne remarqueront jamais ou dont ils n'auront jamais besoin.

.

Comment l'obfuscation d'e-mail de Cloudflare affecte-t-elle les Core Web Vitals ?

.

Le script email-decode.min.js est injecté en tant que ressource bloquant le rendu. Le navigateur doit le télécharger, l'analyser et l'exécuter avant de pouvoir continuer à afficher la page. Cela a trois conséquences :

1. Il monopolise la bande passante du réseau pendant la fenêtre de rendu critique, ce qui retarde le Largest Contentful Paint.
2. Il bloque le thread principal, ce qui peut pousser l'Interaction to Next Paint dans la catégorie "nécessite une amélioration".
3. Il déclenche jusqu'à cinq avertissements d'audit Lighthouse : éliminer les ressources bloquant le rendu, éviter les longues tâches du thread principal, réduire le temps d'exécution JavaScript, éviter de chaîner les requêtes critiques et servir les ressources statiques avec une politique de cache efficace.

L'impact dépend de l'optimisation de votre LCP

Si votre LCP est déjà bien optimisé (découvrable dans la source HTML, fetchpriority="high", non chargé de manière différée (lazy loaded) et sans autres scripts bloquant le rendu), le script email-decode de 1,2 Ko ajoute peut-être 50 à 100 ms. Remarquable dans un audit Lighthouse, mais pas catastrophique.

Mais si votre site présente déjà des antipatterns lents par erreur (CSS bloquant le rendu, image LCP non optimisée, fetchpriority manquant), ce script aggrave les dégâts. Il s'agit d'une ressource supplémentaire bloquant le rendu qui lutte pour la bande passante et le temps du thread principal pendant la fenêtre de rendu critique. Sur les sites avec plusieurs scripts bloquant le rendu, les utilisateurs de la communauté Cloudflare ont signalé des retards de FCP de 0,8 seconde et des retards de LCP de plus de 2 secondes à cause de cette combinaison.

La vraie question est : pourquoi accepter un quelconque coût de performance pour une fonctionnalité qui utilise un chiffrement trivialement réversible ?

Effets secondaires sur le SEO

Cloudflare remplace les adresses e-mail par des liens pointant vers /cdn-cgi/l/email-protection#[hex]. Ces URL renvoient une erreur 404 aux robots d'exploration (crawlers), y compris Googlebot. Le résultat : des erreurs "Soft 404" dans la Google Search Console. Les outils d'audit SEO comme Ahrefs et Screaming Frog les signalent comme des liens internes brisés, créant du bruit qui masque les véritables problèmes d'exploration. Si vous utilisez Cloudflare avec l'obfuscation d'e-mail activée, vérifiez votre rapport de couverture Search Console pour y déceler ces erreurs fantômes.

L'obfuscation d'e-mail de Cloudflare est-elle seulement sécurisée ?

Pas vraiment. Cloudflare utilise un chiffrement XOR à un seul octet où la clé est intégrée dans la chaîne encodée elle-même. Chaque site protégé par Cloudflare utilise le même mécanisme de décodage. Un spammeur n'a besoin d'implémenter qu'un seul décodeur pour extraire les adresses e-mail de tous ces sites.

Les chercheurs en sécurité ont démontré que l'encodage est trivialement réversible. L'étude d'obfuscation de 2026 de Spencer Mortensen a testé 25 méthodes différentes contre plus de 300 spammeurs distincts en utilisant des adresses e-mail de type pot de miel (honeypots). Même une simple technique CSS display:none a atteint un taux de blocage de 100 % contre les collecteurs. Vous n'avez pas besoin d'un JavaScript bloquant le rendu pour cacher une adresse e-mail aux bots.

La solution la plus simple : la désactiver dans Cloudflare

Si vous n'avez pas besoin de l'obfuscation d'e-mail (et la plupart des sites n'en ont pas besoin), désactivez-la simplement :

1. Connectez-vous à votre tableau de bord Cloudflare.
2. Allez dans Security > Settings (ou Scrape Shield sur les anciennes dispositions du tableau de bord).
3. Basculez Email Address Obfuscation sur OFF.

C'est tout. Le script bloquant le rendu disparaît immédiatement. Pour une configuration complète des performances Cloudflare, consultez la meilleure configuration Cloudflare pour réussir les Core Web Vitals.

Désactiver par page avec les règles de configuration

Si vous souhaitez l'obfuscation d'e-mail sur votre page de contact mais pas sur les pages de destination à fort trafic, utilisez une règle de configuration (Configuration Rule) :

1. Allez dans Rules > Configuration Rules.
2. Créez une nouvelle règle, nommez-la (par exemple "Désactiver l'obfuscation d'e-mail sur les landing pages").
3. Définissez les critères de correspondance (nom d'hôte, chemin d'URL, ou les deux).
4. Ajoutez le paramètre Email Obfuscation et réglez-le sur Off.
5. Déployez.

Vous pouvez également exempter des adresses e-mail individuelles dans votre HTML en les enveloppant dans des commentaires : <!--email_off-->email@example.com<!--/email_off-->

Si vous avez besoin d'obfuscation : faites-le vous-même

Si vous souhaitez cacher les adresses e-mail aux bots, il existe de bien meilleures méthodes qui n'impliquent pas l'exécution de scripts au début du processus de rendu. La meilleure approche : attachez un IntersectionObserver et décodez l'e-mail juste à temps lorsqu'il défile dans la vue. C'est le même modèle différer jusqu'au besoin que j'utilise pour tout, des intégrations YouTube à Google Maps.

Créez l'e-mail obfusqué

Dans ce cas, j'ai utilisé un simple encodage base64. L'encodage base64 n'est qu'un exemple. Il existe de nombreuses bibliothèques d'encodage et de décodage gratuites.
<a
 class="email-hidden"
 href="#"
 data-email="aW5mb0BleGFtcGxlLmNvbQ==">
 [email-hidden]
</a>

Attachez l'IntersectionObserver. Placez ce morceau de JavaScript au bas de la page.

<script>
const emailtag = document.querySelector('.email-hidden');
let observer = new IntersectionObserver((entries) => {
  entries.map((entry) => {
    if (entry.isIntersecting) {
      let script = document.createElement('script');
      script.onload = function () {
        emaildecode(entry.target)
      };
      script.src = 'decode-email.js';
      document.head.appendChild(script);
    }
  });
}).observe(emailtag);
</script>

Téléchargez le script email-decode decode-email.js et remplacez la fonction de décodage d'e-mail par une bibliothèque de décodage de votre choix.

const emaildecode = (e) => {
	let email = atob(e.dataset.email);
	e.href = 'mailto:'+email;
	e.innerHTML = email;
}

Vérifiez les résultats

<a href="mailto:info@example.com">info@example.com</a>

L'e-mail n'est décodé que lorsque le visiteur le fait défiler dans la vue. Zéro impact sur le LCP, zéro impact sur l'INP, et l'encodage base64 n'est pas moins sécurisé que le chiffrement XOR de Cloudflare. Pour vérifier l'amélioration avec de vrais visiteurs, configurez la Real User Monitoring. Les scores Lighthouse sont utiles pour le débogage, mais ce sont les données de terrain des vrais utilisateurs que Google utilise pour le classement.

About the author

Arjen Karel is a web performance consultant and the creator of CoreDash, a Real User Monitoring platform that tracks Core Web Vitals data across hundreds of sites. He also built the Core Web Vitals Visualizer Chrome extension. He has helped clients achieve passing Core Web Vitals scores on over 925,000 mobile URLs.

17 years of fixing PageSpeed.

I have optimized platforms for some of the largest publishers and e-commerce sites in Europe. I provide the strategy, the code, and the RUM verification. Usually in 1 to 2 sprints.

View Services
Désactivez l'obfuscation d'e-mail de Cloudflare : cela nuit à vos Core Web VitalsCore Web Vitals Désactivez l'obfuscation d'e-mail de Cloudflare : cela nuit à vos Core Web Vitals