Crawlers e bots de IA: quem faz crawl, render e indexação
TL;DR
- Crawl, render e index são três passos diferentes: ir buscar o HTML, executar o JavaScript e guardar ou usar o conteúdo. Confundi-los leva a decisões erradas.
- Praticamente nenhum crawler de IA executa JavaScript (GPTBot, ClaudeBot, PerplexityBot, Bytespider, Common Crawl). Exceções: o Googlebot (e o Gemini, via índice da Google) e o Applebot renderizam.
- Os bots dividem-se por finalidade: índice de pesquisa, treino de modelos ou fetch em tempo real a pedido do utilizador. Bloquear cada um tem consequências diferentes.
- Atenção aos falsos crawlers: o Google-Extended e o Applebot-Extended não rastreiam nada - são tokens de opt-out do treino de IA.
Crawl, render, index
- 1Crawl: ir buscar o HTML
- 2Render: executar o JavaScript
- 3Index/usar: pesquisa, treino ou resposta
- 4Quase nenhum bot de IA renderiza
Se depende de JS, a IA não vê
"Bloqueia os bots de IA" é o conselho que mais ouço, dado sem distinguir o que cada bot faz. Mas crawl, render e indexação são três coisas diferentes, e cada bot combina-as à sua maneira. Sem esse mapa, decides às cegas: bloqueias quem te traz citações, deixas entrar quem só te copia, e assumes que a IA vê o teu site como o Google vê. Não vê. Esta é a matriz do que cada crawler e bot de IA faz mesmo.
Crawl, render e indexação: três coisas que não são a mesma
A confusão começa aqui, e contamina tudo o resto:
- Crawl (rastreio): o bot vai buscar o ficheiro HTML do URL. É só o download do código, não é ver a página como tu a vês.
- Render (renderização): executar o JavaScript para construir a página final. É o passo que transforma uma shell vazia em conteúdo visível. Exige um motor de browser e é caro em recursos.
- Index ou usar: guardar o conteúdo para alguma coisa - um índice de pesquisa, o treino de um modelo, ou uma resposta gerada em tempo real.
A armadilha: um bot pode fazer crawl sem renderizar. Se o teu conteúdo só aparece depois de o JavaScript correr (client-side rendering), um bot que não renderiza vê uma página praticamente vazia, mesmo tendo feito o crawl com sucesso e recebido um 200. É exatamente o que acontece com quase todos os bots de IA.
Os critérios desta comparação
Para cada bot olho para quatro coisas, com base na documentação oficial de cada fornecedor e em dados de logs de terceiros:
- Renderiza JavaScript? Executa o JS ou só lê o HTML em bruto.
- Para que serve: índice de pesquisa, treino de modelos, ou fetch em tempo real a pedido do utilizador.
- Respeita o robots.txt? E com que ressalvas.
- Operador: quem está por trás, porque bloquear um pode afetar vários produtos.
Uma nota de honestidade à cabeça: quase nenhum fornecedor confirma publicamente se renderiza. O "não renderiza" vem de medições em logs reais (sobretudo o estudo da Vercel/Merj), não de uma declaração oficial. Onde é inferido, digo-o.
A matriz: o que cada bot faz
Os bots que mais interessam hoje, agrupados por tipo. "Render JS" = executa JavaScript; "Finalidade" = o uso principal.
| Bot | Operador | Render JS | Finalidade | robots.txt |
|---|---|---|---|---|
| Googlebot | Sim | Índice de pesquisa (alimenta AI Overviews e Gemini) | Respeita | |
| Bingbot | Microsoft | Sim (limitado) | Índice de pesquisa (alimenta Copilot e ChatGPT) | Respeita |
| Applebot | Apple | Sim | Pesquisa (Siri, Spotlight) e treino (Apple Intelligence) | Respeita |
| GPTBot | OpenAI | Não | Treino dos modelos | Respeita |
| OAI-SearchBot | OpenAI | Não | Índice do ChatGPT (pesquisa) | Respeita |
| ChatGPT-User | OpenAI | Não | Fetch em tempo real (a pedido) | Ação do utilizador |
| ClaudeBot | Anthropic | Não | Treino dos modelos | Respeita |
| Claude-User | Anthropic | Não | Fetch em tempo real (a pedido) | Ação do utilizador |
| PerplexityBot | Perplexity | Não | Índice do Perplexity (não treino) | Respeita |
| Perplexity-User | Perplexity | Não | Fetch em tempo real (a pedido) | Ação do utilizador |
| Meta-ExternalAgent | Meta | Não | Treino da Meta AI | Respeita |
| Amazonbot | Amazon | Não | Alexa e serviços de IA | Respeita |
| Bytespider | ByteDance | Não | Treino | Historicamente ignora |
| CCBot | Common Crawl | Não | Dataset aberto que alimenta muitos LLMs | Respeita |
Repara no padrão: a coluna "Render JS" é "Não" em quase tudo o que está abaixo dos motores de pesquisa. É esse facto que muda a forma como constróis o site.
Quem renderiza JavaScript (e quem não)
Do lado dos motores de pesquisa, o Googlebot renderiza numa versão evergreen do Chromium, num processo em duas vagas: primeiro o HTML, depois a renderização em fila, que pode demorar. O Applebot também renderiza, e usa o conteúdo para a pesquisa da Siri e do Spotlight e para treinar a Apple Intelligence. O Bingbot renderiza, mas com limites: a Microsoft recomenda servir o conteúdo crítico em HTML.
Do lado da IA, o quadro inverte-se. O estudo da Vercel/Merj, feito em tráfego real, concluiu que nenhum dos grandes crawlers de IA executa JavaScript: GPTBot, ClaudeBot, PerplexityBot e os bots da Meta e da ByteDance. Eles até vão buscar ficheiros JavaScript (o ChatGPT pede JS em cerca de 11,5% dos pedidos, o Claude em cerca de 23,8%), mas não os correm. A exceção é o Gemini, que se apoia na infraestrutura da Google e por isso beneficia da renderização do Googlebot. O Common Crawl, que alimenta grande parte dos datasets de treino, também não renderiza.
Tradução prática: se o teu conteúdo depende de JavaScript no cliente para existir, o Google provavelmente vê-o, mas o ChatGPT, o Claude e o Perplexity veem uma página vazia.
Pesquisa, treino ou resposta em tempo real
"Bot de IA" não é uma categoria única. A finalidade muda o que está em jogo quando bloqueias:
- Índice de pesquisa: Googlebot, Bingbot, OAI-SearchBot, PerplexityBot, Claude-SearchBot. Bloqueá-los tira-te dos resultados e das respostas com pesquisa. Quase nunca é o que queres.
- Treino de modelos: GPTBot, ClaudeBot, Bytespider, CCBot (e os tokens Google-Extended e Applebot-Extended). Bloquear impede que o teu conteúdo entre nos pesos do modelo, mas não te tira das respostas com pesquisa em tempo real.
- Fetch em tempo real: ChatGPT-User, Claude-User, Perplexity-User. Visitam a pedido do utilizador, para responder a uma pergunta concreta. Bloqueá-los é cortar a hipótese de seres a fonte citada naquele momento.
A decisão de bloquear ou permitir cada grupo tem matizes, e trato-a a fundo em bloquear ou permitir a IA e, para publishers, em o robots.txt que ninguém auditou.
Os falsos crawlers: Google-Extended e Applebot-Extended
Este é o erro que mais vejo nos robots.txt por aí. O Google-Extended e o Applebot-Extended não são crawlers e não rastreiam nada. São tokens de controlo: dizem à Google e à Apple se podem ou não usar o conteúdo que já rastrearam (com o Googlebot e o Applebot) para treinar os modelos. Bloquear o Google-Extended não te tira da pesquisa Google nem das AI Overviews; só diz "não uses o meu conteúdo para treinar o Gemini". Confundir isto com um bot leva a bloqueios que não fazem o que se pensa.
O que isto significa para o teu site
Três consequências diretas, por ordem de impacto:
- Client-side rendering mata-te na IA. Se o conteúdo só aparece depois do JavaScript, estás invisível para quase todos os bots de IA. Serve o conteúdo em SSR ou SSG, renderizado no servidor, nas páginas que queres que sejam citadas.
- Mete os factos no HTML e em dados estruturados. Preço, morada, datas, definições e FAQ em texto e em JSON-LD, não escondidos atrás de JavaScript. É o que um bot que não renderiza consegue mesmo ler.
- Decide o acesso por finalidade, não por reflexo. Bloquear tudo o que diga 'IA' costuma tirar-te de onde a descoberta está a crescer. Decide bot a bot, com o mapa em cima da mesa.
É a parte técnica do GEO, e o cruzamento exato onde o SEO técnico encontra a visibilidade em IA.
Limitações e validade desta leitura
Dois avisos honestos. Primeiro, isto muda depressa: os fornecedores lançam bots novos e mudam comportamentos sem aviso. Esta matriz vale para outubro de 2026 e tem de ser revista. Segundo, a maioria das capacidades de renderização não é confirmada oficialmente; o "não renderiza" assenta em medições de logs (Vercel/Merj) e pode mudar quando um fornecedor decidir investir em renderização. Trata isto como um mapa de trabalho, não como verdade gravada em pedra.
Como confirmar no teu próprio site
Não acredites em tabelas, mede. O teu log de servidor diz-te exatamente que bots te visitam, com que frequência e o que pedem. É aí que uma comparação como esta deixa de ser teoria. Mostro como ler os bots de IA nos logs com o Screaming Frog para GEO, e como trabalhar o lado Bing e ChatGPT em Bing, Copilot e IndexNow. Se quiseres que faça esse diagnóstico ao teu site, falamos.
Fontes
- Vercel / Merj - The rise of the AI crawler
- Google Search Central - JavaScript SEO basics
- OpenAI - Overview of OpenAI crawlers
- Anthropic - Does Anthropic crawl data from the web?
- Perplexity - Crawlers (PerplexityBot)
- Apple - About Applebot
Perguntas frequentes
Os bots de IA leem JavaScript?
Quase nenhum. Medições em logs reais (Vercel/Merj) mostram que o GPTBot, o ClaudeBot, o PerplexityBot e companhia vão buscar ficheiros JavaScript mas não os executam. As exceções são o Googlebot, o Gemini (via índice da Google) e o Applebot, que renderizam. Ver SEO técnico →
Devo bloquear os bots de IA no robots.txt?
Depende da finalidade de cada um. Bloquear os de treino (GPTBot, ClaudeBot) não te tira das respostas com pesquisa; bloquear os de índice ou de fetch em tempo real tira-te de seres citado. Decide bot a bot. Bloquear ou permitir a IA →
O Google-Extended é um crawler?
Não. É um token de opt-out do treino do Gemini e não rastreia nada. Bloqueá-lo não te tira da pesquisa Google nem das AI Overviews; só impede o uso do teu conteúdo para treino. Guia de GEO →