Logs do servidor: como saber se o ChatGPT e o Googlebot visitam o site

Equipe NotHuman

Escrito com AI revisado por humanos.

Tempo de leitura: 12 minutos

O ChatGPT aparece nos logs com o user agent OAI-SearchBot, quando rastreia páginas para a busca, ou ChatGPT-User, quando as abre a pedido de usuários. O GPTBot, também da OpenAI, coleta conteúdo para treino. Nos logs do servidor, o user agent identifica ainda o Googlebot, o Bingbot e os robôs de IA do Claude e do Perplexity.

Em resumo

  • No ChatGPT, o user agent OAI-SearchBot indica o rastreamento da busca, enquanto o ChatGPT-User indica o pedido de um usuário. Já o GPTBot coleta conteúdo para treino.
  • Qualquer um pode copiar o user agent do Googlebot ou do ChatGPT. Por isso, confirme o IP nas listas oficiais de cada empresa.
  • Os logs ficam no servidor, e não no WordPress. Em hospedagens com cPanel, por exemplo, o log de acesso sai pelo Raw Access.
  • Os logs mostram a visita, mas não dizem se a página virou citação. Aliás, o Google-Extended nem aparece neles, porque não tem user agent próprio.

Qual user agent o ChatGPT usa?

A OpenAI usa um user agent para cada tarefa, e dois deles servem às respostas do ChatGPT. O OAI-SearchBot rastreia páginas para a busca do ChatGPT, e o ChatGPT-User abre uma página quando um usuário pede. Já o GPTBot coleta conteúdo para treinar os modelos da empresa, enquanto o OAI-AdsBot só visita páginas enviadas como anúncios.

Na documentação da OpenAI, cada user agent do ChatGPT e dos outros robôs da empresa aparece assim, mas a versão dos dois primeiros pode mudar.

OAI-SearchBot  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot
GPTBot         Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot
ChatGPT-User   Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
OAI-AdsBot     Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-AdsBot/1.0; +https://openai.com/adsbot

Ao buscar o robots.txt, a OpenAI pode acrescentar a marca robots.txt ao user agent do OAI-SearchBot e do GPTBot. Já que a string muda, filtre pelo nome do robô, e não pela string inteira. Aliás, a documentação do Google pede o mesmo para o user agent do Googlebot: no lugar da versão do Chrome, use um curinga.

Robôs de IA nos logs: ilustração de um servidor que solta linhas de log com robôs marcados pelo user agent e uma lupa sobre um deles

Qual a diferença entre GPTBot, OAI-SearchBot e ChatGPT-User nos logs?

O OAI-SearchBot mostra que a busca do ChatGPT rastreia o site. Já o ChatGPT-User mostra que um usuário fez uma pergunta e que o ChatGPT abriu a página para responder. O GPTBot, por sua vez, coleta conteúdo para treino. Se ele e o OAI-SearchBot estiverem liberados, porém, a OpenAI pode usar um só rastreamento para os dois fins.

Por isso, olhe os dois juntos antes de concluir que a busca perdeu interesse no site. As páginas que o user agent ChatGPT-User abre, por outro lado, são as que o ChatGPT foi buscar para responder a alguém. O que liberar e o que bloquear está no guia de robots.txt para IA.

Como aparecem os robôs de IA do Claude, do Perplexity, do Google e do Bing?

As outras empresas seguem a mesma lógica: um robô para a busca, outro para pedidos de usuários e, em algumas, um para treino. A Anthropic publica só os nomes dos robôs, enquanto o Perplexity, o Google e a Microsoft publicam também o user agent completo. No log, procure estes nomes:

Robô no logO que a visita indicaLista oficial de IPs
Claude-SearchBotIndexação para a busca do Claudebots.json, da Anthropic
Claude-UserPergunta de um usuário do Claudebots.json, da Anthropic
ClaudeBotColeta para treino de modelosbots.json, da Anthropic
PerplexityBotIndexação para a busca do Perplexityperplexitybot.json
Perplexity-UserPergunta de um usuário do Perplexityperplexity-user.json
GooglebotPesquisa Google, inclusive a IA da buscacommon-crawlers.json
bingbotBusca do Bing e Copilotbingbot.json

No Google, o user agent do Googlebot serve também à IA da busca. Segundo o Google, a IA faz parte da Pesquisa, e as regras do Googlebot controlam o acesso. Assim, o log não separa o rastreamento das Visões gerais criadas por IA e do Modo IA da busca comum. Da mesma forma, as diretrizes do Bing dizem que a busca e o Copilot usam a mesma base de rastreamento.

Onde ficam os logs dos robôs de IA na hospedagem, na CDN e no WordPress?

Os logs de acesso são do servidor web, e não do WordPress. Em hospedagem compartilhada, eles costumam sair pelo painel, enquanto em servidor próprio ficam no arquivo que a configuração define. Atrás de uma CDN, porém, o servidor grava o IP da CDN, e não o dos robôs de IA, até alguém ajustar a configuração.

  • Hospedagem com cPanel: na seção Metrics, a ferramenta Raw Access baixa o log de acesso de cada domínio num arquivo .gz.
  • Servidor próprio: no Apache, a diretiva CustomLog define o arquivo, e no Nginx, a access_log. Os dois aceitam o formato combinado, com IP, data, pedido, status, tamanho, referência e user agent.
  • WordPress gerenciado: se o painel da hospedagem mostrar só o log de erros, peça o log de acesso ao suporte.
  • Cloudflare: os logs do servidor registram um IP da Cloudflare, e o IP original chega no cabeçalho CF-Connecting-IP, que a Cloudflare ensina a gravar. Na própria Cloudflare, o AI Crawl Control mostra os robôs de IA em todos os planos, como explica o guia de como checar se a Cloudflare está bloqueando o ChatGPT. Já os planos Business e Enterprise mostram os pedidos ao vivo, no Instant Logs.

Como filtrar os robôs de IA nos logs por user agent?

Filtre o log pelo nome de cada robô e, em seguida, conte pedidos, páginas, dias e códigos de resposta. Os comandos abaixo rodam no terminal do Linux e do macOS e, no Windows, no Git Bash. Eles leem o formato combinado, comum no Apache e padrão no Nginx.

# Formato combinado do Apache e do Nginx: IP no 1º campo, data no 4º, página no 7º e status no 9º
LOG=access.log   # log compactado (.gz): troque grep por zgrep

# 1. Quantos pedidos cada robô fez
for ROBO in Googlebot bingbot OAI-SearchBot ChatGPT-User GPTBot ClaudeBot Claude-SearchBot Claude-User PerplexityBot Perplexity-User; do
  echo "$ROBO: $(grep -ci "$ROBO" "$LOG")"
done

# 2. Páginas que o ChatGPT-User mais abriu
grep "ChatGPT-User" "$LOG" | awk '{print $7}' | sort | uniq -c | sort -rn | head -20

# 3. Pedidos do OAI-SearchBot por dia
grep "OAI-SearchBot" "$LOG" | awk '{print substr($4, 2, 11)}' | uniq -c

# 4. Códigos de resposta que o GPTBot recebeu
grep "GPTBot" "$LOG" | awk '{print $9}' | sort | uniq -c | sort -rn

# 5. IPs que usaram o nome do Googlebot, para conferir depois
grep "Googlebot" "$LOG" | awk '{print $1}' | sort | uniq -c | sort -rn | head

O primeiro comando ignora maiúsculas, porque o Bing escreve bingbot em minúsculas no user agent. O comando 2 mostra as páginas que o user agent ChatGPT-User abriu, ou seja, o que o ChatGPT foi buscar para responder a usuários. Já o comando 5 separa os IPs que usaram o user agent do Googlebot. Para ver o que os rastreadores de IA pedem além do HTML, como scripts e chamadas de API, use o checklist de SEO JavaScript.

O que os códigos 403 e 429 indicam nos logs dos robôs de IA?

O código de resposta mostra o que cada robô recebeu. Em geral, 200 indica página entregue, 301 e 302, redirecionamento, e 404, página inexistente. Já um 403 ou um 429 só para um robô aponta bloqueio fora do robots.txt, como firewall, CDN ou limite de pedidos da hospedagem.

Na NotHuman, um teste nosso deixou uma pergunta que o log ajuda a responder. A hospedagem respondeu 429 a um pedido de um IP comum com o user agent completo do GPTBot, inclusive no robots.txt. Já os do OAI-SearchBot, do ChatGPT-User, do ClaudeBot e de um navegador receberam 200. Como o teste não reproduz o IP, porém, não sabemos se o robô real, vindo dos IPs da OpenAI, também recebe 429.

Por isso, teste cada user agent e olhe os logs, porque o bloqueio pode vir da hospedagem, e não do robots.txt ou do WordPress. Nos logs do servidor, a resposta está no par user agent e IP. Um 429 em linhas do GPTBot vindas de IPs da lista da OpenAI mostra que o robô real também recebe o bloqueio.

Como confirmar que os robôs de IA são verdadeiros pelos IPs publicados?

Compare o IP de cada linha do log com as listas que as empresas publicam. Afinal, qualquer um pode escrever o nome de um robô no pedido, inclusive o user agent do Googlebot. No Google e no Bing, há ainda o DNS reverso: o nome do IP termina no domínio da empresa e aponta de volta para o mesmo IP.

A Anthropic e o Perplexity, por exemplo, indicam esse caminho. O script abaixo, em Python 3, baixa as listas oficiais e diz a que robô pertence cada IP do log.

# conferir_ip.py: diz a que lista oficial pertence cada IP
# Uso: python conferir_ip.py 66.249.66.1 203.0.113.5
import ipaddress, json, sys, urllib.request

LISTAS = {
    "OAI-SearchBot": "https://openai.com/searchbot.json",
    "ChatGPT-User": "https://openai.com/chatgpt-user.json",
    "GPTBot": "https://openai.com/gptbot.json",
    "Anthropic (Claude)": "https://claude.com/crawling/bots.json",
    "PerplexityBot": "https://www.perplexity.com/perplexitybot.json",
    "Perplexity-User": "https://www.perplexity.com/perplexity-user.json",
    "Googlebot": "https://developers.google.com/static/crawling/ipranges/common-crawlers.json",
    "Bingbot": "https://www.bing.com/toolbox/bingbot.json",
}

redes = {}
for robo, url in LISTAS.items():
    pedido = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
    dados = json.load(urllib.request.urlopen(pedido, timeout=30))
    redes[robo] = [ipaddress.ip_network(p.get("ipv4Prefix") or p.get("ipv6Prefix"), strict=False)
                   for p in dados["prefixes"]]

for ip in sys.argv[1:]:
    endereco = ipaddress.ip_address(ip)
    donos = [robo for robo, lista in redes.items() if any(endereco in rede for rede in lista)]
    print(ip, "->", ", ".join(donos) if donos else "fora das listas publicadas")

Rode o script com os IPs do comando 5. Um IP que usa o nome de um robô, mas fica fora da lista dele, indica imitação. No Google e no Bing, porém, confirme com o DNS reverso antes de concluir. As listas também mudam, e o Bing, por exemplo, pede para conferir a dele todo dia.

Como verificar o Googlebot e o Bingbot pelo DNS reverso?

Faça duas buscas de DNS. Primeiro, consulte o IP do log: o nome precisa terminar em googlebot.com, google.com ou googleusercontent.com, segundo o Google, ou em search.msn.com, segundo o Bing. Em seguida, consulte esse nome e confira se ele volta para o mesmo IP.

nslookup 66.249.66.1
# o nome precisa terminar em googlebot.com: crawl-66-249-66-1.googlebot.com

nslookup crawl-66-249-66-1.googlebot.com
# o endereço precisa ser o mesmo IP do log: 66.249.66.1

Nos exemplos, o Google usa o comando host, e o Bing mostra também o nslookup do Windows. Assim, antes de confiar num user agent do Googlebot ou do Bingbot, faça as duas buscas. O Bing oferece ainda a ferramenta Verify Bingbot. Para OpenAI, Anthropic e Perplexity, no entanto, as páginas oficiais indicam só as listas de IP.

Que ferramenta usar para analisar logs de SEO e de robôs de IA?

Para começar, o terminal e uma planilha bastam, já que os comandos acima resumem o log por robô, página e dia. Para análises recorrentes, uma ferramenta de log de SEO junta contagens, códigos e verificação de robôs. Já o Search Console mostra só os robôs do Google, e a CDN, os robôs de IA que passam por ela.

  • Screaming Frog Log File Analyser: lê o log, verifica robôs de busca e de IA e mostra URLs rastreadas, frequência e códigos de resposta. A versão grátis analisa até 1.000 linhas, e a licença anual tira o limite.
  • Estatísticas de rastreamento do Search Console: em Configurações, o relatório mostra quantos pedidos o Google fez, quando e com que resposta. Esses dados vêm do Google, e não do user agent do Googlebot gravado no log, por isso imitadores ficam de fora.

O que os logs não mostram sobre os robôs de IA?

Os logs mostram a visita, mas não o que a IA fez com a página. Eles não dizem se o texto entrou numa resposta, se virou citação ou qual pergunta levou o robô até ali. Além disso, alguns pedidos nem chegam ao servidor e, por isso, ficam fora dos logs.

  • Citações: no Bing Webmaster Tools, o AI Performance mostra quantas vezes cada página virou fonte no Copilot e nos resumos de IA do Bing.
  • Treino do Gemini: o Google-Extended não tem user agent próprio, porque o Google usa o token só como controle no robots.txt. Por isso, ele não aparece no log.
  • Cache e CDN: a Cloudflare guarda o robots.txt em cache por padrão, e um robô barrado na CDN aparece só nos registros dela. Nos dois casos, o pedido some dos logs do servidor.
  • Cliques de pessoas: quem clica num link do ChatGPT chega com o user agent do próprio navegador. Para medir esses cliques, veja o guia de tráfego de IA no GA4.

O que fazer se os robôs de IA nunca aparecem nos logs?

Em primeiro lugar, confira se o log está completo: domínio, período e IP real atrás da CDN. Em seguida, procure o bloqueio em três camadas: robots.txt, CDN e hospedagem. Por fim, lembre que o ChatGPT-User e o Perplexity-User só aparecem quando alguém faz uma pergunta que leva o assistente até o site.

  1. Junte os arquivos. Baixe os logs de cada domínio, com e sem www, e os .gz dos meses anteriores.
  2. Leia o robots.txt. Procure Disallow sob OAI-SearchBot, Claude-SearchBot e PerplexityBot ou no grupo de todos os robôs. Veja como testar se o robots.txt bloqueia o Google, o Bing ou os robôs de IA.
  3. Abra a CDN e o firewall. Um robô barrado ali não chega aos logs do servidor.
  4. Teste cada user agent. Compare a resposta de cada robô com a de um navegador, como no teste da NotHuman acima.
  5. Volte ao log depois de corrigir. A OpenAI fala em cerca de 24 horas para a busca do ChatGPT refletir uma mudança no robots.txt.

Esse diagnóstico é um item da auditoria técnica de SEO, que cobre também a indexação. Afinal, o acesso dos robôs é a base técnica do SEO para a era da IA.

Perguntas frequentes

Os robôs de IA aparecem no Google Analytics?

Não como visitas, porque o Google Analytics exclui de forma automática o tráfego de robôs e indexadores conhecidos, e não dá para desligar essa exclusão. Por isso, as visitas dos robôs de IA ficam só nos logs do servidor e da CDN. Já os cliques de pessoas vindos do ChatGPT aparecem no GA4.

Dá para ver nos logs a pergunta que o usuário fez ao ChatGPT?

Não. No formato combinado, cada linha traz IP, data, pedido, status, tamanho, referência e user agent, mas nenhum campo guarda a pergunta. O log mostra só a página que o ChatGPT-User abriu para responder. Assim, as páginas mais abertas por ele indicam o assunto, e não a pergunta exata.

Por quanto tempo a hospedagem guarda os logs?

Depende da hospedagem. No cPanel, a ferramenta Raw Access pode arquivar os logs na pasta logs da conta e, por padrão, mantém esses arquivos sem prazo. Há, porém, opções para apagar os do mês anterior ou definir um prazo de retenção. Para comparar meses, baixe os arquivos todo mês.

Quer saber como sua marca aparece hoje nas respostas de IA?

A NotHuman está abrindo vagas para agências e marcas acompanharem como aparecem nas respostas de IA. Entre na lista de espera e avisamos quando houver uma vaga para você.

Fontes principais

Índice

Continue lendo

Receba os novos artigos da NotHuman

Um e-mail quando publicarmos um artigo novo sobre GEO, SEO e IA. Você pode sair da lista quando quiser.