Módulo 4: Controle de acesso de bots de IA: robots.txt, Content Signals e Web Bot Auth | Curso O4AI

Módulo 4 · Curso O4AI

Controle de acesso: regras de IA, Content Signals e Web Bot Auth

Ser encontrado não basta: o site precisa dizer o que cada tipo de bot pode fazer com o conteúdo e, cada vez mais, saber com certeza quem está do outro lado. Este módulo cobre as três camadas de controle: regras por user-agent, preferências de uso com Content Signals e identidade criptográfica com Web Bot Auth.

GPTBot ClaudeBot Content-Signal aipref Web Bot Auth RFC 9421

Aula 1

Os crawlers de IA e suas finalidades

Cada grande empresa de IA publica a lista dos seus robôs e a finalidade de cada um. Conhecer essa lista é o pré-requisito para escrever regras que fazem sentido. A tabela abaixo reúne os principais, agrupados pela finalidade que você estudou no módulo 1.

EmpresaTreinoBusca / indexaçãoAção a pedido do usuário
OpenAIGPTBotOAI-SearchBotChatGPT-User
AnthropicClaudeBotClaude-SearchBotClaude-User
Perplexity—PerplexityBotPerplexity-User
GoogleGoogle-Extended (token de controle, não um robô separado)GooglebotConsulte a lista oficial de fetchers do Google
AppleApplebot-Extended (token de controle)Applebot—
Common CrawlCCBot——
MetaMeta-ExternalAgent—Meta-ExternalFetcher

Dois detalhes importam. Primeiro, Google-Extended e Applebot-Extended não fazem requisições próprias: são nomes que você usa no robots.txt para dizer se o conteúdo já coletado pelo robô de busca pode ser usado em IA. Bloquear o Googlebot para evitar IA tiraria o site da busca. Segundo, os robôs "a pedido do usuário" muitas vezes não seguem o robots.txt da mesma forma, porque a requisição é equiparada à de um navegador; leia a política de cada empresa.

Mantenha a lista viva

Os nomes mudam e surgem novos todo trimestre. Use as páginas oficiais de cada empresa e, se usar Cloudflare, a lista de bots verificados do AI Crawl Control, em vez de copiar listas de blogs.

Fontes desta aula: OpenAI: crawlers · Anthropic: como bloquear os crawlers · Google: common crawlers

Aula 2

Regras por user-agent no robots.txt

A checagem "Regras de Crawler de IA" verifica se o robots.txt tem grupos específicos para robôs de IA. No relatório de exemplo deste curso, o site passou com ressalva: o scanner verificou 20 user-agents de IA, não encontrou nenhum grupo específico e concluiu que "regras genéricas se aplicam a todos". Isso não é erro, mas mostra que o site nunca tomou uma decisão explícita.

robots.txt com política por finalidade

# Busca e citação: liberado
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /

# Ações a pedido do usuário: liberado, exceto áreas privadas
User-agent: ChatGPT-User
User-agent: Claude-User
User-agent: Perplexity-User
Allow: /
Disallow: /minha-conta/

# Treino: bloqueado
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: Meta-ExternalAgent
Disallow: /

# Todos os outros
User-agent: *
Allow: /
Disallow: /admin/

Sitemap: https://exemplo.com.br/sitemap.xml

Note que vários User-agent seguidos formam um único grupo, como permite a RFC 9309. Lembre também que um robô que casa com um grupo específico ignora o grupo *. Se o grupo de ChatGPT-User não repetir o Disallow: /admin/, esse robô fica liberado para a área administrativa.

Qual política escolher

Perfil do siteTreinoBusca de IAAgentes do usuário
Loja, SaaS, serviço localIndiferente ou liberadoLiberadoLiberado
Portal de notícias com assinaturaBloqueado ou licenciadoLiberado com cuidadoLiberado com paywall
Documentação técnicaLiberado (ajuda o modelo a conhecer o produto)LiberadoLiberado
Conteúdo autoral premiumBloqueadoAvaliarAvaliar

Fontes desta aula: RFC 9309 · Cloudflare AI Crawl Control

Aula 3

Content Signals: search, ai-input e ai-train

O robots.txt diz se um robô pode buscar uma página, mas não diz o que ele pode fazer com o conteúdo depois. O mesmo crawler pode usar uma página para indexar, para responder a uma pergunta e para treinar. Content Signals, proposta pela Cloudflare em setembro de 2025 e publicada em contentsignals.org, acrescenta ao robots.txt uma linha que declara essas preferências separadamente.

Content Signals no robots.txt

User-agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=no
Allow: /
SinalSignificadoExemplo de uso
searchMontar um índice de busca e mostrar links e trechosResultados de busca tradicionais
ai-inputUsar o conteúdo como entrada para gerar uma resposta (RAG, grounding)Resposta de assistente que cita a página
ai-trainUsar o conteúdo para treinar ou ajustar modelosColeta para pré-treino

Os valores são yes ou no. Um sinal omitido significa que você não expressou preferência. A Cloudflare publica a linha por padrão no robots.txt gerenciado de muitos clientes, o que explica parte dos 4% de adoção medidos em abril de 2026. No relatório de exemplo, a falha "No Content-Signal directives found" é exatamente o próximo passo sugerido para subir de nível.

O que é e o que não é

Content Signals é uma declaração de preferência, sem mecanismo técnico de imposição. O efeito vem de dois lados: empresas que se comprometem a respeitar os sinais e o valor jurídico de uma reserva expressa, por exemplo na exceção de mineração de texto e dados da diretiva europeia de direitos autorais. Não é aconselhamento jurídico, mas é uma forma clara de registrar a sua posição.

O cenário de padronização

Content Signals não é o único esforço. O grupo de trabalho aipref da IETF desenvolve um vocabulário de preferências de uso por IA e uma forma de anexá-lo ao robots.txt e a cabeçalhos HTTP, com nomes de categoria diferentes. A IAB Tech Lab tem propostas próprias para editores. Na prática, publicar Content Signals hoje e acompanhar o aipref é a combinação mais segura: a linha é pequena e fácil de trocar.

Fontes desta aula: contentsignals.org · IETF aipref: documentos

Aula 4

Web Bot Auth: bots que provam quem são

Todas as regras anteriores dependem de o robô dizer a verdade no User-Agent. Qualquer script pode se apresentar como Claude-User. As empresas publicam faixas de IP para verificação, mas listas de IP são frágeis: mudam, são compartilhadas por provedores de nuvem e não funcionam para agentes que rodam em infraestrutura de terceiros.

Web Bot Auth resolve isso com criptografia. O bot assina cada requisição com uma chave privada, usando HTTP Message Signatures (RFC 9421), e publica a chave pública num endereço conhecido do próprio domínio. O site verifica a assinatura e passa a saber, com certeza, que a requisição veio daquele operador. A proposta começou com rascunhos de Thibault Meunier (Cloudflare) e Sandor Major (Google) e, em 2026, ganhou um grupo de trabalho próprio na IETF, o webbotauth.

Como é uma requisição assinada

Requisição de um bot com Web Bot Auth (valores ilustrativos)

GET /produtos/plano-pro HTTP/1.1
Host: exemplo.com.br
Signature-Agent: sig1="https://agente.exemplo-ia.com"
Signature-Input: sig1=("@authority" "signature-agent";key="sig1");\
                 created=1762830000;expires=1762833600;\
                 keyid="poqkLGiymh_W0uP6PZFw-dvez3QJT5SolqXBCW38r0U";\
                 tag="web-bot-auth"
Signature: sig1=:jdq0SqOwHdyHr9+r5jw3iYZH6aNGKijYp/EstF4RQTQ=:
  • Signature-Agent: cabeçalho de dicionário que diz onde está o diretório de chaves do bot (por padrão, um domínio HTTPS).
  • Signature-Input: quais partes da requisição foram assinadas (no mínimo @authority ou @target-uri), quando a assinatura foi criada e quando expira, o keyid (impressão digital da chave) e a etiqueta tag="web-bot-auth".
  • Signature: a assinatura em si.

O diretório de chaves

O operador do bot publica as chaves públicas em /.well-known/http-message-signatures-directory, com o tipo application/http-message-signatures-directory+json, no formato JWKS. As chaves Ed25519 são as mais comuns.

/.well-known/http-message-signatures-directory

{
  "keys": [{
    "kty": "OKP",
    "crv": "Ed25519",
    "kid": "NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw",
    "x": "JrQLj5P_89iXES9-vFgrIy29clF9CC_oPPsw3c5D0bs",
    "use": "sig"
  }]
}

O que isso significa para o seu site

Na checagem de prontidão, o scanner procura esse diretório no seu domínio e trata a ausência como informativa: o item só é relevante se o seu site também opera bots ou agentes que fazem requisições a terceiros. Para a maioria dos sites, o lado que importa é o de verificar assinaturas recebidas. Quem usa Cloudflare já tem isso na lista de bots verificados; em servidor próprio, há bibliotecas de verificação de HTTP Message Signatures em várias linguagens.

Com bots verificados, as regras deixam de depender da palavra do visitante. Você pode, por exemplo, liberar uma API de preços apenas para agentes assinados, aplicar limites de taxa diferentes ou cobrar o acesso com os protocolos do módulo 7.

Fontes desta aula: IETF webbotauth · Rascunho: HTTP Message Signatures Directory · RFC 9421: HTTP Message Signatures · Cloudflare: Web Bot Auth

Erros comuns

  • Bloquear o Googlebot para evitar IA. Use Google-Extended, que controla o uso em IA sem afetar a busca.
  • Grupos específicos sem as regras gerais. Um robô que casa com um grupo próprio não herda o *.
  • Content-Signal fora de um grupo. A linha deve ficar dentro de um grupo User-agent.
  • Confiar só no user-agent para liberar recursos sensíveis. Exija assinatura verificada ou autenticação.
  • Bloquear agentes de usuários em lojas. É o mesmo que fechar a porta para um cliente que mandou alguém comprar por ele.

Aplicação prática: escreva sua política de IA

  1. Decida, por escrito, a posição do negócio para treino, busca de IA e agentes de usuários.
  2. Traduza a decisão em grupos no robots.txt, repetindo as restrições gerais em cada grupo.
  3. Adicione Content-Signal ao grupo * com os três sinais explícitos.
  4. Nos logs do servidor ou do CDN, liste os user-agents de IA que visitaram o site no último mês e quantos deles chegaram com assinatura Web Bot Auth.

Siglas e termos deste módulo

RAG:
Retrieval-Augmented Generation, geração de respostas a partir de documentos buscados.
aipref:
Grupo de trabalho da IETF sobre preferências de uso de conteúdo por IA.
JWKS:
JSON Web Key Set, conjunto de chaves públicas em JSON (RFC 7517).
Ed25519:
Algoritmo de assinatura digital de curva elíptica, rápido e com chaves curtas.
TDM:
Text and Data Mining, mineração de texto e dados.

Perguntas frequentes

Bloquear o GPTBot tira meu site do ChatGPT?
Não necessariamente. O GPTBot é o robô de treino. A busca do ChatGPT usa o OAI-SearchBot e as ações a pedido do usuário usam o ChatGPT-User. Você pode bloquear o treino e continuar aparecendo nas respostas.
O que é Content-Signal no robots.txt?
É uma linha proposta pela Cloudflare em contentsignals.org que declara se o conteúdo pode ser usado para busca (search), como entrada de respostas de IA (ai-input) e para treino (ai-train), com valores yes ou no.
Content Signals é obrigatório para as empresas de IA?
Não há imposição técnica. É uma declaração de preferência que empresas podem se comprometer a respeitar e que registra de forma clara a reserva de direitos do site.
Preciso implementar Web Bot Auth?
Publicar o diretório de chaves só é necessário se o seu site opera bots que acessam outros sites. O que interessa à maioria é verificar as assinaturas recebidas, o que CDNs como a Cloudflare já fazem.
Qual a diferença entre Web Bot Auth e listas de IP?
Listas de IP mudam e são compartilhadas por provedores de nuvem. A assinatura criptográfica prova quem enviou a requisição, independentemente da rede, e pode ser verificada em cada pedido.