En ese periodo, griddo.io sirvió 143.567 páginas.
| Grupo | Páginas | % del total |
|---|---|---|
| Bots declarados por User-Agent | 66.255 | 46,1 % |
| Bots declarados + tráfico no declarado desde datacenters | 79.829 | 55,6 % |
| Bots de IA declarados | 16.202 | 11,3 % |
| Resto, sin clasificar | 63.738 | — |
Los grupos se solapan. Los bots de IA declarados son una parte de los bots declarados. El resto es lo que no entra en ninguno de los otros grupos.
Fuente: los logs de acceso de CloudFront, la CDN que sirve griddo.io.
Periodo: del 6 de septiembre al 8 de noviembre de 2026, 64 días. Empieza el 6 de septiembre porque es el primer día con logs disponibles en nuestro histórico.
Fecha de la consulta: 9 de noviembre de 2026. Los logs de CloudFront pueden llegar con retraso, así que si repites la consulta más adelante sobre el mismo periodo las cifras pueden variar ligeramente.
Una petición GET con respuesta 200 y tipo de contenido text/html, sin las rutas /api/. Así quedan fuera las imágenes, los scripts, las hojas de estilo y las llamadas internas. Contamos páginas, no visitas ni personas.
Bot declarado. El User-Agent contiene alguno de estos textos: bot, crawl, spider, slurp, gptbot, claude, perplexity, bytespider, amazonbot, applebot, facebookexternalhit, meta-external, python, curl, wget, go-http, httpclient, headless, scrapy, axios, node-fetch, okhttp, java/, libwww, monitor, uptime, preview, ahrefs, semrush, mj12, dotbot, petalbot, yandex, bingpreview.
Tráfico no declarado desde datacenters. No es un bot declarado, pero llega desde la red de un proveedor de nube o hosting. Lo identificamos por el número de sistema autónomo (ASN): 15169 (Google Cloud), 8075 (Azure), 16509 y 14618 (AWS), 24940 (Hetzner), 16276 (OVH), 14061 (DigitalOcean) y 20473 (Vultr).
Bot de IA declarado. El User-Agent contiene alguno de estos textos: gptbot, oai-searchbot, chatgpt, claudebot, claude-, anthropic, perplexity, google-extended, ccbot, bytespider, meta-external, amazonbot, applebot-extended, cohere, diffbot, youbot, mistral. Son los rastreadores y agentes de OpenAI, Anthropic, Perplexity, ByteDance, Meta y similares.
Resto. Todo lo demás. No lo llamamos humano: no tenemos forma de saberlo solo con los logs.
google-extended no captura nada. Está en la lista de IA, pero según la documentación de Google ese token no aparece como User-Agent en las peticiones. El rastreo de Google para IA no se puede separar en los logs con este método.Si tu web está detrás de CloudFront y tienes los logs estándar en S3, puedes consultarlos con Amazon Athena. Esta consulta usa la tabla cloudfront_standard_logs que propone la documentación de Athena para los logs estándar. Si tu tabla tiene otro nombre, cámbialo, y ajusta el periodo a tu caso.
SELECT
CASE
WHEN regexp_like(lower(cs_user_agent),
'gptbot|oai-searchbot|chatgpt|claudebot|claude-|anthropic|perplexity|ccbot|bytespider|meta-external|amazonbot|applebot-extended|cohere|diffbot|youbot|mistral')
THEN 'bot_ia_declarado'
WHEN regexp_like(lower(cs_user_agent),
'bot|crawl|spider|slurp|gptbot|claude|perplexity|bytespider|amazonbot|applebot|facebookexternalhit|meta-external|python|curl|wget|go-http|httpclient|headless|scrapy|axios|node-fetch|okhttp|java/|libwww|monitor|uptime|preview|ahrefs|semrush|mj12|dotbot|petalbot|yandex|bingpreview')
THEN 'otro_bot_declarado'
ELSE 'resto'
END AS grupo,
count(*) AS paginas
FROM cloudfront_standard_logs
WHERE cs_method = 'GET'
AND sc_status = 200
AND sc_content_type LIKE 'text/html%'
AND cs_uri_stem NOT LIKE '/api/%'
AND "date" BETWEEN DATE '2026-09-06' AND DATE '2026-11-08'
GROUP BY 1
ORDER BY 2 DESC;
Tres detalles que no dan error, pero sí cifras equivocadas:
sc_status es un número y date una fecha. Si tu tabla guarda todo como texto, como la nuestra, compara con sc_status = '200' y con fechas entre comillas, sin DATE. Comparar un texto con un número devuelve cero filas.%20. La búsqueda por patrón funciona igual, pero una comparación exacta con un User-Agent completo no encuentra nada.google-extended (ver el límite 5). Como el primer grupo se evalúa antes, los bots de IA declarados no se cuentan dos veces: para el total de bots declarados, suma los dos primeros grupos. Los logs estándar de CloudFront no traen el ASN. Para separar el tráfico desde datacenters tienes que cruzar la IP de cada petición con una base de datos de ASN.