Skip to content

Todo para WordPress, el desarrollo web — y mucho más

🚫 Cloudflare email-decode.min.js: por qué desactivar la ofuscación de correo electrónico y cómo eliminar el script en un minuto

🚫 Cloudflare email-decode.min.js: por qué desactivar la ofuscación de correo electrónico y cómo eliminar el script en un minuto

Usted visita PageSpeed Insights y ve un recurso que bloquea el renderizado. Lo examina más de cerca: email-decode.min.js, Cloudflare. «Este script está ralentizando el sitio otra vez», piensa, y acude a Google en busca de una solución.

En abril de 2026, Cloudflare finalmente solucionó el problema: añadieron el atributo defer y el script dejó de bloquear el renderizado. Caso cerrado, al parecer. Pero no. email-decode.min.js sigue dejando errores fantasma de tipo soft 404 en Google Search Console, y el cifrado XOR que Cloudflare usa para «proteger» las direcciones se puede descifrar en segundos. Sin seguridad real, sin informes limpios.

En la práctica, nos hemos encontrado con este script muchas veces durante auditorías de sitios: se desactiva en un minuto y se obtiene una Search Console limpia como beneficio adicional. Analicemos cómo funciona la ofuscación, por qué el script sigue causando problemas y cómo eliminarlo, con una alternativa que realmente oculta el correo electrónico a los bots.

💡 Resumen rápido:

  • Comprenda cómo funciona la ofuscación de direcciones de correo electrónico en Cloudflare y por qué existe email-decode.min.js en primer lugar.
  • Explore tres razones para desactivar la ofuscación tras la corrección de abril de 2026.
  • Desactive el script paso a paso: panel de control, API, reglas de configuración.
  • Implemente una alternativa usando IntersectionObserver y base64, sin scripts externos ni soft 404.

Cómo oculta Cloudflare el correo electrónico

Cuando un sitio funciona a través de Cloudflare, el servicio activa la ofuscación de direcciones de correo electrónico de forma predeterminada. Cloudflare analiza el HTML de las páginas, encuentra todo lo que parezca un correo electrónico y reemplaza cada dirección con una cadena hexadecimal codificada con XOR. Para descifrarla, se inyecta email-decode.min.js en el navegador del visitante.

Advertencia de PageSpeed Insights sobre el script email-decode.min.js

La idea tiene sentido: los bots no ven las direcciones, las personas sí. En la práctica, es más complicado. Hasta abril de 2026, el script perjudicaba abiertamente el rendimiento, y la protección en sí resultó ser más débil de lo que Cloudflare promete.

Tres razones para desactivar email-decode.min.js

La corrección de abril eliminó el bloqueo del renderizado. Pero persisten tres problemas. Y son más graves que los milisegundos perdidos.

Soft 404 en Search Console

Cloudflare reemplaza las direcciones de correo electrónico con enlaces como /cdn-cgi/l/email-protection#[hex]. Para Googlebot y otros rastreadores de búsqueda, estas URL devuelven un 404. El resultado: errores de «Soft 404» en Google Search Console. Ahrefs y Screaming Frog los señalan como enlaces internos rotos.

Esto no es algo superficial. Docenas de errores fantasma de Cloudflare enmascaran problemas reales de indexación. Durante una auditoría técnica, usted pierde tiempo filtrando ruido en lugar de encontrar páginas rotas reales.

El cifrado XOR no protege

Cloudflare usa XOR de un solo byte, donde la clave está incrustada directamente en la cadena codificada. El mecanismo de descifrado es idéntico para todos los sitios bajo Cloudflare. Un spammer solo necesita un decodificador y puede extraer direcciones de cualquier sitio en segundos.

La investigación de Spencer Mortensen (2026) probó 25 métodos de ofuscación contra más de 300 recolectores de spam usando direcciones señuelo. Incluso el primitivo display:none de CSS mostró un 100% de bloqueo. La ofuscación de Cloudflare solo protege contra bots que no pueden decodificar XOR, y esos no recolectarían direcciones de todos modos.

Carga en el hilo principal en dispositivos móviles

1,2 KB de JavaScript con defer no es crítico para escritorio. Pero en un dispositivo Android económico con la CPU cargada, cada pequeña tarea en el hilo principal consume parte del presupuesto de INP. Si usted está luchando por los últimos 50 ms, este script es innecesario.

Desactivar la ofuscación: guía paso a paso

Desactivarla lleva un minuto. Elija la ruta según la versión de su panel de control.

Panel nuevo (Configuración de seguridad)

  • Inicie sesión en el panel de control de Cloudflare.
  • Vaya a Seguridad → Configuración.
  • Localice el interruptor Ofuscación de direcciones de correo electrónico.
  • Cámbielo a Desactivado.

Panel antiguo (Scrape Shield)

Si la interfaz de su cuenta aún no se ha actualizado:

  • Inicie sesión en el panel de control de Cloudflare.
  • Abra la sección Scrape Shield.
  • Busque Ofuscación de direcciones de correo electrónico y cámbielo a Desactivado.
Desactivar la ofuscación de correo electrónico en la sección Scrape Shield del panel de Cloudflare

El script desaparece al instante. email-decode.min.js deja de inyectarse en todas las páginas de la zona.

A través de la API

Para automatización o gestión masiva, envíe una solicitud PATCH a la API de Cloudflare:

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

Sustituya su ID de zona y token de API con permiso para editar la configuración de la zona.

Desactivación selectiva mediante reglas de configuración

¿Necesita la ofuscación en la página de contacto pero no en las páginas de destino? Use reglas de configuración:

  • Vaya a Reglas → Reglas de configuración.
  • Cree una regla con criterios: nombre de host, ruta de URL o ambos.
  • Añada el ajuste Ofuscación de correo electrónico y configúrelo como Desactivado.
  • Aplique.

También puede excluir direcciones individuales en el HTML envolviéndolas en comentarios:

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

Alternativa sin Cloudflare: IntersectionObserver y base64

Si realmente necesita ocultar el correo electrónico a los bots, hay una forma mejor. Sin script externo, sin soft 404 y sin impacto en el INP. El enfoque: codificar la dirección en base64 y descifrarla mediante IntersectionObserver, solo cuando el visitante se desplace hasta el bloque que contiene el correo electrónico.

Paso 1. Marcado HTML:

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

El atributo data-email contiene la dirección en base64. Codifique la cadena con una herramienta en línea o el comando echo -n "[email protected]" | base64.

Paso 2. Observador. Coloque el script en el pie de página:

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

Paso 3. Función de descifrado, archivo decode-email.js:

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

Resultado: el correo electrónico se decodifica solo al desplazarse hasta él. Cero impacto en el INP, cero errores de soft 404. Y base64 no es peor que el XOR de Cloudflare como «protección»; ambos métodos son trivialmente reversibles, pero combinado con IntersectionObserver, la dirección ni siquiera entra en el DOM al cargar la página.

Videoguía

Si prefiere una guía visual, aquí tiene una demostración de cómo desactivar la ofuscación en el panel de control de Cloudflare:

⁉️🤔 Preguntas frecuentes

¿Afecta la ofuscación de Cloudflare a todas las páginas del sitio?

Sí, tras añadir un sitio a Cloudflare, la ofuscación de direcciones de correo electrónico se activa para toda la zona. El script email-decode.min.js se inyecta en cada página donde se detecta texto que se asemeje a un correo electrónico. Puede excluir páginas individuales mediante reglas de configuración y direcciones específicas a través de comentarios HTML <!--email_off-->.

¿Qué sucede si simplemente desactivo la ofuscación?

email-decode.min.js dejará de inyectarse de inmediato. Todas las direcciones de correo electrónico del sitio serán visibles en el código fuente, exactamente como usted las colocó. Para la mayoría de los sitios, esta es la operación normal: el correo electrónico de contacto ya es público y ocultarlo a los bots se puede hacer con métodos más simples.

¿Protege la ofuscación de Cloudflare contra todos los bots de spam?

No. El cifrado XOR es el mismo para todos los sitios, cualquiera puede descifrar las direcciones. Los datos de Spencer Mortensen muestran: incluso display:none de CSS bloquea al 100% de los más de 300 recolectores de spam probados. La ofuscación de Cloudflare solo funciona contra bots primitivos que no intentan decodificar XOR.

¿Puedo ocultar el script solo de PageSpeed Insights?

No, PageSpeed Insights comprueba la página como un navegador normal. Si el script se inyecta, Lighthouse lo verá. Con la corrección de abril de 2026, el bloqueo del renderizado desapareció, pero los efectos SEO (soft 404) y el microimpacto en el INP permanecen. La única forma de eliminar el script por completo es desactivar la ofuscación de direcciones de correo electrónico en el panel de control.

¿Cómo verifico que la ofuscación está realmente desactivada?

Abra el código fuente de la página (Ctrl+U) y busque email-decode.min.js. Si no aparece el script, significa que la ofuscación está desactivada. Alternativamente, compruebe la consola del navegador: antes de desactivar, el DOM contiene <script src="/cdn-cgi/scripts/.../email-decode.min.js">; después, desaparece. Los cambios se aplican al instante.

Desactivar o mantener: el veredicto

Con la corrección de abril, email-decode.min.js dejó de bloquear el renderizado. Pero el ruido SEO (soft 404 en Search Console) y la ilusión de seguridad (XOR es reversible en segundos) permanecen. Desactivarlo a través del panel de control lleva un minuto. Beneficio adicional: informes limpios y un par de milisegundos de INP ahorrados en dispositivos móviles.

Si realmente se necesita la ofuscación, la alternativa con IntersectionObserver y base64 proporciona protección real contra los recolectores de spam. Sin efectos secundarios. La decisión es suya, pero email-decode.min.js en 2026 es más costumbre que necesidad.