Cloudflare arregló su script de ofuscación de correo electrónico (puede que yo lo haya causado)

El script de ofuscación de correo electrónico de Cloudflare solía bloquear el renderizado. Un PM de Cloudflare leyó este artículo y publicó la solución. Aún vale la pena evitar los problemas de SEO y seguridad.

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2026-04-16

¿Qué es la ofuscación de correo electrónico de Cloudflare?

La ofuscación de direcciones de correo electrónico de Cloudflare es una característica de Scrape Shield que oculta las direcciones de correo electrónico en sus páginas a los recolectores de correo y bots, mientras las mantiene visibles para los visitantes humanos. Está habilitada por defecto en cada zona de Cloudflare.

Última revisión por Arjen Karel en abril de 2026

Actualización abril 2026: Cloudflare lo arregló. Un Product Manager de Cloudflare me envió un mensaje en LinkedIn. Leyó este artículo y añadió el atributo defer a email-decode.min.js. La documentación oficial de Cloudflare ahora lo confirma: el script ya no bloquea el renderizado.

Defer es un cambio de una sola línea. La razón por la que no estaba allí en primer lugar probablemente fue que Cloudflare quería confirmar que no rompería sitios que dependen de que las direcciones se decodifiquen antes de DOMContentLoaded. Alguien en el equipo hizo el trabajo. Honor a quien honor merece.

La forma en que funciona es simple. El edge proxy de Cloudflare escanea su HTML en busca de cualquier cosa que parezca una dirección de correo electrónico. Reemplaza cada dirección con una cadena hexadecimal codificada con XOR e inyecta un pequeño script llamado email-decode.min.js para decodificar las direcciones en el navegador. El script tiene aproximadamente 1.2 KB, ahora se carga con defer, y se elimina a sí mismo del DOM después de la ejecución.

Hasta hace poco, ese script no se cargaba con async o defer. Bloqueaba el renderizado. Y lo hacía para una función que la mayoría de los visitantes nunca notarán o necesitarán. Esa es la situación que este artículo describió originalmente, y la razón por la que Cloudflare lo arregló.

.

Cómo solía afectar la ofuscación de correo electrónico de Cloudflare a los Core Web Vitals

.

Antes del arreglo con defer, el script email-decode.min.js era inyectado como un recurso que bloquea el renderizado. El navegador tenía que descargarlo, analizarlo y ejecutarlo antes de poder continuar renderizando la página. Eso tenía tres consecuencias:

1. Competía por el ancho de banda de la red durante la ventana crítica de renderizado, retrasando el Largest Contentful Paint.
2. Bloqueaba el hilo principal, lo que podía empujar el Interaction to Next Paint al territorio de "necesita mejora".
3. Desencadenaba hasta cinco advertencias de auditoría de Lighthouse: eliminar recursos que bloquean el renderizado, evitar tareas largas del hilo principal, reducir el tiempo de ejecución de JavaScript, evitar encadenar solicitudes críticas, y servir activos estáticos con una política de caché eficiente.

Con defer ahora en su lugar, el script se descarga en paralelo con el análisis del HTML y se ejecuta después de que el documento es analizado. La advertencia de bloqueo de renderizado ha desaparecido.

Lo que queda después del arreglo

El hilo principal todavía tiene que analizar y ejecutar 1.2 KB de JavaScript. En una computadora de escritorio eso no es nada. En un teléfono Android de gama baja con una CPU ocupada, cada pequeña tarea del hilo principal resta a su presupuesto de INP. Si ya está luchando por los últimos 50 ms de margen de INP, este script es una cosa más en la cola.

Los problemas más grandes, los que Cloudflare no arregló, están a continuación.

Efectos secundarios en el SEO

Cloudflare reemplaza las direcciones de correo electrónico con enlaces que apuntan a /cdn-cgi/l/email-protection#[hex]. Estas URLs devuelven 404 a los rastreadores, incluyendo a Googlebot. El resultado: errores "Soft 404" en Google Search Console. Las herramientas de auditoría de SEO como Ahrefs y Screaming Frog los reportan como enlaces internos rotos, creando ruido que enmascara problemas reales de rastreo. Si usa Cloudflare con la ofuscación de correo electrónico habilitada, revise su informe de cobertura en Search Console para encontrar estos errores fantasma.

¿Es siquiera segura la ofuscación de correo electrónico de Cloudflare?

En realidad no. Cloudflare usa un cifrado XOR de un solo byte donde la clave está incrustada en la propia cadena codificada. Todo sitio protegido por Cloudflare usa el mismo mecanismo de decodificación. Un spammer solo necesita implementar un decodificador para extraer las direcciones de correo electrónico de todos ellos.

Los investigadores de seguridad han demostrado que la codificación es trivialmente reversible. El estudio de ofuscación de 2026 de Spencer Mortensen probó 25 métodos diferentes contra más de 300 spammers distintos usando direcciones de correo electrónico trampa (honeypot). Incluso una simple técnica de CSS display:none logró una tasa de bloqueo del 100% contra los recolectores. No necesita un JavaScript con defer para ocultar una dirección de correo electrónico de los bots.

¿Debería seguir desactivándola?

Si no necesita la ofuscación de correo electrónico (y la mayoría de los sitios no la necesitan), apagarla elimina los errores de rastreo soft 404 y los últimos pocos milisegundos de trabajo del hilo principal. Así es cómo:

1. Inicie sesión en su panel de Cloudflare.
2. Vaya a Security > Settings (o Scrape Shield en diseños de paneles más antiguos).
3. Alterne Email Address Obfuscation a OFF (apagado).

Eso es todo. El script desaparece inmediatamente. Para una configuración completa de rendimiento en Cloudflare, vea la mejor configuración de Cloudflare para aprobar los Core Web Vitals.

Desactivar por página con Reglas de Configuración

Si desea la ofuscación de correo electrónico en su página de contacto pero no en sus landing pages de alto tráfico, use una Regla de Configuración:

1. Vaya a Rules > Configuration Rules.
2. Cree una nueva regla, nómbrela (ej. "Desactivar ofuscación de correo electrónico en landing pages").
3. Establezca los criterios de coincidencia (hostname, ruta de URL, o ambos).
4. Añada la configuración Email Obfuscation y establézcala en Off.
5. Despliegue.

También puede eximir direcciones de correo electrónico individuales en su HTML envolviéndolas en comentarios: <!--email_off-->email@example.com<!--/email_off-->

Si necesita ofuscación: hágalo usted mismo

Si desea ocultar las direcciones de correo electrónico de los bots, existen formas mucho mejores que no implican enviar ningún script antes de que el usuario haya expresado interés. El mejor enfoque: adjunte un IntersectionObserver y decodifique el correo electrónico justo a tiempo cuando se desplaza a la vista. Este es el mismo patrón de retrasar hasta que se necesite que utilizo para todo, desde incrustaciones de YouTube hasta Google Maps.

Cree el correo electrónico ofuscado

En este caso usé una codificación base64 simple. La codificación base64 es solo un ejemplo. Existen numerosas bibliotecas gratuitas de codificación y decodificación.
<a
 class="email-hidden"
 href="#"
 data-email="aW5mb0BleGFtcGxlLmNvbQ==">
 [email-hidden]
</a>

Adjunte el IntersectionObserver. Coloque este fragmento de JavaScript en la parte inferior de la 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>

Cargue el script email-decode decode-email.js y reemplace la función de decodificación de correo electrónico con una biblioteca de decodificación de su propia elección.

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

Compruebe los resultados

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

El correo electrónico se decodifica solo cuando el visitante lo desplaza a la vista. Cero impacto en el INP, no hay errores soft 404 para Googlebot, y la codificación base64 no es menos segura que el cifrado XOR de Cloudflare. Para verificar la mejora con visitantes reales, configure Real User Monitoring. Las puntuaciones de Lighthouse son útiles para depurar, pero los datos de campo de usuarios reales son los que Google utiliza para el posicionamiento.

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.

Monté CoreDash para mis auditorías.

Menos de 1KB. Hosting en la UE. Sin banner de cookies. Ahora con MCP.

Prueba CoreDash gratis
Cloudflare arregló su script de ofuscación de correo electrónico (puede que yo lo haya causado)Core Web Vitals Cloudflare arregló su script de ofuscación de correo electrónico (puede que yo lo haya causado)