Screaming Frog, user-agent por defecto, Start. A los diez segundos: “el sitio no carga”. En más de una agencia de Cusco el servidor está bien. El WAF responde 406 Not Acceptable si el user-agent parece scraper. Frog, de fábrica, parece scraper.

Cambio el UA a Chrome, mando Accept: text/html, y sale 200. El 406 hay que anotarlo. No es downtime.

curl -sI -A "Screaming Frog SEO Spider/20.0" https://www.agencia.com/
# a menudo: HTTP/2 406

curl -sI -A "Mozilla/5.0" -H "Accept: text/html" https://www.agencia.com/
# HTTP/2 200

Qué es el WAF en esta película

Un proxy (Cloudflare, ModSecurity, un plugin “anti-bot”, el panel del hosting) inspecciona la petición. Reglas típicas: UA vacío, UA de herramientas, falta de Accept, rate limit, datacenter IP. Googlebot debería estar en una lista permitida; no siempre lo está si alguien copió reglas agresivas.

Google publica rangos de IP y un método para verificar Googlebot (DNS inverso). Si GSC muestra picos de 4xx o “anomalía en el rastreo”, entonces el WAF es un problema de indexación, no solo de Frog. Hasta que no lo veas en GSC, no asumas que Google está bloqueado. Asumir eso es el error simétrico al de “el sitio está caído”.

Cómo configuras el laboratorio

  • Screaming Frog: Configuration → User-Agent → Chrome. Headers Accept.
  • Modo lista si solo quieres el catálogo del sitemap.
  • Respeta Crawl-delay de cortesía aunque Google lo ignore: no martilles 80 hilos contra un VPS de Cusco en temporada.
  • Guarda la config. El próximo junior no debería volver al 406.

El auditor en Python que escribí para una red de tours hace lo mismo: UA de navegador por defecto. Sin eso, el script miente.

Qué vigilar en producción

SeñalQué puede serAcción
GSC: 403/406/429 en estadísticas de rastreoWAF o rate limit a GooglebotAllowlist, verificar IPs, bajar sensibilidad
Frog 406, Chrome 200Regla anti-scraperDocumentar. No “arreglar” abriendo el WAF al mundo
406 a Googlebot en un curlAlguien bloqueó malUrgente. Inspección de URL en GSC
Challenge JS (Cloudflare)El HTML inicial no es el contenidoRender en Frog; ver HTML renderizado vs original

No apagues el WAF para que un crawler de 99 dólares se sienta cómodo. Apágalo (o ajústalo) si Google no puede rastrear. El resto de herramientas se adaptan al sitio, no al revés.

Qué pedirle a sistemas

El firewall está haciendo su trabajo con scrapers. Necesito una excepción documentada para Googlebot y un UA de Chrome para las auditorías internas. No necesito que el sitio sea rastreable por cualquier script de Internet.

No pido que desactiven Cloudflare. Pido una vía de medición.