Análise de logs para crawlers de IA: quem realmente veio
A análise de logs lê o agente de usuário e o IP que o servidor já grava, e verifica a identidade antes de contar. Inclui o comando, a tabela de campos, a lista de tokens e os limites do que o log prova.

A análise de logs é a leitura de dois campos que o servidor já grava, o agente de usuário e o IP, para separar um pedido de um crawler de IA real de outro que apenas usa o nome. Ela responde a uma pergunta que um teste de acesso não resolve: não «o GPTBot conseguia chegar a esta página», mas «ele chegou, em que dia e quantas vezes». Um 200 mostra que a porta abre. O log mostra quem entrou.
O que a análise de logs mostra e o que ela não mostra
O log informa o agente, o caminho pedido, o horário, o código de status e o IP. Ele não informa se o conteúdo foi usado depois em uma resposta ou em treinamento. Também não confirma identidade sozinho: o agente é uma declaração e qualquer pessoa pode copiá-lo. Só um IP correspondente transforma «um pedido que diz GPTBot» em «GPTBot».
Por isso o assunto exige um método, não uma dica de uma linha. Uma linha de log tem duas metades. A metade que todos leem é o agente. A metade que decide se a linha é verdadeira é o IP.
Antes de começar, você precisa de acesso de leitura ao log do servidor e de um terminal. Se a hospedagem não entrega logs, este método não tem substituto: nenhuma ferramenta externa vê pedidos que nunca chegaram ao seu servidor.
Por que o log vale mais que a checagem de agente
Um teste de acesso envia um pedido com agente imitado e observa a resposta. O log registra o que clientes reais fizeram, sem provocação. Os dois podem se contradizer: estar acessível não é o mesmo que ser visitado, e um teste pode falhar enquanto um crawler passa por outro caminho.
O log também traz o campo que o teste nunca produz: tempo. O teste dá sim ou não em um instante. O log dá contagem por dia e por robô, única forma de distinguir um crawler semanal daquele que veio uma vez e foi embora.
Faça nesta ordem
São cinco passos. Cada um tem uma conferência antes do próximo.
- Encontre o log e confirme o formato. No nginx, o padrão é
combined; no Apache, o formato estendido/NCSA combined documenta%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-agent}i". Pronto quando você consegue nomear cada campo em uma linha real. - Conte por agente antes de filtrar. Em uma linha combined, o sexto campo entre aspas é o agente. Pronto quando você tem uma lista dos trinta agentes mais frequentes, não só os que esperava.
- Separe os tokens dos crawlers de IA. As strings exatas estão na tabela abaixo. Pronto quando cada token tem contagem e data da primeira aparição.
- Verifique os IPs que você vai citar. DNS reverso e direto para o Google; arquivos JSON publicados para a OpenAI. Pronto quando cada linha citada está verificada ou marcada como não verificada.
- Registre a janela, não só o total. Um total sem número de dias não significa nada. Pronto quando a nota diz «412 pedidos, 1 a 31 de agosto de 2026, 5 sites», e não «muitos».
O entregável: um comando e duas tabelas
Este comando transforma um log no formato combined em contagem por agente. Ele assume que não há aspas escapadas dentro do campo agente, o que vale para os crawlers abaixo e não para alguns scrapers.
awk -F'"' '{print $6}' access.log \
| sed 's/;.*compatible;//' \
| sort | uniq -c | sort -rn | head -30
O passo sed existe porque os navegadores escondem o token real atrás de um prefixo de compatibilidade. Guarde também o campo bruto, para voltar a ele quando uma contagem parecer errada.
O segundo entregável é a tabela de campos. Quase todo mundo conhece o agente e para por aí; é por isso que a primeira passada não vê os caminhos.
| Campo | Exemplo | O que indica |
|---|---|---|
| Endereço remoto | 66.249.66.1 | O único campo verificável contra uma lista publicada |
| Linha do pedido | GET /pricing HTTP/1.1 | O método e o caminho pedidos |
| Status | 200 | Se o crawler recebeu conteúdo ou bloqueio |
| Bytes enviados | 18432 | Quanto foi devolvido de fato |
| Referenciador | - | Quase sempre vazio em um crawler |
| Agente | ... GPTBot/1.4 ... | A declaração, falsificável, superestimada |
O terceiro entregável é a lista de tokens publicados pelos operadores, relida em 22 de setembro de 2026 na documentação deles. Ela não é completa e novos aparecem sem aviso, o que reforça o passo 2: contar tudo antes de filtrar.
| Token | Operador | Função | Verificável? |
|---|---|---|---|
GPTBot | OpenAI | Coleta para treinamento | Sim, via openai.com/gptbot.json |
OAI-SearchBot | OpenAI | Presença na busca | Sim, via openai.com/searchbot.json |
ChatGPT-User | OpenAI | Pedido iniciado por pessoa | Sim, via openai.com/chatgpt-user.json |
Googlebot | Coleta para busca | DNS reverso e direto, mais arquivos JSON | |
Google-Extended | Token de controle | Não: não envia pedidos próprios | |
ClaudeBot | Anthropic | Coleta | Documentado, confira as faixas na página deles |
PerplexityBot | Perplexity | Coleta | Documentado, confira as faixas na página deles |
Duas linhas sustentam a conclusão. Google-Extended é um token de controle, não um crawler: a documentação do Google diz que ele não tem string de agente própria, então não aparecer no log não é falha. ChatGPT-User é acionado por uma pessoa, então seus pedidos não são coleta automática.
O que dá errado
Confiar no agente. É o erro padrão e produz uma resposta confiante e errada. O Google exige duas consultas DNS: reversa no IP e direta no nome obtido, com correspondência obrigatória. Para a OpenAI, compara-se o IP com o arquivo de faixas. Para um crawler que não publica nenhuma das duas, escreva «não verificado» em vez de acreditar ou apagar a contagem.
Contar leituras de robots.txt como páginas. A OpenAI observa que, ao ler robots.txt, pode adicionar um marcador ao agente para distinguir esses pedidos. Se o formato elimina o caminho, uma leitura de robots.txt e uma página ficam iguais. Separe por caminho antes de anunciar uma contagem de coleta.
Ler uma janela curta demais. Sete dias não respondem uma pergunta de trinta, e a rotação de logs corta a janela sem avisar. Informe o primeiro e o último horário realmente contados.
Perguntas frequentes
Dá para confiar no agente de usuário do log?
Não. Trate como declaração até o IP corresponder a uma faixa publicada ou passar pelo DNS reverso e direto. O log documenta, não prova identidade.
Como saber se o GPTBot visitou meu site?
Busque o token GPTBot e compare cada IP com openai.com/gptbot.json. Um token sem IP correspondente é outro pedido que copiou o nome.
Quantos dias de log preciso guardar?
O suficiente para cobrir um ciclo completo de coleta, o que depende do site e não tem número universal. Trinta dias é um ponto de partida razoável. Se você tem sete, diga isso: uma janela curta subestima, nunca superestima.
A fronteira que vale escrever sem rodeios: o log prova que houve um pedido; não prova que o conteúdo foi usado, posicionado ou citado. Quando quiser transformar esse dado em ação publicada, é aí que entra o QueryWin. Para checar antes se os crawlers conseguem alcançar você, comece por verificar se a IA consegue ler seu site. E se a dúvida é quais robôs você permite, está em robots.txt para crawlers de IA.
O agente se apresenta sozinho; o IP decide se ele diz a verdade.
Faz parte do guia do QueryWin · Nível 2


