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

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
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 URLSem desenvolvedor para fazer o fix? Eu mesmo faço o trabalho, em uma cópia do seu site.