A Cloudflare corrigiu o script de ofuscação de e-mail (e talvez eu tenha causado isso)

O script de ofuscação de e-mail da Cloudflare bloqueava a renderização. Um PM da Cloudflare leu este artigo e publicou o fix. Ainda vale a pena evitar os problemas de SEO e segurança.

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2026-10-15

O que é a ofuscação de e-mail da Cloudflare?

O Cloudflare Email Address Obfuscation é um recurso do Scrape Shield que esconde endereços de e-mail nas páginas contra bots e coletores, mantendo-os visíveis para visitantes humanos. Ele vem ativado por padrão em todas as zonas da Cloudflare.

Última revisão por Arjen Karel em abril de 2026

Atualização de abril de 2026: a Cloudflare corrigiu o problema. Um Product Manager da Cloudflare me mandou uma mensagem no LinkedIn. Ele leu este artigo e adicionou o atributo defer ao email-decode.min.js. A documentação oficial da Cloudflare agora confirma: o script não bloqueia mais a renderização.

O defer é uma alteração de uma linha. Se não estava lá antes, provavelmente foi porque a Cloudflare queria confirmar que a mudança não quebraria sites que dependem da decodificação dos endereços antes do DOMContentLoaded. Alguém da equipe fez o trabalho. Mérito para quem merece.

O funcionamento é simples. O proxy de borda da Cloudflare varre o HTML em busca de qualquer texto parecido com um endereço de e-mail. Ele substitui cada endereço por uma string hexadecimal codificada em XOR e injeta um pequeno script chamado email-decode.min.js para decodificar os endereços no navegador. O script tem cerca de 1,2 KB, agora carrega com defer e é removido do DOM após a execução.

Até pouco tempo atrás, esse script não carregava com async nem defer. Ele bloqueava a renderização. E fazia isso por um recurso que a maioria dos visitantes nunca vai notar ou precisar. Esse era o cenário descrito originalmente neste artigo, e o motivo pelo qual a Cloudflare fez a correção.

.

Como a ofuscação de e-mail da Cloudflare afetava os Core Web Vitals

.

Antes do fix do defer, o script email-decode.min.js era injetado como um recurso render blocking. O navegador precisava baixar, processar e executar o arquivo antes de continuar renderizando a página. Isso trazia três consequências:

1. Disputava largura de banda durante a janela crítica de renderização, atrasando o Largest Contentful Paint.
2. Bloqueava a main thread, o que podia empurrar o Interaction to Next Paint para a faixa "precisa de melhorias".
3. Disparava até cinco alertas em auditorias do Lighthouse: eliminar recursos render blocking, evitar long tasks na main thread, reduzir o tempo de execução do JavaScript, evitar encadear requisições críticas e servir recursos estáticos com uma política de cache eficiente.

Com o defer ativo, o script é baixado em paralelo com o parse do HTML e executa após o documento ser processado. O aviso de render blocking sumiu.

O que resta após o fix

A main thread ainda precisa fazer o parse e executar 1,2 KB de JavaScript. No desktop, isso não é nada. Em um celular Android de entrada com a CPU ocupada, qualquer pequena tarefa na main thread consome o orçamento de INP. Se você já está brigando pelos últimos 50 ms de folga no INP, esse script é mais um item na fila.

Os problemas maiores, que a Cloudflare não corrigiu, estão logo abaixo.

Efeitos colaterais no SEO

A Cloudflare substitui os endereços de e-mail por links que apontam para /cdn-cgi/l/email-protection#[hex]. Essas URLs retornam 404 para crawlers, incluindo o Googlebot. O resultado: erros de "Soft 404" no Google Search Console. Ferramentas de auditoria de SEO como Ahrefs e Screaming Frog reportam esses links como quebrados, criando um ruído que esconde problemas reais de rastreamento. Se você usa a Cloudflare com a ofuscação de e-mail ativada, confira o relatório de cobertura do Search Console para identificar esses erros fantasmas.

A ofuscação de e-mail da Cloudflare é realmente segura?

Na verdade, não. A Cloudflare usa uma cifra XOR de 1 byte com a chave embutida na própria string codificada. Todo site protegido pela Cloudflare usa o mesmo mecanismo de decodificação. Um spammer só precisa implementar um único decodificador para extrair os endereços de e-mail de todos eles.

Pesquisadores de segurança já demonstraram que a codificação é facilmente reversível. O estudo de ofuscação de 2026 de Spencer Mortensen testou 25 métodos diferentes contra mais de 300 spammers distintos usando endereços de e-mail honeypot. Até uma técnica simples em CSS com display:none alcançou 100% de bloqueio contra coletores. Você não precisa de um JavaScript com defer para esconder um endereço de e-mail de bots.

Você ainda deve desativar?

Se você não precisa de ofuscação de e-mail (e a maioria dos sites não precisa), desativá-la elimina os erros de rastreamento soft 404 e os últimos milissegundos de trabalho na main thread. Veja como:

1. Faça login no painel da Cloudflare.
2. Vá em Security > Settings (ou Scrape Shield em layouts de painel mais antigos).
3. Alterne Email Address Obfuscation para OFF.

Pronto. O script desaparece na hora. Para uma configuração completa de performance na Cloudflare, veja a melhor configuração da Cloudflare para passar nos Core Web Vitals.

Desative por página com Configuration Rules

Se você quer a ofuscação de e-mail na página de contato, mas não em landing pages de alto tráfego, use uma Configuration Rule:

1. Vá em Rules > Configuration Rules.
2. Crie uma nova regra e dê um nome a ela (ex.: "Disable email obfuscation on landing pages").
3. Defina os critérios de correspondência (hostname, caminho da URL ou ambos).
4. Adicione a configuração Email Obfuscation e defina como Off.
5. Faça o deploy.

Você também pode ignorar endereços de e-mail específicos no HTML envolvendo-os com comentários: <!--email_off-->email@example.com<!--/email_off-->

Se você precisa de ofuscação: faça você mesmo

Se você realmente quer esconder endereços de e-mail de bots, existem formas bem melhores que não envolvem carregar nenhum script antes de o usuário demonstrar interesse. A melhor abordagem: conecte um IntersectionObserver e decodifique o e-mail just-in-time quando ele entrar no viewport. Esse é o mesmo padrão de adiar até ser necessário que uso para tudo, desde embeds do YouTube até o Google Maps.

Crie o e-mail ofuscado

Neste caso, usei uma codificação simples em base64. O base64 é apenas um exemplo. Existem inúmeras bibliotecas gratuitas de codificação e decodificação por aí.
<a
 class="email-hidden"
 href="#"
 data-email="aW5mb0BleGFtcGxlLmNvbQ==">
 [email-hidden]
</a>

Conecte o IntersectionObserver. Coloque este trecho de JavaScript no final da página.

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

Faça o upload do script decode-email.js e substitua a função de decodificação de e-mail por uma biblioteca da sua escolha.

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

Confira o resultado

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

O e-mail só é decodificado quando o visitante rola a página até ele. Impacto zero no INP, sem erros de soft 404 para o Googlebot e a codificação em base64 não é menos segura do que a cifra XOR da Cloudflare. Para comprovar a melhoria com visitantes reais, configure o Real User Monitoring. A pontuação do Lighthouse é útil para depurar, mas field data de usuários reais é o que o Google usa para ranqueamento.

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.

Arjen Karel

Precisa de um site mais rápido?

Sou o Arjen e há 17 anos conserto sites lentos. Se você está com problemas que não consegue resolver sozinho, me envie sua URL e vamos conversar.

Me envie sua URL
Arjen Karel
Arjen Karel, Consultor de web performance desde 2009

Por que nosso fix não está funcionando?

Às vezes a CDN ainda entrega o HTML antigo, ou o fix entrou no template de desktop e o celular usa outro. Me envie sua URL e o problema, e eu respondo com alguns horários. Primeiro analiso o field data, depois dedicamos uma hora ao seu site, e em até um dia você tem minhas anotações por escrito. €350 sem IVA.

Me envie sua URL

Sem desenvolvedor para fazer o fix? Eu mesmo faço o trabalho, em uma cópia do seu site.

A Cloudflare corrigiu o script de ofuscação de e-mail (e talvez eu tenha causado isso) Core Web Vitals A Cloudflare corrigiu o script de ofuscação de e-mail (e talvez eu tenha causado isso)