Blog

Blog

Como tornar seu site rastreável, legível e citável por IAs

A maior parte das conversas sobre otimização para IA foca no conteúdo, mas existe uma camada embaixo que decide se ChatGPT, Perplexity e as buscas com IA conseguem encontrar e citar seu site. Se as suas páginas dependem de JavaScript para renderizar, se o schema está ausente, incompleto ou incorreto, ou se ninguém auditou o acesso dos crawlers de IA, o seu site pode estar invisível para esses sistemas por melhor que seja o texto. Este guia mostra como diagnosticar, corrigir e monitorar essa camada técnica.

Já tratamos sobre conteúdo citável por IAs e sobre como deixar um site operável por agentes de IA. Mas antes de qualquer uma dessas duas coisas, a IA precisa conseguir chegar até a página, baixá-la e ler o texto.

painel do semrush mostrando a disponibilidade para pesquisas por bots de ias em um site
Painel do Semrush indicando que os principais crawlers de IA (ChatGPT-User, OAI-SearchBot, Googlebot, Google-Extended) têm acesso liberado ao site.

Por que um site com ótimo conteúdo pode ser invisível para as IAs

Um site pode ter conteúdo excelente e ainda assim não aparecer em respostas de IA porque a citação depende de um fluxo anterior à qualidade do texto: rastrear, baixar, ler o conteúdo e só então considerar citá-lo. Se qualquer dessas etapa falha, o conteúdo não entra na resposta, independentemente de quão bom ele seja. Qualidade editorial é condição necessária, mas não é suficiente.

Os crawlers de IA já são uma presença relevante na web e merecem uma auditoria dedicada. Segundo dados de rede da Vercel (plataforma em nuvem focada no desenvolvimento e hospedagem de aplicações web) e da agência de SEO MERJ, em um único mês o GPTBot da OpenAI gerou 569 milhões de requisições e o crawler da Anthropic, 370 milhões, um volume combinado equivalente a cerca de 20% das 4,5 bilhões de requisições do Googlebot no mesmo período. São bilhões de acessos mensais de máquinas que decidem se o seu site entra ou não na conversa, e a maioria delas se comporta de forma diferente do Googlebot que você conhece.

O ponto cego é que esses acessos não avisam nada. Não existe um painel oficial que diga "sua página está bloqueada para o ChatGPT" ou "o texto principal não foi lido". O site simplesmente deixa de ser citado, e a causa quase sempre está em um destes quatro pontos: renderização por JavaScript, schema ausente, bloqueio de crawler ou falta de monitoramento.

Gráfico de volume de requisições mensais por crawler mostrando 4,5bi requisições do Googlebot
Volume de requisições mensais por crawler

As IAs não executam JavaScript, e o Google é a exceção

A maioria dos motores de IA não executa JavaScript, eles baixam o HTML bruto e leem o texto que já está ali, sem rodar scripts. Um estudo de rede da Vercel e da MERJ, de dezembro de 2024, concluiu que nenhum dos principais crawlers de IA renderiza JavaScript, incluindo os da OpenAI (GPTBot, OAI-SearchBot, ChatGPT-User), o ClaudeBot da Anthropic, o PerplexityBot e o Bytespider. Eles até baixam arquivos .js em parte das requisições (11,5% no caso do ChatGPT, 23,84% no do Claude), mas não os executam.

A consequência é que conteúdo renderizado no cliente fica invisível para esses crawlers. Um site em React, Vue ou Angular que monta o texto no navegador depois da carga inicial entrega para a IA apenas o "esqueleto" vazio do HTML. Vale a mesma lógica para sites WordPress quando um construtor de páginas injeta o conteúdo principal via JavaScript em vez de já entregá-lo no HTML inicial. O que não estiver na primeira resposta do servidor, na prática, não existe para a maioria das IAs.

O Google é a exceção que muda o raciocínio. As superfícies de IA do Google, como AI Overviews e AI Mode, são alimentadas pelo índice do próprio Googlebot, que renderiza JavaScript com um Chromium headless em um processo de duas etapas descrito na documentação de SEO para JavaScript do Google. A Vercel confirma que o Gemini herda essa infraestrutura e renderiza a página por completo. Ou seja, uma página renderizada no cliente pode aparecer no Google e no AI Overviews e, ao mesmo tempo, ficar completamente invisível para ChatGPT, Claude e Perplexity.

Esse é o paradoxo que precisa entrar no diagnóstico: dá para estar em primeiro lugar no Google e ser um vazio para os demais motores de IA. Tratar "IA" como um bloco único leva a decisões erradas. A tabela abaixo resume quem renderiza o quê.

Motor / crawlerRenderiza JavaScript?Implicação para o seu site
Googlebot (Google, AI Overviews, AI Mode, Gemini)SimConteúdo no cliente pode ser lido
GPTBot, OAI-SearchBot, ChatGPT-User (OpenAI)NãoSó lê o HTML inicial
ClaudeBot (Anthropic)NãoSó lê o HTML inicial
PerplexityBot (Perplexity)NãoSó lê o HTML inicial
AppleBotSimRenderiza via navegador
CCBot (Common Crawl)NãoSó lê o HTML inicial

Fonte: Vercel e MERJ, The Rise of the AI Crawler (dez. 2024).

Como diagnosticar e corrigir o problema de renderização

O diagnóstico é binário e leva poucos minutos: o texto que você quer citado está no HTML bruto ou não está. Existem três testes complementares para confirmar, e todos partem do mesmo princípio de olhar a página como o crawler a vê, antes de qualquer JavaScript rodar.

Os três testes de legibilidade

Use os três em conjunto, começando pelas páginas de maior valor (produto, preço, comparativo, FAQ e documentação), que são justamente as mais propensas a carregar conteúdo dinâmico. O primeiro teste é abrir a página e usar "Ver código-fonte" (Ctrl+U), não o inspetor de elementos, e buscar com Ctrl+F por uma frase do seu conteúdo principal. Se a frase aparece no código-fonte, o crawler consegue ler; se só aparece no inspetor, é conteúdo renderizado no cliente e invisível. O segundo teste é desativar o JavaScript no navegador e recarregar a página: o que sumir é o que a IA não vê. O terceiro, mais técnico, é buscar a página via linha de comando com curl e procurar pelo texto no retorno, reproduzindo exatamente o que o crawler recebe.

Um detalhe importante evita falso positivo é que nem todo conteúdo precisa ser texto visível. Dados embutidos no HTML inicial como JSON, Server Components entregues no servidor ou markup de dados estruturados também estão na resposta bruta e são legíveis. O que quebra é especificamente o conteúdo que o navegador monta no cliente depois da carga.

A correção: renderizar no servidor

A solução é entregar o conteúdo já pronto no HTML da primeira resposta, sem depender da execução de JavaScript. Na prática, isso significa adotar renderização no servidor (SSR), geração de site estático (SSG) ou renderização incremental (ISR), estratégias que a própria Vercel recomenda para manter o conteúdo acessível a todos os crawlers. A recomendação da MERJ é objetiva: informação crítica precisa ser renderizada no servidor. A renderização no cliente segue válida para elementos acessórios, como contadores, widgets de chat e feeds sociais, que não precisam ser lidos pela IA.

Há um segundo problema de rastreabilidade que a mesma pesquisa expôs e que costuma passar batido: a ineficiência de URL. O ChatGPT gastou 34,82% das suas requisições em páginas de erro 404 e o Claude, 34,16%, contra apenas 8,22% do Googlebot. Isso significa que esses crawlers desperdiçam boa parte do esforço em endereços quebrados. Manter redirecionamentos corretos, sitemap atualizado e padrões de URL consistentes deixou de ser higiene e virou condição para que o pouco tempo que a IA dedica ao seu site seja gasto nas páginas certas. Como esses crawlers impõem timeouts curtos, velocidade também conta, e o trabalho de Core Web Vitals rende aqui em dobro.

Schema markup: como as IAs extraem e confiam no seu conteúdo

O schema markup ajuda as IAs a extrair fatos e a confiar neles porque declara, em formato de máquina, o que a página é e quem a assina. Um estudo de Generative Engine Optimization apresentado no KDD 2024 mostrou que adicionar citações, estatísticas e fontes ao conteúdo pode elevar a visibilidade em motores generativos em até 40%, e o JSON-LD é a camada que formaliza essas entidades e a autoria para o modelo. O tratamento completo, com o que o Google recomenda e o que é mito, está no artigo sobre schema e entidades para IA.

Mas o que vale para o conteúdo em HTML também é válido para os dados estruturados. O JSON-LD precisa estar no HTML inicial, não injetado por JavaScript. Se o mesmo problema de renderização da seção anterior afeta o seu schema, você não só perde o texto como perde também os dados estruturados que ajudariam a IA a interpretar o que sobrou. Schema injetado no cliente é schema invisível para ChatGPT, Claude e Perplexity, pela mesma razão técnica. Confirme com o teste de "Ver código-fonte" que o bloco <script type="application/ld+json"> aparece no código bruto da página.

Os tipos de schema mais úteis para citação são Article ou BlogPosting para o conteúdo, FAQPage para blocos de perguntas, e Organization mais Person para declarar identidade e autoria. Essas declarações reduzem a chance de a IA errar fatos sobre a sua marca, porque dão ao modelo uma fonte explícita em vez de deixá-lo inferir do texto corrido.

robots.txt e o bloqueio invisível no CDN

O robots.txt decide quais crawlers de IA podem acessar o seu site, e a decisão inteligente separa treino de busca. Bloquear os crawlers de treinamento protege a sua propriedade intelectual de alimentar modelos, enquanto liberar os crawlers de busca mantém o site elegível para citação. A boa notícia, confirmada pela Vercel, é que o robots.txt é respeitado por todos os crawlers de IA medidos, então ele é a ferramenta certa para esse controle.

Separação entre treino e busca

A documentação da OpenAI deixa esse desenho explícito, e cada configuração é independente. O GPTBot coleta conteúdo que pode treinar os modelos, e bloqueá-lo sinaliza que o seu conteúdo não deve ser usado em treinamento. Já o OAI-SearchBot é o que faz o site aparecer nas respostas de busca do ChatGPT, e a OpenAI afirma que sites que optam por sair do OAI-SearchBot não serão exibidos nas respostas de busca do ChatGPT. Ou seja, dá para bloquear o GPTBot e proteger a sua propriedade intelectual sem perder visibilidade, desde que o OAI-SearchBot siga liberado. Anthropic e Perplexity publicam seus próprios user-agents com distinção parecida entre treinamento e recuperação, e a documentação de cada empresa é a fonte a consultar antes de fechar as diretivas.

Um exemplo de robots.txt que protege o treinamento e preserva a citação em busca ficaria assim:

# Bloqueia treinamento
User-agent: GPTBot
Disallow: /

# Libera a busca do ChatGPT
User-agent: OAI-SearchBot
Allow: /

Mudanças no robots.txt levam cerca de 24 horas para os sistemas de busca da OpenAI se ajustarem, então nada é instantâneo. E o ChatGPT-User, acionado quando um usuário pede que o ChatGPT visite uma URL, pode não seguir o robots.txt da mesma forma, por ser uma ação iniciada por pessoa. A sintaxe completa das diretivas está no artigo sobre robots.txt. Vale lembrar que um bloqueio amplo por precaução, do tipo Disallow: / para User-agent: *, derruba junto o Googlebot, então a postura recomendada é ser seletivamente permissiva, não um muro.

O bloqueio no CDN

O robots.txt pode estar impecável e o seu site continuar invisível para a IA por causa de uma camada acima: o CDN ou o firewall de aplicação. Regras de proteção contra bots, limites de requisição e desafios de segurança podem devolver códigos 403 ou 429 para os crawlers de IA e descartá-los como tráfego suspeito, mesmo com o robots.txt liberando o acesso. A evidência de que isso é fácil de acontecer está no próprio mercado. A Vercel oferece uma regra de firewall de um clique para bloquear crawlers de IA, e provedores como a Cloudflare trazem controles equivalentes que às vezes vêm ativos por padrão. O bloqueio existe e ninguém percebe porque ele não aparece no robots.txt.

A verificação é olhar os logs do servidor à procura de respostas 403 e 429 para os user-agents de IA, e revisar no painel do seu CDN se algum controle de "bloquear bots de IA" está ligado sem você ter decidido isso. Essa é uma checagem de alta prioridade mesmo quando o robots.txt está correto, porque as duas camadas são independentes.

Não existe Search Console para IA

Não existe um Search Console para nonitorar a indexação nas IAs, então a única forma confiável de confirmar que os crawlers estão acessando e lendo o seu site é a análise dos logs do servidor. Diferente do Google, OpenAI, Anthropic e Perplexity não oferecem um painel que mostre o que foi rastreado. O sinal está no log, filtrando pelos user-agents GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot e PerplexityBot e observando o que cada um baixou, com que frequência e com quantos erros.

Um agravante técnico torna o monitoramento por analytics inútil aqui. Como esses crawlers não executam JavaScript, eles não aparecem no GA4, que depende de script para registrar a visita. O seu Google Search Console enxerga o Googlebot, e o GA4 enxerga pessoas, mas nenhum dos dois conta o GPTBot ou o PerplexityBot. O visitante que mais decide a sua visibilidade em IA é o que as ferramentas atuais não conseguem detectar.

O maior risco que um monitoramento atento previne é a regressão silenciosa. Uma alteração que insira um componente renderizado no cliente pode, da noite para o dia, tornar as parte do seu conteúdo ilegível para a IA, e não haverá alerta nenhum. O acompanhamento precisa ser periódico e cobrir as três frentes: o log do servidor para confirmar acesso, o teste de HTML bruto para confirmar legibilidade após cada mudança relevante, e uma verificação técnica da página contra os critérios de citação. Para essa última frente, a ferramenta GEO Check audita uma URL contra os critérios de GEO e AEO dos principais motores e aponta onde a página falha, do acesso à renderização.

Perguntas frequentes

As IAs conseguem ler sites feitos em React, Vue ou Angular?

Só se o conteúdo for renderizado no servidor, sim. Frameworks de JavaScript funcionam bem para a IA quando entregam o HTML pronto na primeira resposta, via SSR, SSG ou ISR. Se o conteúdo é montado no cliente depois da carga, ChatGPT, Claude e Perplexity recebem um esqueleto vazio, porque não executam JavaScript.

Meu site aparece no Google, então por que não aparece no ChatGPT?

Porque o Google renderiza JavaScript e o ChatGPT não. O Googlebot roda os scripts e indexa a página completa, alimentando inclusive o AI Overviews. Os crawlers da OpenAI leem apenas o HTML bruto. Uma página renderizada no cliente pode ranquear no Google e, ao mesmo tempo, ser um vazio para o ChatGPT.

Bloquear o GPTBot tira meu site das respostas do ChatGPT?

Não. Segundo a documentação da OpenAI, o GPTBot controla apenas o uso do conteúdo em treinamento. A presença nas respostas de busca do ChatGPT depende do OAI-SearchBot. Dá para bloquear o GPTBot, protegendo a propriedade intelectual, e manter o OAI-SearchBot liberado para seguir citável.

Como sei se o Cloudflare ou o meu CDN está bloqueando as IAs?

Verifique os logs do servidor à procura de respostas 403 e 429 para os user-agents de IA, e revise no painel do CDN se há alguma regra de bloqueio de bots de IA ativa. Esse bloqueio é independente do robots.txt, então ele pode estar barrando os crawlers mesmo com o arquivo liberando o acesso.

Preciso de um arquivo llms.txt para ser lido pelas IAs?

Não. A legibilidade depende de renderização no servidor e de acesso liberado no robots.txt e no CDN, não do llms.txt. A adoção desse arquivo pelos principais motores ainda é parcial. O tema está detalhado no artigo sobre por que você não precisa de llms.txt.

Renderizar no servidor resolve de vez o problema?

Resolve a parte de legibilidade, que é a mais crítica e a que dá resultado imediato, mas não sozinha. Ainda é preciso liberar o acesso no robots.txt e no CDN, garantir schema no HTML inicial e monitorar para que uma mudança futura não quebre o que foi corrigido.

Conclusão

A visibilidade técnica em IA é simples: ou o conteúdo está na resposta bruta do servidor e acessível aos crawlers, ou ele não existe para a maioria dos motores. Diferente da otimização de conteúdo, que compõe resultado ao longo do tempo, consertar renderização e acesso produz efeito imediato, porque no dia em que a página passa a entregar HTML completo e liberado ela se torna elegível para citação. O caminho é auditar a renderização com o teste de HTML bruto, corrigir com SSR ou geração estática, garantir schema legível, configurar o robots.txt com diferenciação entre treino e busca, checar o bloqueio no CDN e monitorar pelos logs.

O passo prático é rodar o GEO Check na sua página mais estratégica para ver onde ela falha nessa camada, e, com a base técnica resolvida, avançar para o que torna o conteúdo citável por IAs.

Continue lendo

SEO Técnico Devo bloquear rastreadores de IA no meu site? 17 min de leitura SEO Técnico Por que você provavelmente não precisa de um llms.txt 11 min de leitura