O bloqueio que apagou uma marca das respostas de IA
Bloquear o robô errado no robots.txt apaga sua marca das respostas do ChatGPT, do Perplexity e do Claude. O erro mais caro de 2026 é tratar "bot de IA" como uma categoria única: cada plataforma opera robôs de treino, de retrieval e user-triggered, e cada tipo exige uma decisão diferente. Bloquear retrieval é desaparecer do mapa; bloquear treino é uma escolha de direito autoral.
Na Brasil GEO, auditei um cliente de tecnologia B2B que havia sumido do ChatGPT em três meses. O conteúdo era bom, o SEO orgânico estava saudável, o site indexava no Google sem problema. Abri o robots.txt e encontrei o estrago: alguém da equipe de infra, querendo "proteger o conteúdo da IA", colou um bloco genérico que dava Disallow: / para tudo que contivesse "GPT", "Claude" e "AI" no nome. O site continuou sendo treinado por quem quis (porque os blocos estavam mal escritos), mas deixou de ser recuperado nas respostas em tempo real. A marca não foi protegida. Foi apagada.
Este guia é a matriz que eu uso na prática. Vou separar os três tipos de bot, apresentar a tabela central de decisão, mostrar blocos de robots.txt comentados que você pode adaptar e ser honesto sobre o papel limitado do llms.txt como suposto novo robots.txt para IA. Se você é desenvolvedor, SEO técnico ou responsável de infra, esta é a página para abrir no segundo monitor enquanto edita o arquivo.
A distinção que muda tudo: treino, retrieval e user-triggered
Os bots de IA se dividem em três categorias com consequências opostas para visibilidade: treino (coleta dados para o modelo aprender), retrieval (indexa conteúdo para a IA citar em tempo real) e user-triggered (busca uma URL específica quando o usuário pede). Liberar retrieval e user-triggered é o que coloca sua marca nas respostas. Bloquear treino é uma escolha de direito autoral, não de visibilidade.
Treino (training). O robô varre a web para alimentar o pré-treino e o fine-tuning do modelo. Exemplos: GPTBot (OpenAI), ClaudeBot (Anthropic), Google-Extended (Google, para Gemini e recursos de IA). O que você cede aqui é o uso do seu texto como dado de treino. Bloquear é uma decisão de direito autoral e de política de conteúdo — não tira você das respostas de hoje, porque a resposta citável vem do retrieval, não da memória do modelo.
Retrieval / busca (search index). O robô indexa seu conteúdo para alimentar a camada de recuperação em tempo real, aquela que monta a resposta e cita a fonte. Exemplos: OAI-SearchBot (busca do ChatGPT), Claude-SearchBot (busca do Claude), PerplexityBot (índice do Perplexity). Este é o robô que decide se sua marca aparece com link clicável na resposta. Bloquear o retrieval é o tiro no pé que apaga a marca das respostas — foi o que aconteceu no caso descrito na seção anterior.
User-triggered (acionado pelo usuário). O robô busca uma URL específica somente quando um usuário humano pede, em tempo real, dentro do chat. Exemplos: ChatGPT-User (OpenAI), Claude-User (Anthropic). Não é varredura em massa; é "abra esta página para mim agora". Bloquear quebra a experiência de quem pediu à IA para ler exatamente o seu site. Para entender por que o retrieval em tempo real é decisivo, veja como o RAG e o query fan-out montam a resposta que cita você.
A regra de ouro: retrieval e user-triggered você libera — são o que colocam você na resposta. Treino você decide com a área jurídica, sabendo que é uma escolha de princípio, não de visibilidade imediata. Quem inverte isso — libera treino e bloqueia retrieval — entrega o conteúdo de graça para o modelo e ainda some da resposta: o pior dos dois mundos.
A matriz central: bot por bot, o que fazer e por quê
A recomendação padrão de visibilidade é clara: retrieval e user-triggered recebem "Sim" em todos os casos; bots de treino (GPTBot, ClaudeBot, Google-Extended) são "decisão sua" de direito autoral. A tabela abaixo detalha cada user-agent, a empresa, o tipo e o motivo — use-a como referência ao editar o robots.txt.
| User-agent | Empresa | Tipo | Liberar? | Por quê |
|---|---|---|---|---|
| GPTBot | OpenAI | Treino | Decisão sua | Usa o conteúdo como dado de treino. Bloquear é direito autoral, não tira você das respostas atuais. |
| OAI-SearchBot | OpenAI | Retrieval | Sim | Indexa para a busca do ChatGPT. Bloquear = sumir das respostas com citação. |
| ChatGPT-User | OpenAI | User-triggered | Sim | Busca a página quando o usuário pede no chat. Bloquear quebra a leitura sob demanda. |
| ClaudeBot | Anthropic | Treino | Decisão sua | Coleta para treino do Claude. Mesma lógica do GPTBot: escolha de política de conteúdo. |
| Claude-SearchBot | Anthropic | Retrieval | Sim | Melhora os resultados de busca do Claude. Bloquear = invisível para o Claude com web. |
| Claude-User | Anthropic | User-triggered | Sim | Acessa a URL quando o usuário aciona o Claude. Bloquear frustra o pedido direto. |
| PerplexityBot | Perplexity | Retrieval | Sim | Indexa para citar no Perplexity. Atenção: há histórico de crawler furtivo (ver seção própria). |
| Google-Extended | Treino (Gemini/IA) | Decisão sua | Controla uso em treino/recursos de IA do Google. NÃO afeta indexação normal do Googlebot nem o AI Overviews via índice de busca. |
A assimetria é intencional: as quatro linhas de retrieval e user-triggered são "Sim" sem hesitar; as três de treino são "decisão sua". Essa é a matriz inteira em uma frase.
Armadilha do Google-Extended: ele governa apenas o uso do seu conteúdo para treinar a IA do Google e alimentar certos recursos generativos. Não bloqueia o Googlebot, não tira você da busca e não impede que o AI Mode e os AI Overviews do Google I/O 2026 usem o que já está no índice de busca padrão. Quem bloqueia o Google-Extended achando que "saiu da IA do Google" está enganado — a IA do Google se serve do índice de busca normal.
Blocos de robots.txt comentados que você pode adaptar
O robots.txt precisa de um grupo separado por user-agent: uma regra genérica com User-agent: * não governa robôs nomeados de forma confiável. Abaixo estão três configurações reais — da mais aberta à mais restritiva — com comentários que explicam cada escolha. Adapte ao seu contexto.
Configuração A — Visibilidade máxima (recomendada para a maioria). Libera tudo. Você aceita treino e quer estar em todas as respostas.
# Libera todos os bots de IA, inclusive treino
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: Claude-User
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /
Configuração B — Recusa o treino, mantém a visibilidade (a mais escolhida por publishers). Bloqueia os bots de treino e libera retrieval e user-triggered. Você sai do dataset de treino, mas continua citável em tempo real.
# Bloqueia TREINO
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
# Libera RETRIEVAL (te coloca nas respostas)
User-agent: OAI-SearchBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
# Libera USER-TRIGGERED (leitura sob demanda)
User-agent: ChatGPT-User
Allow: /
User-agent: Claude-User
Allow: /
Configuração C — O erro que eu vejo toda semana (NÃO faça isso). O bloco genérico que parece esperto e te apaga.
# ARMADILHA: parece "bloquear a IA", mas mata a visibilidade
# Disallow: / num grupo só NÃO casa com todos os user-agents distintos.
# Pior: se você bloquear os *SearchBot, some das respostas.
User-agent: *
Disallow: /
# Errado também: bloquear o retrieval achando que protege
User-agent: OAI-SearchBot
Disallow: /
User-agent: PerplexityBot
Disallow: /
Cada user-agent no próprio grupo. Um bloco User-agent: * com Disallow: / não governa de forma confiável os robôs nomeados — eles procuram o grupo específico deles e o encontrando, ignoram o wildcard.
Robots.txt é diretiva voluntária, não muralha. Robôs honestos obedecem; há quem não obedeça (ver seção do Perplexity adiante). Para conteúdo realmente sensível, use autenticação, não robots.txt.
Verifique por subdomínio. blog.seudominio.com.br e seudominio.com.br têm robots.txt separados. O guia técnico de llms.txt baseado em evidência trata da camada de sinalização que vem depois do robots.txt.
Quem realmente manda tráfego: os ratios crawl:referral da Cloudflare
Os bots de retrieval rastreiam muito mais do que devolvem em cliques — mas liberar o retrieval ainda compensa, porque o jogo do GEO não é clique: é citação. A Cloudflare publicou os ratios crawl:referral de 2025 que mostram isso com precisão.
Os dados de 2025 são expressivos. O GPTBot rastreava entre 1.091 e 1.700 páginas para cada visitante que o ChatGPT devolvia em cliques. O ClaudeBot chegava a um ratio de 38.000 para 1 — embora esse rastreamento tenha caído cerca de 87% em relação a janeiro de 2025. O PerplexityBot, mais econômico, ficava em torno de 194 para 1. Fonte: "From Googlebot to GPTBot: who's crawling your site in 2025", Cloudflare, 2025.
O ratio mede tráfego de clique, mas o valor do GEO está na citação dentro da resposta — menção com valor de presença e autoridade mesmo sem o clique. Estamos na economia zero-clique, que muda o desenho do funil: o usuário lê a resposta, vê sua marca citada como fonte e decide por você sem nunca passar pelo seu site. Bloquear o retrieval para "economizar crawl" economiza banda e perde a única vitrine que importa.
O ratio elevado do treino reforça o raciocínio inverso: ceder texto de treino devolve pouquíssimo tráfego — daí ser uma decisão de princípio legítima recusá-lo, sem que isso afete a visibilidade em tempo real.
O caso Perplexity: quando o robots.txt não basta
O robots.txt é uma diretiva de boa-fé, não uma muralha: a Cloudflare documentou que o Perplexity usou crawlers furtivos para contornar diretivas de no-crawl. Quando o PerplexityBot era bloqueado, apareciam requisições com user-agents disfarçados de navegador comum para buscar o mesmo conteúdo. Para conteúdo que não pode vazar, robots.txt não basta — use autenticação ou firewall com verificação de IP.
O relato completo está em "Perplexity is using stealth, undeclared crawlers", Cloudflare, 2025. O caso reforça dois pontos práticos.
Robots.txt governa apenas robôs honestos. GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot e os robôs do Google declaram quem são e respeitam o arquivo. Quem decidir não respeitar simplesmente não vai respeitar — sinalizar intenção é diferente de impor segurança.
Verifique o IP, não só o user-agent. Qualquer requisição pode declarar "OAI-SearchBot" no cabeçalho. OpenAI e Anthropic publicam as faixas de IP oficiais de seus robôs em arquivos JSON públicos; a verificação correta é casar o user-agent declarado com o IP de origem. A documentação dos agentes da OpenAI está em xseek.io — OpenAI crawlers and user agents e a da Anthropic em central de suporte do Claude sobre o crawler.
Para conteúdo público, liberar o retrieval e confiar na boa-fé compensa porque o ganho de visibilidade supera o risco. Para conteúdo que não pode vazar, o controle correto é autenticação, paywall ou firewall com verificação de IP — nunca só robots.txt.
O papel honesto do llms.txt: útil, mas não é salvação
O llms.txt — arquivo markdown na raiz do site com sumário curado e links prioritários — não é o que decide se sua marca é citada. A medição da OtterlyAI mostra que apenas ~0,1% do tráfego de bots passa pelo arquivo: ROI marginal. Faça o llms.txt por último, depois do robots.txt correto, do HTML semântico e das answer capsules — é um item barato de checklist, não prioridade.
O llms.txt surgiu em 2024 e ganhou tração em ferramentas de documentação como uma ideia de higiene e curadoria de conteúdo. O guia introdutório está em "llms.txt complete guide", Getpublii. É uma ideia válida — desde que não ocupe o lugar de prioridades mais altas.
Os robôs de retrieval que importam (OAI-SearchBot, Claude-SearchBot, PerplexityBot) leem o HTML visível das suas páginas, seguem o robots.txt e indexam o conteúdo real. Eles não dependem do llms.txt para encontrar seu site. Quem promete que "criar um llms.txt te coloca no ChatGPT" está ignorando como o retrieval funciona.
A ordem correta é: robots.txt certo, HTML semântico limpo, answer capsules de 120 a 150 caracteres bem escritas, schema de entidade consistente — e só então o llms.txt. Para a discussão completa de evidência versus marketing, veja o FAQ definitivo sobre llms.txt para SEO.
Liberar o bot é só metade: ele precisa conseguir ler
Liberar o bot no robots.txt é apenas metade da equação: a maioria dos bots de retrieval tem capacidade limitada de executar JavaScript pesado. Se o conteúdo principal só aparece depois que o framework client-side hidrata a página, o robô recebe uma página vazia. Você abriu a porta, mas a sala estava escura.
O texto que importa precisa estar no HTML inicial — renderização no servidor ou estática — não montado só no cliente. Use HTML semântico de verdade: article, section, h1 a h3 em hierarquia coerente, listas e tabelas reais. É nessa estrutura que o robô fatia o conteúdo em trechos recuperáveis. Esse é o mesmo motivo pelo qual conteúdo que ranqueia no Google às vezes some no ChatGPT: o Googlebot renderiza JavaScript com folga; vários bots de IA, não.
A camada seguinte vai além do robots.txt: protocolos como MCP, NLWeb, A2A e AP2 definem como um site se declara consumível por um agente autônomo. O passo a passo está no guia de B2A na prática: protocolos MCP, NLWeb, A2A e AP2. Por ora, fixe o básico: liberar o robô certo no robots.txt e garantir que o robô encontre HTML legível são as duas metades inseparáveis da mesma decisão.
Checklist de decisão: liberar ou bloquear, passo a passo
Dez passos na ordem certa para editar o robots.txt com segurança: libere primeiro o retrieval e o user-triggered (os que colocam a marca na resposta), decida o treino com o jurídico e garanta HTML legível para o robô que você acabou de liberar.
- Separe os robôs por tipo antes de tocar no arquivo. Liste cada user-agent que te interessa e classifique: treino, retrieval ou user-triggered. Sem essa classificação, qualquer regra é chute.
- Libere TODO retrieval. OAI-SearchBot, Claude-SearchBot e PerplexityBot recebem
Allow: /. São eles que colocam sua marca na resposta. Esta é a decisão de visibilidade. - Libere TODO user-triggered. ChatGPT-User e Claude-User recebem
Allow: /. Bloquear quebra a leitura sob demanda de quem pediu o seu site. - Decida o treino com o jurídico. GPTBot, ClaudeBot e Google-Extended são uma escolha de direito autoral. Recusar é legítimo e não te tira das respostas de hoje. Liberar é o padrão de visibilidade máxima.
- Cada robô no próprio grupo. Nada de
User-agent: *comDisallow: /esperando governar robôs nomeados. Escreva um grupo por user-agent. - Verifique por subdomínio. Cada host tem o seu robots.txt. Blog, ajuda e loja precisam de revisão própria.
- Conteúdo sensível não fica em robots.txt. Use autenticação ou firewall com verificação de IP. Robots.txt sinaliza intenção, não impõe segurança.
- Garanta HTML legível. O conteúdo principal deve estar no HTML servido, não só no JavaScript do cliente. Liberar o robô sem renderizar para ele é abrir porta para sala vazia.
- llms.txt por último. Faça depois do robots.txt, do HTML semântico e das answer capsules. É item barato de checklist, não prioridade.
- Meça depois. Acompanhe se a marca aparece nas respostas após a mudança. Para o método, veja como medir o Share of Voice em IA.
A frase que eu deixo com todo time de infra: liberar o robô errado custa banda; bloquear o robô errado custa a marca. Quando a dúvida for entre os dois, lembre que retrieval e user-triggered são quase sempre "sim", e o treino é a única casa onde a recusa tem sentido estratégico. Decida com a matriz na mão, não no susto.