Os crawlers de IA conseguem ler conteúdo renderizado por JavaScript?

Publicado em

Resposta curta

Muitas vezes não. O Googlebot renderiza JavaScript em uma etapa posterior, mas a maioria dos crawlers de IA não documenta fazer isso, e o próprio Google observa que nem todos os bots executam JavaScript. Se o seu texto só aparece depois que os scripts rodam, um crawler de IA pode receber uma página vazia. Sirva o conteúdo principal no HTML inicial, com renderização no servidor ou páginas estáticas.

Single-page apps e frameworks client-side estão por toda parte e, no navegador, parecem ótimos. Um crawler que lê apenas o HTML que seu servidor envia vê outra coisa: um <div id="root"></div>, algumas tags de script e pouco ou nenhum texto. Para as respostas de IA, essa página não tem nada a citar.

Neste artigo
  1. Por que os crawlers de IA perdem o conteúdo em JavaScript?
  2. Como verifico o que um crawler recebe?
  3. Quais páginas correm mais risco?
  4. Como corrijo conteúdo que só existe em JavaScript?
  5. Telas de login, consentimento e paywall também bloqueiam crawlers de IA?
  6. Como a AISeeWhy detecta páginas só em JavaScript?

Por que os crawlers de IA perdem o conteúdo em JavaScript?

Executar JavaScript é caro. O crawler precisa baixar os scripts, executá-los em um motor de navegador e esperar os dados carregarem. O Google faz isso para a Pesquisa: rastreia, enfileira páginas para renderização e as renderiza com Chromium headless quando há recursos. Mesmo assim, o Google recomenda renderização no servidor ou prerendering porque é mais rápido para usuários e crawlers, e observa que nem todos os bots executam JavaScript.

OpenAI, Anthropic e Perplexity não afirmam, na documentação de seus crawlers, que seus agentes executam JavaScript. A Apple diz que o Applebot pode renderizar páginas em um navegador. Sem uma declaração clara, a suposição segura para crawlers de IA é que eles leem apenas o HTML inicial.

Como verifico o que um crawler recebe?

Olhe o HTML bruto, não a página renderizada. As ferramentas de desenvolvedor do navegador mostram o DOM depois que os scripts rodaram, que não é o que um crawler recebe. Use o view-source ou salve o HTML bruto pela linha de comando e pesquise nele:

curl -s -o page.html \
  -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" \
  https://example.com/page

# Is a sentence from your main text in the raw HTML?
grep -c "a sentence from your main content" page.html

Um resultado 0 significa que a frase não está no HTML que o servidor enviou, então os crawlers que não executam scripts não a encontrarão. Uma olhada rápida no arquivo mostra o resto: um artigo renderizado no servidor tem todo o texto ali; uma casca client-side tem um elemento raiz vazio e uma lista de scripts.

Quais páginas correm mais risco?

Como corrijo conteúdo que só existe em JavaScript?

A solução é enviar o conteúdo importante já na primeira resposta. Escolha a opção mais leve que sua stack permitir:

Você não precisa converter um app inteiro de uma vez. Comece pelas páginas que quer ver citadas: artigos, documentação, páginas de produto e de preços. Áreas de conta e dashboards podem continuar client-side, porque de qualquer forma ficam atrás de um login.

Evite servir aos crawlers uma página diferente da dos usuários com base no user agent. Renderizar o mesmo HTML para todos é mais simples de manter e evita qualquer dúvida sobre cloaking.

Telas de login, consentimento e paywall também bloqueiam crawlers de IA?

Sim. Um crawler não faz login, não clica em um banner de cookies e não resolve desafios. A Anthropic afirma que seus bots não tentam contornar CAPTCHAs. Se um gerenciador de consentimento substitui a página por uma sobreposição de tela cheia no HTML, ou redireciona visitantes novos para uma página de consentimento, o crawler recebe isso em vez do seu conteúdo.

Garanta que as páginas públicas renderizem o conteúdo no HTML independentemente do estado do consentimento, com o banner como sobreposição e não como substituição. Mantenha as páginas que quer ver citadas fora de telas de login e confira se um crawler não é redirecionado para uma página de entrada.

Como a AISeeWhy detecta páginas só em JavaScript?

A AISeeWhy lê o HTML inicial como cada crawler o recebe, sem executar scripts. Quando uma página tem quase nenhum texto visível, mas um elemento raiz de framework e scripts, ela reporta um problema P1 indicando que o conteúdo depende de JavaScript. Também sinaliza redirecionamentos que levam os crawlers a um lugar diferente da página que um navegador recebe.

Perguntas frequentes

O Googlebot renderiza JavaScript?

Sim. O Google rastreia o HTML, enfileira as páginas para renderização e as renderiza com Chromium headless quando há recursos. Ainda assim, recomenda renderização no servidor ou prerendering.

Os crawlers do ChatGPT, Claude e Perplexity executam JavaScript?

A documentação de crawlers dos fornecedores não diz isso. Até que um fornecedor afirme o contrário, presuma que o crawler lê o HTML inicial e garanta que seu conteúdo esteja nele.

Renderização dinâmica para bots é uma boa ideia?

Funciona como solução provisória, mas acrescenta um segundo caminho de renderização para manter. Renderização no servidor ou HTML estático entrega o mesmo conteúdo a todos e é a solução de longo prazo mais simples.

O JSON-LD adicionado por JavaScript vale?

O Google consegue lê-lo após a renderização, mas crawlers que não executam scripts não o verão. Coloque o JSON-LD no HTML inicial.

Fontes

Mais artigos