Tus logs no mienten: cuánto te crawlean ClaudeBot y GPTBot por cada visita que te devuelven

Un colega que lleva un medio pequeño me escribió un domingo por la tarde con el clásico «tengo el servidor raro». Nada dramático: picos de CPU cada pocas horas, el panel de analítica plano como una mesa de billar, cero campañas activas. Lo primero que hicimos fue lo aburrido, que casi siempre es lo que funciona: abrir el access.log y mirar quién estaba llamando a la puerta.

No era un ataque. No era un scraper de tres al cuarto con la IP de un VPS de garrafa. Era, ordenadito y educado, un desfile de rastreadores con nombre y apellidos: ClaudeBot, GPTBot, PerplexityBot, meta-externalagent, Amazonbot. Todos identificándose como Dios manda, todos respetando el robots.txt, todos comportándose de maravilla. Y todos pidiendo páginas a un ritmo que su humilde plan de hosting no había firmado.

La pregunta que salió sola fue la que da título a esto: vale, me estáis leyendo entero, ¿y qué me mandáis a cambio?

El ratio que nadie quiere calcular

Cloudflare lleva un tiempo publicando en su Radar una métrica que llaman crawl-to-refer ratio: cuántas peticiones hace el rastreador de cada compañía por cada visita que esa compañía te devuelve. Es una división de guardería, pero tiene la mala costumbre de dejar a todo el mundo en evidencia.

Lo bonito es que no necesitas a Cloudflare para calcularlo en tu casa. Necesitas tu log y treinta segundos.

Los dos comandos

Asumo formato combinado, el de toda la vida en Apache y Nginx. Separando por comillas, el campo 4 es el referer y el 6 el user agent. Primero, quién te rastrea:

awk -F'»‘ ‘{print $6}’ access.log | grep -oiE ‘ClaudeBot|GPTBot|OAI-SearchBot|ChatGPT-User|PerplexityBot|Perplexity-User|Googlebot|Google-Extended|bingbot|meta-externalagent|Amazonbot|Bytespider|Applebot’ | sort | uniq -c | sort -rn

Y ahora la contrapartida, quién te manda gente:

awk -F'»‘ ‘{print $4}’ access.log | grep -oiE ‘chatgpt\.com|perplexity\.ai|claude\.ai|copilot\.microsoft\.com|gemini\.google\.com|google\.|bing\.com’ | sort | uniq -c | sort -rn

Divide la primera columna por la segunda, agrupando por compañía (GPTBot, OAI-SearchBot y ChatGPT-User van juntos; ClaudeBot y Claude-User también). Si usas Cloudflare, tienes lo mismo sin tocar el servidor: exporta los Logpush o tira del panel de bots y cruza con las fuentes de referencia. Y si quieres el contexto del resto del mundo, Radar te da el ratio por operador, actualizado. No copio aquí sus cifras porque se mueven cada semana y un número congelado en un artículo envejece fatal; ve, míralo y compáralo con el tuyo. Lo que sí aguanta el paso del tiempo es el orden: Google abajo, OpenAI en medio, Anthropic bastante más arriba, y eso siendo generosos.

Lo que vimos en su log

El caso de mi colega tenía la forma que ya me esperaba. ClaudeBot era, con diferencia, el que más páginas pedía; también el que menos aparecía en el lado de las visitas. GPTBot y compañía rastreaban menos y devolvían algo, poco pero algo. Perplexity mandaba un goteo que al menos se podía ver a simple vista. Y Googlebot, el señor mayor de la fiesta, era el único cuya factura de ancho de banda tenía una columna de ingresos enfrente que no daba risa.

Esa es la parte incómoda. Llevamos años quejándonos de Google, del CTR que se desploma, de las respuestas que se comen el clic. Pues bien: en el reparto actual, Google sigue siendo el único que te cobra el peaje y te devuelve algo medible. Los demás están construyendo su producto con tu contenido y te devuelven una nota a pie de página que a veces ni se pincha.

Antes de indignarte, ajusta el cálculo

El número que te salga va a estar mal, y conviene saber por qué:

  • Las visitas de IA se esconden. Muchas llegan sin referer, o con la política de referencia recortada, y acaban en el cajón de «directo». Tu ratio real es mejor que el que calculas. No muchísimo mejor, pero mejor.
  • Los agentes en vivo no son rastreo. ChatGPT-User, Claude-User o Perplexity-User se disparan cuando alguien está preguntando en ese momento por algo tuyo. Eso no es entrenamiento: es una visita con intención que resulta que la hace un programa. Sepáralos del bloque de rastreo o te saldrán las cuentas torcidas.
  • El user agent se falsifica en dos segundos. Si vas a tomar decisiones con esto, valida contra los rangos de IP que publican OpenAI, Anthropic, Perplexity y Google, o haz DNS inverso. Verás que una parte de lo que decía ser un bot conocido no lo era.
  • Divide por sección. A veces el 80% del rastreo se lo lleva un archivo paginado infinito o una faceta de filtros que no le interesa a nadie. Eso no es una injusticia cósmica, es un problema de arquitectura tuyo.

Y ahora qué se hace con el número

Mi colega quería bloquearlo todo el domingo por la noche, que es exactamente el momento en el que peor se decide. Le convencí de esperar a tener dos semanas de datos y de mirarlo por carpetas. Al final ni bloqueó ni dejó de bloquear: puso límite de peticiones a los que rastreaban sin contrapartida, dejó pasar libremente a los agentes que llegan con una persona detrás, y cerró el grifo de las páginas basura que se estaban llevando la mitad del ancho de banda. La CPU volvió a su sitio y las visitas no se movieron ni un pelo, que era justo lo que decía el ratio que iba a pasar.

Cloudflare ya vende la idea del peaje, del pago por rastreo, del mercado donde cada petición tiene precio. Puede que llegue y puede que no. Mientras tanto, lo único que tienes es un fichero de texto en tu servidor con la verdad escrita línea a línea, y un awk para leerla. Yo he empezado a mirarlo una vez al mes en los sitios que llevo, como quien revisa el contador de la luz. Se tarda menos que discutirlo en LinkedIn y te deja mucho más tranquilo.

fruiz

Share
Publicado por
fruiz

Recent Posts

Medí un block theme y un tema clásico de WordPress: los kilobytes que nadie cuenta

Monté la misma página dos veces, una en tema clásico y otra en tema de…

57 años atrás

Cómo atribuir el tráfico de ChatGPT y Perplexity en GA4 sin engañarte

Buena parte de las visitas que te mandan los asistentes aterrizan en GA4 como tráfico…

57 años atrás

Los agentes de OpenAI no copiaron el examen: fueron a estudiarse al corrector

Treinta y siete páginas, 1.200 agentes, 70.000 mensajes y tres lecciones que te puedes llevar…

57 años atrás

Por qué la IA arrasa escribiendo código y patina decidiendo: la frontera es irregular

No es que programar sea cerrado y el negocio ambiguo. Es quién corrige los deberes…

57 años atrás

¿Cómo consigo que un personaje de IA no pierda el hilo a los cien mensajes?

La ventana de contexto se llena y el personaje se contradice o se convierte en…

57 años atrás

Auditoría de schema muerto: los datos estructurados que mantienes y Google ya no usa

Hay sitios que siguen inyectando HowTo, FAQ y sitelinks searchbox en cada plantilla años después…

57 años atrás