Análisis de logs para crawlers de IA: quién llegó realmente
El análisis de logs usa el agente de usuario y la IP que el servidor ya registra para verificar la identidad antes de contar. Incluye el comando, las tablas de campos y tokens, y los límites del registro.

El análisis de logs es la práctica de leer dos campos que el servidor ya tiene: el agente de usuario y la IP. Con ellos se separa una petición de un crawler de IA real de otra que solo usa el nombre. La pregunta que responde no es «¿podía GPTBot entrar?», sino «¿entró, qué día y cuántas veces?». Un 200 en una prueba indica que la puerta abre; el registro indica quién pasó.
Alcance real del análisis de logs
El registro entrega el agente, la ruta pedida, la hora, el código de estado y la IP. No entrega si el contenido se usó después en una respuesta o en entrenamiento. Tampoco confirma identidad por sí solo: el agente es una declaración y se puede copiar. Solo una IP que coincide con una lista publicada convierte «una petición que dice GPTBot» en «GPTBot».
Por eso el trabajo tiene dos mitades. La visible es el agente. La que decide si la línea es confiable es la IP. Si solo se lee la primera, se obtiene una respuesta segura y equivocada.
Requisito mínimo: acceso de lectura al registro del servidor y una terminal. Si el proveedor de hosting no expone registros, no hay método alternativo. Ninguna herramienta externa puede ver peticiones que nunca llegaron al servidor.
Por qué el registro vale más que una prueba de agente
Una prueba de accesibilidad simula una petición y observa la respuesta. El registro muestra lo que hicieron clientes reales sin que nadie los provocara. Los resultados pueden contradecirse en ambos sentidos: ser accesible no equivale a ser visitado, y una prueba puede fallar aunque un crawler use otra ruta.
Además, el registro aporta algo que la prueba no puede dar: tiempo. La prueba responde sí o no en un instante. El registro permite contar por día y por robot, que es la única manera de distinguir una visita semanal de una visita única.
Pasos, en este orden
Son cinco pasos. Cada uno deja una comprobación antes de continuar.
- Ubica el registro y confirma el formato. En nginx el formato por defecto es
combined; en Apache, el formato extendido/NCSA combined documenta%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-agent}i". Terminado cuando puedes nombrar cada campo en una línea real. - Cuenta por agente antes de filtrar. En una línea combined, el sexto campo entre comillas es el agente. Terminado cuando tienes una lista de los treinta agentes más frecuentes, incluidos los que no esperabas.
- Separa los tokens de crawlers de IA. Las cadenas exactas están en la tabla siguiente. Terminado cuando cada token tiene conteo y fecha de primera aparición.
- Verifica las IP que vas a citar. DNS inverso y directo para Google; archivos JSON publicados para OpenAI. Terminado cuando cada línea citada está verificada o marcada como no verificada.
- Registra la ventana, no solo el total. Un total sin días no significa nada. Terminado cuando la nota dice «412 peticiones, 1 al 31 de agosto de 2026, 5 sitios» y no «muchas».
Entregable: un comando y dos tablas
Este comando convierte un registro combined en un conteo por agente. Asume que el campo agente no contiene comillas escapadas, lo que se cumple en los crawlers de abajo y no en algunos scrapers.
awk -F'"' '{print $6}' access.log \
| sed 's/;.*compatible;//' \
| sort | uniq -c | sort -rn | head -30
El paso sed existe porque los navegadores esconden el token real detrás de un prefijo de compatibilidad. Conserva también el campo sin recortar, para volver a él cuando un número no cuadre.
El segundo entregable es la tabla de campos. Mucha gente conoce el agente y se detiene ahí; por eso su primera pasada no ve las rutas.
| Campo | Ejemplo | Qué indica |
|---|---|---|
| Dirección remota | 66.249.66.1 | El único campo verificable contra una lista publicada |
| Línea de pedido | GET /pricing HTTP/1.1 | El método y la ruta solicitados |
| Estado | 200 | Si el crawler recibió contenido o un bloqueo |
| Bytes enviados | 18432 | Cuánto se devolvió de verdad |
| Referente | - | Casi siempre vacío en un crawler |
| Agente | ... GPTBot/1.4 ... | La declaración, falsificable, sobrevalorada |
El tercer entregable es la lista de tokens publicados por los operadores, releída el 22 de septiembre de 2026 en su documentación. No es completa y aparecen nuevos sin aviso; por eso el paso 2 cuenta todo antes de filtrar.
| Token | Operador | Función | ¿Verificable? |
|---|---|---|---|
GPTBot | OpenAI | Rastreo de entrenamiento | Sí, con openai.com/gptbot.json |
OAI-SearchBot | OpenAI | Presencia en búsqueda | Sí, con openai.com/searchbot.json |
ChatGPT-User | OpenAI | Pedido iniciado por una persona | Sí, con openai.com/chatgpt-user.json |
Googlebot | Rastreo de búsqueda | DNS inverso y directo, más archivos JSON | |
Google-Extended | Token de control | No: no envía pedidos propios | |
ClaudeBot | Anthropic | Rastreo | Documentado, revisar rangos en su página |
PerplexityBot | Perplexity | Rastreo | Documentado, revisar rangos en su página |
Dos filas sostienen la conclusión. Google-Extended es un token de control, no un crawler: la documentación de Google indica que no tiene cadena de agente propia, así que no aparecer en el registro no es una falla. ChatGPT-User lo activa una persona, así que sus pedidos no son rastreo automático.
Errores frecuentes
Creerle al agente. Es el error por defecto y produce una respuesta segura y falsa. Google pide dos consultas DNS: inversa sobre la IP y directa sobre el nombre devuelto, con coincidencia obligatoria. Para OpenAI se compara la IP con el archivo de rangos. Si un crawler no publica ninguna de las dos cosas, escribe «no verificado» en lugar de creer o borrar el número.
Contar lecturas de robots.txt como páginas. OpenAI advierte que al leer robots.txt puede añadir un marcador al agente para distinguir esos pedidos. Si el formato elimina la ruta, una lectura de robots.txt y una página se ven iguales. Separa por ruta antes de informar un conteo de rastreo.
Leer una ventana demasiado corta. Siete días no responden una pregunta de treinta, y la rotación de registros recorta la ventana sin avisar. Indica la primera y la última marca de tiempo que contaste realmente.
Preguntas frecuentes
¿Se puede confiar en el agente de usuario?
No. Trátalo como una declaración hasta que la IP coincida con un rango publicado o pase el DNS inverso y directo. El registro documenta, no prueba identidad.
¿Cómo saber si GPTBot visitó el sitio?
Busca el token GPTBot y compara cada IP con openai.com/gptbot.json. Un token sin IP coincidente es otro pedido que copió el nombre.
¿Cuántos días de registro hacen falta?
Los necesarios para cubrir un ciclo completo de rastreo, que depende de cada sitio y no tiene una cifra universal. Treinta días es un punto de partida razonable. Si tienes siete, dilo: una ventana corta subestima, nunca sobreestima.
La frontera que conviene dejar escrita: el registro prueba que hubo una petición; no prueba que el contenido se usara, se posicionara o se citara. Cuando quieras convertir ese dato en una acción publicada, ahí entra QueryWin. Para revisar primero si los crawlers pueden alcanzarte, empieza por verificar si la IA puede leer tu sitio. Y si la duda es qué robots permites, está en robots.txt para rastreadores de IA.
El agente se presenta solo; la IP decide si dice la verdad.
Forma parte de la guía de QueryWin · Nivel 2


