Un User-Agent es solo texto. Una petición que dice ser un bot del catálogo cuenta como verificada solo si funciona uno de los métodos de verificación de ese bot.
| Método | Panel | Verificado cuando |
|---|---|---|
ip | Rangos IP | La IP del cliente está en los rangos que publica el operador. |
rdns | DNS inverso | El nombre PTR de la IP acaba en uno de los sufijos del bot (como .googlebot.com) y ese nombre resuelve a la misma IP (DNS inverso confirmado hacia delante). |
web_bot_auth | Web Bot Auth | La petición lleva cabeceras Signature-Agent, Signature-Input (etiqueta web-bot-auth, Ed25519) y Signature válidas (HTTP Message Signatures, RFC 9421), comprobadas con las claves que publica el agente en /.well-known/http-message-signatures-directory. |
Suplantados y no verificables
- Un User-Agent que dice ser un bot del catálogo y no pasa la verificación (IP fuera de sus rangos, DNS inverso que falta o no coincide) es suplantado.
- Un error de DNS no convierte una petición en suplantada: queda sin verificar, con la señal
rdns_error. - Una firma Web Bot Auth no válida deja la señal
wba_invalid. - Los bots que no publican rangos, DNS inverso ni firmas (ClaudeBot, Bytespider…) son no verificables: conservan su categoría con
verified=false, se les aplica además la claveunverified_bot(gana la acción más fuerte) y nunca quedan exentos de nada.
Rastreadores suplantados y el reto
Sin verificación, bastaba con decir «Googlebot» para saltarse el reto de navegador. Con spoofed_challenge: enforce, solo los rastreadores verificados se lo saltan: los falsos reciben el mismo reto que cualquiera. Con log (por defecto), el borde mantiene la exención por User-Agent, pero registra que habría retado. spoofed_challenge es independiente de mode.
En el panel: Configuración → Protección → Bloquear crawlers falsos en el reto.
Los rastreadores verificados nunca reciben el enlace trampa, ni se les reta o manda al laberinto por seguirlo.