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.

Rastreo e indexación5 min de lectura1725 visitas
Análisis de logs para crawlers de IA: quién llegó realmente

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

CampoEjemploQué indica
Dirección remota66.249.66.1El único campo verificable contra una lista publicada
Línea de pedidoGET /pricing HTTP/1.1El método y la ruta solicitados
Estado200Si el crawler recibió contenido o un bloqueo
Bytes enviados18432Cuá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.

TokenOperadorFunción¿Verificable?
GPTBotOpenAIRastreo de entrenamientoSí, con openai.com/gptbot.json
OAI-SearchBotOpenAIPresencia en búsquedaSí, con openai.com/searchbot.json
ChatGPT-UserOpenAIPedido iniciado por una personaSí, con openai.com/chatgpt-user.json
GooglebotGoogleRastreo de búsquedaDNS inverso y directo, más archivos JSON
Google-ExtendedGoogleToken de controlNo: no envía pedidos propios
ClaudeBotAnthropicRastreoDocumentado, revisar rangos en su página
PerplexityBotPerplexityRastreoDocumentado, 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

Análisis de logs para crawlers de IA: quién llegó realmente