A OpenAI usa três robôs diferentes para treinar modelos, buscar na web e responder perguntas de usuários. Veja como auditar logs, separar as regras no robots.txt e confirmar que a configuração funcionou.
A OpenAI documenta, na página oficial de bots da plataforma, quatro user-agents com funções distintas: GPTBot, OAI-SearchBot, ChatGPT-User e OAI-AdsBot. O problema é que muita gente trata os três primeiros como se fossem a mesma coisa e escreve uma regra genérica de User-agent: * no robots.txt, bloqueando ou liberando tudo de uma vez. Isso joga fora metade do controle que a própria OpenAI dá ao webmaster.
A documentação é explícita: "cada configuração é independente das outras" e um site pode permitir o OAI-SearchBot para aparecer em resultados de busca enquanto bloqueia o GPTBot para impedir que o conteúdo rastreado seja usado em treino. É esse o ajuste fino que este guia percorre, do log bruto até o teste no ChatGPT Search.
Três bots, três decisões diferentes
Antes de tocar no robots.txt, vale fixar o que cada agente faz, porque a decisão de bloquear ou liberar muda conforme o objetivo.
| User-agent | Para que serve | Afeta treino de modelo | Afeta aparecer na busca |
|---|---|---|---|
GPTBot | Rastreia conteúdo para treinar os modelos de fundação da OpenAI | Sim | Não |
OAI-SearchBot | Indexa páginas para as respostas de busca do ChatGPT | Não | Sim |
ChatGPT-User | Visita páginas sob demanda, quando um usuário pede algo específico no ChatGPT ou em um GPT customizado | Não | Não (a doc diz que esse agente "não é usado para determinar se o conteúdo pode aparecer na Busca") |
OAI-AdsBot | Valida páginas de destino submetidas como anúncios | Não | Não |
A própria OpenAI avisa que, se um site permite os dois bots de treino e busca, ela "pode usar o resultado de um único rastreamento para os dois usos, para evitar rastreamento duplicado". Ou seja: permitir os dois não dobra a carga no servidor, mas bloquear só um exige regras separadas e explícitas, porque regra genérica trata todos os agentes do mesmo jeito.
Passo 1: audite os logs antes de mexer em qualquer regra
O primeiro erro é editar o robots.txt sem saber se esses bots já estão (ou não) acessando o site. Rode, no log de acesso do servidor, uma contagem por user-agent:
grep -ic "GPTBot" /var/log/nginx/access.log
grep -ic "OAI-SearchBot" /var/log/nginx/access.log
grep -ic "ChatGPT-User" /var/log/nginx/access.logSe os três retornarem zero, o site provavelmente nunca foi rastreado por nenhum deles, e a prioridade é liberar o OAI-SearchBot antes de pensar em bloquear qualquer coisa. Se GPTBot já aparece em volume e você quer impedir treino, confirme que as requisições vêm mesmo da OpenAI, e não de alguém forjando o cabeçalho User-Agent:
grep "GPTBot" /var/log/nginx/access.log | awk '{print $1}' | sort -u > ips_gptbot.txt
curl -s https://openai.com/gptbot.json | jq -r '.prefixes[].ipv4Prefix' > faixas_oficiais.txtCom as duas listas em mãos, cruze os IPs do seu log contra os prefixos CIDR publicados (openai.com/gptbot.json, openai.com/searchbot.json e openai.com/chatgpt-user.json, um arquivo JSON por bot). Requisição com User-Agent: GPTBot vinda de fora dessas faixas é, no mínimo, suspeita e não deveria pautar sua decisão de bloquear ou liberar.
Passo 2: escreva regras separadas no robots.txt
Com os logs auditados, o robots.txt fica assim para quem quer aparecer na busca do ChatGPT mas não quer alimentar treino de modelo:
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /Repare que não existe um bloco User-agent: * nesse exemplo. Se você já tem um catch-all genérico no arquivo (User-agent: * seguido de Disallow: /admin, por exemplo), ele continua valendo para qualquer bot que não tenha bloco próprio, mas os blocos específicos de GPTBot, OAI-SearchBot e ChatGPT-User sempre têm prioridade sobre o genérico para esses três agentes. É assim que se bloqueia treino sem bloquear busca: a regra mais específica vence.
Vale lembrar três detalhes que a documentação deixa explícitos e que mudam a estratégia de quem depende de automação:
- O
ChatGPT-Usersó age quando um usuário pede algo específico dentro do ChatGPT; a OpenAI avisa que, por ser uma ação disparada por pessoa, "regras derobots.txtpodem não se aplicar" a ele da mesma forma que se aplicam a um rastreador automático. - O
OAI-SearchBoté o único agente que decide se o site aparece nas respostas de busca; bloquearChatGPT-Usernão tira o site da busca, e liberarChatGPT-Usernão garante que ele apareça nela. - Se o site também roda anúncios no ChatGPT, falta considerar o
OAI-AdsBot, que só visita páginas enviadas como anúncio e, segundo a doc, nunca alimenta treino de modelo de fundação.
Passo 3: valide testando prompts reais no ChatGPT Search
Editar o arquivo não é o fim do trabalho: é preciso confirmar que a mudança realmente afetou o que aparece nas respostas do ChatGPT. A OpenAI avisa que, para o OAI-SearchBot, "pode levar cerca de 24 horas, a partir da atualização do robots.txt de um site, para que os sistemas se ajustem". Planeje o teste em duas rodadas, com esse intervalo no meio.
- Antes de editar o arquivo, escolha de três a cinco prompts que um usuário real faria e que, pelo assunto, deveriam puxar uma página do seu site como fonte. Rode cada um no ChatGPT com busca ativada e registre se o domínio aparece como citação ou link.
- Publique as regras novas do
robots.txte aguarde pelo menos 24 horas, o prazo que a própria OpenAI indica para o reindex de busca. - Rode os mesmos prompts de novo, nas mesmas condições, e compare: se você liberou o
OAI-SearchBot, espera-se que o domínio comece a aparecer (ou volte a aparecer) nas respostas; se bloqueou, espera-se o oposto. - Em paralelo, volte aos logs do servidor e confirme que o
GPTBotparou de bater no site (ou que oOAI-SearchBotpassou a aparecer, se foi essa a liberação feita). Rastreador que ignora umDisallowdepois de 24h é sinal de cache derobots.txtdesatualizado no seu CDN, não de má-fé do bot.
O teste em duas pontas (log do servidor + prompt no produto) é o que fecha o ciclo: o log mostra se o crawler obedeceu a regra, o prompt mostra se o efeito combinado (crawling permitido, indexação de busca, exibição na resposta) chegou até o usuário final.
Erros comuns que travam essa configuração
Alguns tropeços aparecem com frequência em configurações desse tipo, e vale checar cada um antes de considerar a tarefa concluída:
- Deixar um
User-agent: *comDisallow: /no topo do arquivo e assumir que ele não afeta os três bots da OpenAI: ele afeta, a menos que exista bloco específico por agente depois. - Confundir "bloqueei o GPTBot" com "bloqueei a aparição na busca": são sistemas diferentes, controlados por agentes diferentes.
- Validar a regra só olhando o
robots.txtrenderizado, sem checar o log do servidor depois de alguns dias, para confirmar que o bot de fato parou (ou começou) a acessar. - Ignorar o
ChatGPT-Userachando que ele sempre obedecerobots.txtdo mesmo jeito que um crawler automático; a própria doc avisa que, por ser ação de usuário, isso pode não valer.
O que ainda fica em aberto
A documentação da OpenAI é clara sobre o que cada bot faz daqui para frente, mas não diz o que acontece com conteúdo que já foi rastreado pelo GPTBot antes de um Disallow entrar em vigor. Bloquear hoje impede novo rastreamento; não há, na própria página, nenhuma garantia sobre dados já usados em treinos anteriores. Para quem mede GEO (visibilidade em busca generativa) como métrica de tráfego, o próximo passo lógico depois dessa configuração é repetir o teste do passo 3 periodicamente, porque a OpenAI pode atualizar como o OAI-SearchBot pondera o conteúdo sem necessariamente anunciar a mudança.
Fonte: OpenAI Platform Docs — Bots (GPTBot, OAI-SearchBot, ChatGPT-User)
Este artigo foi escrito por Sabrina Santos, colunista de SEO. Conteúdo produzido por agente de IA da redação iMasters, sob revisão editorial humana. Saiba como produzimos no expediente.
Google detalha como controlar a presença do site no AI Overviews e no AI Mode
Documentação atualizada do Google Search Central reúne, num só lugar, os controles técnicos que decidem se (e como) uma página entra nas respostas geradas por IA da busca.












