Skip to content

Diagnóstico y errores ​

"No abre la página", "no me llegan los correos", "me sale un error 522". Tarde o temprano un cliente te escribirá eso a las 11 de la noche. La diferencia entre un principiante y un profesional no es saberse todos los errores de memoria, sino tener un método: hacer las preguntas correctas en el orden correcto y comprobar con herramientas en lugar de adivinar.

En esta lección aprenderás ese método, los comandos para cada pregunta, cómo limpiar cachés y una tabla grande de errores con su causa y solución.

Concepto: el método de las tres preguntas ​

Piensa en una carta que no llegó. ¿El problema es la dirección del sobre, la oficina postal que la reparte o el destinatario que no abre la puerta? Con un dominio es igual: hay tres capas y se revisan de arriba hacia abajo.

txt
┌─────────────────────────────────────────────────────────────────────────┐
│ 1. ¿QUÉ NAMESERVERS ESTÁN ACTIVOS?  (¿quién manda en el dominio?)        │
│    Registrador → TLD (.com / .mx) → ¿Cloudflare? ¿hosting? ¿registrador? │
│    Si esto está mal, todo lo demás da igual.                            │
├─────────────────────────────────────────────────────────────────────────┤
│ 2. ¿QUÉ DICE LA ZONA?  (¿los registros son correctos?)                   │
│    A / CNAME / MX / TXT... preguntando DIRECTO al nameserver activo.    │
│    ¿Naranja o gris? ¿TTL? ¿falta algo?                                   │
├─────────────────────────────────────────────────────────────────────────┤
│ 3. ¿QUÉ RESPONDE EL SERVIDOR?  (¿el destino funciona?)                   │
│    Cloudflare → origen 203.0.113.10: HTTP, certificado, correo (SMTP).   │
│    Códigos de estado, cabeceras, logs.                                   │
└─────────────────────────────────────────────────────────────────────────┘
          + Capa 0 (siempre al final): CACHÉS
            navegador, sistema operativo, router, proveedor, Cloudflare.

Regla de oro: cambia una sola cosa, verifica, y anota. Si cambias cinco cosas a la vez y se arregla, no sabrás cuál fue (ni cuál rompiste).

Pregunta 1: ¿qué nameservers están activos? ​

bash
# Lo que responde el resolver (puede venir de caché)
dig +short NS mitienda.com

# Lo que dice el registro del TLD .com (la delegación "oficial", sin caché intermedia)
dig NS mitienda.com @a.gtld-servers.net

# Para un .mx, primero averigua los servidores del TLD y pregunta a uno
dig +short NS mx
dig NS mitienda.mx @a.mx-ns.mx

# El camino completo desde la raíz (muy didáctico)
dig +trace mitienda.com

# El registro WHOIS: nameservers, fechas y ESTADO del dominio
whois mitienda.com
powershell
# Windows
Resolve-DnsName mitienda.com -Type NS -Server 1.1.1.1
nslookup -type=NS mitienda.com 8.8.8.8

Qué buscar:

  • Que aparezcan solo ana.ns.cloudflare.com y bob.ns.cloudflare.com (o los que deban ser).
  • En whois: la fecha de expiración (Registry Expiry Date) y el estado. clientTransferProhibited es normal (candado contra robos). clientHold o serverHold significan que el dominio está suspendido: no resuelve aunque todo lo demás esté perfecto (pasa con dominios vencidos o cuando el titular no verificó su correo tras el registro).

Pregunta 2: ¿qué dice la zona? ​

Pregunta directamente al nameserver autoritativo. Así eliminas cualquier caché y ves la verdad actual:

bash
dig mitienda.com A          @ana.ns.cloudflare.com +short
dig www.mitienda.com        @ana.ns.cloudflare.com +short
dig mitienda.com AAAA       @ana.ns.cloudflare.com +short   # ¡revisa IPv6! (ver "sitio viejo")
dig mitienda.com MX         @ana.ns.cloudflare.com +short
dig mitienda.com TXT        @ana.ns.cloudflare.com +short
dig _dmarc.mitienda.com TXT @ana.ns.cloudflare.com +short
dig default._domainkey.mitienda.com TXT @ana.ns.cloudflare.com +short
dig mail.mitienda.com A     @ana.ns.cloudflare.com +short
powershell
Resolve-DnsName mitienda.com -Type A   -Server ana.ns.cloudflare.com
Resolve-DnsName mitienda.com -Type MX  -Server ana.ns.cloudflare.com
Resolve-DnsName mitienda.com -Type TXT -Server ana.ns.cloudflare.com
Resolve-DnsName _dmarc.mitienda.com -Type TXT -Server ana.ns.cloudflare.com

# Ignorar el archivo hosts y la caché local
Resolve-DnsName mitienda.com -Type A -DnsOnly -NoHostsFile
txt
nslookup clásico (Windows, Mac y Linux):
  nslookup -type=MX mitienda.com 1.1.1.1
  nslookup -type=TXT _dmarc.mitienda.com 1.1.1.1

Cómo interpretar la respuesta de dig mitienda.com A:

RespuestaInterpretación
104.21.x.x / 172.67.x.xRegistro en naranja (IPs de Cloudflare). Normal para la web.
203.0.113.10Registro en gris o sin Cloudflare: es la IP real.
Vacío, status: NOERROREl nombre existe pero no tiene registro de ese tipo.
status: NXDOMAINEl nombre no existe en la zona (o el dominio no existe).
status: SERVFAILEl servidor no pudo responder: DNSSEC roto, nameservers que no responden o mal delegados.

Herramienta interactiva: puedes hacer estas mismas consultas desde el navegador en el consultor DNS en vivo.

Pregunta 3: ¿qué responde el servidor? ​

curl -I: las cabeceras lo cuentan todo ​

bash
curl -sI https://mitienda.com
txt
HTTP/2 200
date: Mon, 02 Nov 2026 18:20:11 GMT
content-type: text/html; charset=UTF-8
server: cloudflare                ← pasó por Cloudflare (naranja)
cf-ray: 8d1f2a3b4c5d6e7f-QRO      ← ID de la petición + centro de datos (QRO = Querétaro)
cf-cache-status: DYNAMIC          ← no cacheado (HTML)
bash
# Seguir toda la cadena de redirecciones (detecta bucles y saltos raros)
curl -sIL http://www.mitienda.com | grep -iE "^HTTP|^location"

# Saltarte Cloudflare y preguntarle DIRECTO al origen, conservando el nombre del dominio
curl -sI --resolve mitienda.com:443:203.0.113.10 https://mitienda.com
curl -sI --resolve mitienda.com:80:203.0.113.10  http://mitienda.com

# Ver el certificado y la negociación TLS en detalle
curl -vI https://mitienda.com 2>&1 | grep -iE "subject|issuer|expire|SSL connection"

curl en Windows PowerShell

En Windows PowerShell 5.1, curl es un alias de Invoke-WebRequest y los parámetros no funcionan igual. Escribe curl.exe (viene incluido en Windows 10/11): curl.exe -sI https://mitienda.com.

¿El servidor de correo responde? ​

bash
# ¿Están abiertos los puertos de correo? (Linux/Mac)
nc -vz mail.mitienda.com 25
nc -vz mail.mitienda.com 587
nc -vz mail.mitienda.com 993
powershell
Test-NetConnection mail.mitienda.com -Port 587
Test-NetConnection mail.mitienda.com -Port 993

Si fallan y mail.mitienda.com resuelve a una IP de Cloudflare, ya encontraste el problema: está en naranja. (Ojo: muchos proveedores de internet domésticos bloquean el puerto 25 de salida; prueba el 587 y el 993.)

Limpiar cachés ​

Cuando la zona ya está bien pero "en mi compu sigue igual", es caché. Límpiala de adentro hacia afuera:

DóndeCómo
Windowsipconfig /flushdns (o en PowerShell Clear-DnsClientCache). Ver lo cacheado: ipconfig /displaydns.
Macsudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux (systemd)resolvectl flush-caches
Chrome / EdgeAbre chrome://net-internals/#dns → Clear host cache; luego chrome://net-internals/#sockets → Flush socket pools. En Edge: edge://net-internals/#dns.
Firefoxabout:networking#dns → Clear DNS Cache.
CelularActiva y desactiva el modo avión, o cambia de WiFi a datos.
Router / proveedor de internetNo se pueden limpiar: espera el TTL o cambia temporalmente el DNS de tu equipo a 1.1.1.1 u 8.8.8.8.
Archivo hostsRevisa que no quedaron líneas de pruebas: Windows C:\Windows\System32\drivers\etc\hosts, Mac/Linux /etc/hosts.
CloudflareCaching → Configuration → Purge Cache (para archivos, no para DNS).
Navegador (archivos)Ventana de incógnito o Ctrl + Shift + R (recarga sin caché).

Buena práctica: prueba primero en incógnito y con datos móviles

Si en incógnito y desde el celular con datos móviles el sitio funciona, el problema está en tu equipo o red, no en el dominio. Te ahorra horas.

Herramientas en línea ​

HerramientaPara qué
whatsmydns.netVer qué responde un registro desde decenas de países. Ideal para "¿ya propagó?".
dnschecker.orgSimilar, con más tipos de registro y herramientas extra (consulta DKIM, SPF).
MXToolbox (mxtoolbox.com)MX, SPF, DKIM, DMARC, listas negras (Blacklist Check), prueba SMTP y análisis de cabeceras de correo.
mail-tester.comTe da una dirección; le mandas un correo y te califica de 0 a 10 explicando qué falla (SPF, DKIM, DMARC, contenido, listas negras).
Google Admin Toolbox (toolbox.googleapps.com)CheckMX: revisa la configuración de correo de un dominio de Google Workspace. Messageheader: analiza cabeceras. Dig: consultas DNS.
SSL Labs (ssllabs.com/ssltest)Califica el HTTPS (A+ a F), cadena del certificado, protocolos. Con Cloudflare, califica el tramo visitante↔Cloudflare.
intoDNS (intodns.com)Revisión general de salud del DNS: nameservers, SOA, MX, consistencia.
DNSViz (dnsviz.net)Diagnóstico visual de DNSSEC (para los SERVFAIL misteriosos).
Consultor DNS de Academia Web/dominios/herramientas: consultas en vivo y generador de SPF/DMARC.

Tabla de errores del navegador y DNS ​

ErrorQué significaCausas típicasSolución
DNS_PROBE_FINISHED_NXDOMAINEl DNS dice que el nombre no existeDominio vencido o suspendido (clientHold); nameservers equivocados; falta el registro (www o el subdominio); error de dedo; zona en Cloudflare aún Pending con NS cambiados a mediaswhois (estado y vencimiento), dig NS, dig directo al autoritativo; crea el registro faltante; renueva el dominio
ERR_NAME_NOT_RESOLVEDNo se pudo resolver el nombreIgual que NXDOMAIN, o el resolver falló (SERVFAIL por DNSSEC roto tras cambiar NS), caché negativa, problema de red localdig mitienda.com (mira el status), revisa DS en el registrador con DNSViz; limpia caché; prueba con 1.1.1.1
DNS_PROBE_FINISHED_NO_INTERNETTu equipo no tiene conexiónRed localRevisa tu conexión, no el dominio
ERR_CONNECTION_REFUSEDHay IP, pero nadie atiende el puertoRegistro en gris a un servidor sin web en 80/443; servidor apagadoRevisa la IP del registro A; estado del servidor
ERR_CONNECTION_TIMED_OUTLa IP no respondeIP equivocada (hosting viejo), firewalldig + curl --resolve; corrige la IP
ERR_TOO_MANY_REDIRECTSBucle de redireccionesSSL Flexible + HTTPS forzado; .htaccess y Redirect Rules en sentidos opuestos (www ↔ sin www)Full (strict); curl -sIL para ver la cadena; deja una sola regla canónica
"No es seguro" / NET::ERR_CERT_...Problema de certificado o contenido mixtoRegistro en gris sin certificado, certificado vencido, nombre no cubierto, recursos http://Ver SSL sin pagar: naranja, AutoSSL, contenido mixto
El sitio muestra el sitio viejoAlgo apunta al servidor anteriorVer sección dedicada abajoVer sección dedicada abajo

Tabla de errores de Cloudflare ​

Las páginas de error de Cloudflare muestran un diagrama "Navegador — Cloudflare — Servidor" marcando en rojo dónde está la falla. Léelo: si el rojo está en "Host" (tu servidor), el problema no es Cloudflare.

CódigoNombreQué pasóCausas típicasSolución
520Web server returns an unknown errorEl origen respondió algo vacío o inválidoPHP que se cae (fatal error), cabeceras demasiado grandes (cookies enormes), conexión cortada por el servidorRevisa logs de error (cPanel → Errores), prueba con curl --resolve, reduce cookies
521Web server is downEl origen rechazó la conexiónApache/Nginx caído; el firewall del hosting (CSF, ModSecurity, fail2ban) bloquea las IPs de CloudflareLevanta el servicio; pide al hosting que permita los rangos de cloudflare.com/ips
522Connection timed outNo se completó la conexión TCP con el origenIP equivocada en el registro A, firewall que descarta paquetes, servidor saturadoVerifica la IP en DNS; curl --resolve; revisa carga del servidor
523Origin is unreachableCloudflare no encuentra ruta hacia el origenIP inexistente, privada (192.168.x.x) o mal escritaCorrige el registro A/AAAA
524A timeout occurredConectó, pero el origen tardó más de 100 segundos en responderReporte o importación pesada, consulta lenta a la BDOptimiza o haz el proceso en segundo plano (cola); para tareas largas usa un subdominio en gris
525SSL handshake failedNo se pudo negociar TLS con el origen (Full/Full strict)Sin certificado en el 443, puerto 443 sin HTTPS, configuración SSL rotaInstala AutoSSL u Origin Certificate; openssl s_client a la IP de origen
526Invalid SSL certificateEn Full (strict), el certificado del origen no es válidoVencido, autofirmado, sin el nombre (www), cadena incompletaAutoSSL / Let's Encrypt / Origin Certificate que cubra los nombres
1000DNS points to prohibited IPEl registro apunta a una IP de CloudflareAlguien copió la IP que salía en dig (de Cloudflare) como si fuera la del hostingPon la IP real del origen (cPanel → panel derecho "IP compartida/dedicada")
1001DNS resolution errorCloudflare no sabe qué hacer con ese nombreDominio recién agregado (no Active); CNAME hacia un dominio en Cloudflare que no está configurado para recibirloEspera Active; revisa el CNAME o configura el dominio destino (ej. Custom Hostnames)
1016Origin DNS errorEl destino de un CNAME no resuelveCNAME www → mitienda.com.mx mal escrito; CNAME a una app/servicio que ya no existeCorrige el CNAME; verifica con dig que el destino resuelva
1020Access deniedTe bloqueó una regla WAFRegla de país, IP o ruta demasiado agresivaSecurity → Events, busca el Ray ID y ajusta la regla

El Ray ID es tu mejor pista

Toda página de error de Cloudflare muestra un Ray ID (como el cf-ray de las cabeceras). Búscalo en Security → Events para ver exactamente qué regla o qué problema lo causó. Si escribes a soporte del hosting, incluye el código de error, el Ray ID y la hora.

Correo: los problemas más comunes ​

Correos que no llegan (no recibes) ​

txt
1. dig MX mitienda.com +short               → ¿apunta al proveedor correcto? ¿hay MX viejos mezclados?
2. dig A mail.mitienda.com +short           → ¿IP real (gris)? Si sale 104.21.x.x / 172.67.x.x: está en NARANJA.
3. Test-NetConnection mail.mitienda.com -Port 25 (desde un servidor, no desde casa)
4. cPanel → Email Routing                   → "Local" si el correo vive en cPanel, "Remote" si es Google/Zoho/M365.
5. ¿Buzón lleno? cPanel → Cuentas de correo → cuota.
6. Pide al remitente el mensaje de rebote completo.

Correos que caen en spam ​

  1. Envía un correo a mail-tester.com y lee el informe.
  2. En Gmail abre el mensaje → menú ⋮ → Mostrar original. Arriba verás:
txt
SPF:   PASS with IP 203.0.113.10
DKIM:  'PASS' with domain mitienda.com
DMARC: 'PASS'

Si alguno dice FAIL, NEUTRAL, SOFTFAIL o no aparece, ahí está el problema:

ResultadoCausa probableLección
SPF fail/softfailLa IP que envía no está en el SPF; +a con nube naranja; dos registros SPFSPF
DKIM ausente o failNo se publicó el TXT del selector; clave del servidor viejo tras migrar; registro cortadoDKIM
DMARC failNi SPF ni DKIM alineados con el dominio del remitenteDMARC
Todo PASS pero spamIP en lista negra (MXToolbox Blacklist), contenido tipo spam, dominio nuevo sin reputación, envíos masivos sin bajaCalienta el envío; usa un servicio transaccional

Correos rebotados ​

Mensaje de rebote (fragmento)SignificadoSolución
550 5.7.1 ... SPF fail / Sender policy frameworkEl receptor revisó tu SPF y la IP no está autorizadaAgrega la IP o el include: del proveedor que envía
550-5.7.26 ... unauthenticated (Gmail)Falla SPF/DKIM/DMARC; Gmail exige autenticaciónConfigura SPF + DKIM + DMARC alineados
550 5.7.1 ... DMARC policyTu propio DMARC (p=reject) pidió rechazarloArregla SPF/DKIM antes de endurecer DMARC
550 5.1.1 User unknown / No such userEl buzón no existeRevisa la dirección o crea la cuenta
552 5.2.2 Mailbox fullBuzón llenoLibera espacio o sube la cuota
554 ... listed in / blocked using (Spamhaus, etc.)La IP de envío está en lista negraMXToolbox Blacklist; pide al hosting cambiar la IP de salida o solicita la baja
421 ... try again laterRechazo temporal (limitación de velocidad)El servidor reintentará; si persiste, revisa reputación

"El sitio muestra el sitio viejo" ​

Uno de los reportes más frecuentes después de una migración. Revisa en este orden:

txt
□ ¿Los NS ya son los de Cloudflare?           dig NS mitienda.com @a.gtld-servers.net
  (si sigue Pending, la zona VIEJA del hosting responde en parte del mundo)
□ ¿El registro A apunta a la IP nueva?        dig A mitienda.com @ana.ns.cloudflare.com
□ ¿Hay un AAAA (IPv6) que apunta al servidor viejo?   ← la causa escondida más común
  dig AAAA mitienda.com @ana.ns.cloudflare.com
  (los equipos con IPv6 prefieren AAAA: a unos les sale el sitio nuevo y a otros el viejo)
□ ¿Quedó una línea en el archivo hosts?
□ ¿Caché de Cloudflare? (cf-cache-status: HIT)  → Purge Cache
□ ¿Caché del navegador o de un plugin de caché de WordPress? → incógnito / vaciar caché del plugin
□ ¿El hosting nuevo tiene el dominio agregado? (si no, muestra la página por defecto del servidor)
□ Registro gris con TTL alto → esperar el TTL o haberlo bajado antes

Caso real: de "no funciona" a resuelto en 10 minutos ​

"Moví mi dominio a Cloudflare y ahora la página dice demasiados redireccionamientos y no me llegan correos."

bash
# 1) ¿Quién manda?
dig +short NS mitienda.com
# ana.ns.cloudflare.com.  bob.ns.cloudflare.com.   → Cloudflare. Bien.

# 2) ¿Qué dice la zona?
dig +short mitienda.com @ana.ns.cloudflare.com        # 104.21.45.12 (naranja) → bien
dig +short MX mitienda.com @ana.ns.cloudflare.com     # 0 mail.mitienda.com. → bien
dig +short mail.mitienda.com @ana.ns.cloudflare.com   # 172.67.180.3 → ¡MAL! mail está en naranja

# 3) ¿Qué responde el servidor?
curl -sIL https://mitienda.com | grep -iE "^HTTP|^location"
# HTTP/2 301  location: https://mitienda.com/
# HTTP/2 301  location: https://mitienda.com/   ... (bucle)
curl -sI --resolve mitienda.com:443:203.0.113.10 https://mitienda.com
# HTTP/1.1 200 OK  → el origen sí tiene HTTPS válido

Diagnóstico: SSL en Flexible (bucle) y mail en naranja (correo). Solución: SSL/TLS → Full (strict); DNS → mail en gris. Dos clics, y ahora sabes por qué.

Ejercicios ​

  1. Escribe los comandos (Linux/Mac y Windows) para comprobar: qué NS tiene mitienda.com según el TLD, y qué registro MX responde directamente ana.ns.cloudflare.com.
  2. Un cliente ve error 522 en todo el sitio desde ayer. El hosting dice "no hicimos nada". ¿Qué tres cosas compruebas?
  3. Después de migrar, en tu laptop ves el sitio nuevo, pero el cliente (con internet de fibra con IPv6) ve el viejo. ¿Cuál es la causa más probable y con qué comando la confirmas?
  4. Un correo de ventas@mitienda.com a Gmail rebota con 550-5.7.26. El SPF es v=spf1 +a +mx ~all y @ está en naranja. Explica y corrige.
  5. Te llega un error 1000 en un subdominio nuevo promo.mitienda.com. El registro es A promo 104.21.45.12. ¿Qué pasó?
Ver solución
bash
dig NS mitienda.com @a.gtld-servers.net
dig MX mitienda.com @ana.ns.cloudflare.com +short
powershell
Resolve-DnsName mitienda.com -Type NS -Server a.gtld-servers.net
Resolve-DnsName mitienda.com -Type MX -Server ana.ns.cloudflare.com
  1. (1) Que el registro A en Cloudflare tenga la IP correcta del hosting (dig al autoritativo y compararla con la de cPanel; quizá el hosting cambió la IP del servidor). (2) Que el origen responda directo: curl -sI --resolve mitienda.com:443:203.0.113.10 https://mitienda.com. (3) Que el firewall del hosting no esté bloqueando o descartando las IPs de Cloudflare, y que el servidor no esté saturado.
  2. Un registro AAAA que sigue apuntando al servidor viejo. Confirmar: dig AAAA mitienda.com @ana.ns.cloudflare.com +short. Solución: borrarlo o actualizarlo.
  3. +a autoriza las IPs del registro A de mitienda.com, que con nube naranja son de Cloudflare; el correo sale de 203.0.113.10, así que SPF falla y, sin DKIM, Gmail lo rechaza. Corrección: v=spf1 ip4:203.0.113.10 mx ~all, publicar el DKIM de cPanel y un DMARC p=none para empezar.
  4. 104.21.45.12 es una IP de Cloudflare (alguien copió lo que devolvía dig mitienda.com). Cloudflare no puede usarse a sí mismo como origen. Pon la IP real: A promo 203.0.113.10.

Resumen ​

  • Método: 1) nameservers activos → 2) zona → 3) servidor, y al final las cachés.
  • dig / Resolve-DnsName / nslookup preguntando directo al autoritativo dicen la verdad sin caché.
  • curl -sI revela si pasas por Cloudflare; curl --resolve prueba el origen saltándote Cloudflare. En Windows usa curl.exe.
  • Limpia cachés: ipconfig /flushdns, chrome://net-internals/#dns, archivo hosts, Purge Cache.
  • 52x = problema entre Cloudflare y tu servidor; 10xx = configuración DNS/reglas en Cloudflare.
  • Correo: revisa MX, mail en gris, Email Routing en cPanel, y SPF/DKIM/DMARC = PASS en "Mostrar original".
  • "Sitio viejo": NS pendientes, A o AAAA viejos, hosts, cachés.
  • Siguiente: Proyecto: cliente completo.

Academia Web — aprende, copia y construye.