O ChatGPT e o Claude conseguem ler meu site em JavaScript?
Só o texto que já vem no HTML enviado pelo servidor. Um estudo da Vercel de dezembro de 2024 mostrou que os robôs da OpenAI, da Anthropic e da Perplexity baixam os arquivos JavaScript, mas não os executam. Se as suas páginas são montadas no navegador, como muitos sites em React e feitos por construtores com IA, esses robôs veem uma página quase vazia.
Fatos
- A Vercel relatou em 17 de dezembro de 2024 que nenhum dos grandes robôs de IA, entre eles GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot e PerplexityBot, renderiza JavaScript. (Vercel: The rise of the AI crawler (Dec 2024))
- O mesmo estudo mostrou que o Gemini, que usa a infraestrutura do Googlebot, e o AppleBot renderizam JavaScript. (Vercel: The rise of the AI crawler (Dec 2024))
- Em um mês na rede da Vercel, o robô do ChatGPT buscou arquivos JavaScript em 11,50% das requisições e o do Claude em 23,84%, sem executá-los. (Vercel: The rise of the AI crawler (Dec 2024))
- A OpenAI diz que sites que bloqueiam o OAI-SearchBot não aparecem nas respostas da busca do ChatGPT: a página que esse robô lê é a que o ChatGPT pode citar. (OpenAI: Overview of OpenAI crawlers)
- No App Router do Next.js, layouts e páginas são Server Components por padrão e saem pré-renderizados em HTML no servidor. (Next.js docs: Server and Client Components)
Como testo se os robôs de IA conseguem ler meu site?
Baixe a página como um robô faz, sem navegador, e procure o texto principal no resultado. Se o preço, o título ou a resposta não estiverem lá, os robôs de IA também não veem.
# What an AI crawler receives: the raw HTML, no JavaScript run curl -s -A "GPTBot" https://www.example.com/pricing | grep -i "your price or headline" # Nothing found? The text only exists after JavaScript runs.
Que tipo de site tem esse problema?
Sites cujo conteúdo é criado por JavaScript no navegador depois que a página carrega:
- Apps de página única em React, Vue ou Angular com Vite, sem renderização no servidor
- Sites gerados por construtores de app com IA que entregam um app renderizado no navegador
- Páginas que buscam o texto numa API depois de abrir
- Menus e links feitos com cliques em JavaScript em vez de links <a href> de verdade
Qual é a correção para cada caso?
A correção é mandar o texto pronto já na primeira resposta HTML.
| Caso | O que pedir ao agente de código |
|---|---|
| Next.js App Router | Manter as páginas como Server Components; marcar com "use client" só as partes interativas |
| React ou Vue com Vite | Pré-renderizar as páginas públicas em HTML estático no build, ou migrá-las para um framework com renderização no servidor |
| Conteúdo vindo de API | Buscar no servidor ou no build, não dentro de useEffect |
| Qualquer framework | Links <a href> de verdade, sitemap.xml e o texto visível sem precisar clicar |
O Google tem o mesmo problema?
Menos: o robô do Google executa JavaScript, então a Busca e o Gemini veem o texto montado no navegador, só que mais tarde que o HTML puro. ChatGPT, Claude e Perplexity é que leem apenas o HTML bruto.
Como o easyIndex confere isso?
O easyIndex lê cada página publicada do mesmo jeito que um robô de IA, sem executar JavaScript. Uma página que o seu agente de código cria só conta como pronta quando o texto auditado está nesse HTML bruto, no site no ar.
Passo a passo
- Teste as páginas principais. Rode o teste com curl na home, na página de preços e nas de serviço, procurando o texto principal de cada uma.
- Descubra onde o texto é montado. Peça ao agente de código para listar as páginas que montam o conteúdo no navegador e o motivo.
- Leve o texto para o servidor. Peça ao agente para passar essas páginas para renderização no servidor ou pré-renderização estática, deixando interatividade só onde precisa.
- Corrija links e sitemap. Todo link interno vira um <a href> de verdade e toda página pública entra no sitemap.xml.
- Teste de novo no ar. Repita o curl depois do deploy; o texto precisa aparecer no HTML bruto.
Erros comuns
- Conferir a página no navegador, que executa JavaScript, e achar que o robô vê o mesmo.
- Renderizar a home no servidor e deixar preços e serviços renderizados no navegador.
- Bloquear robôs de IA sem querer, no robots.txt ou na CDN, enquanto mexe na renderização.
- Pagar uma camada de pré-renderização quando o framework já renderiza no servidor.
Como o easyIndex resolve
Seu agente de código corrige a renderização no seu repositório, guiado via MCP; o easyIndex lê cada página no ar sem executar JavaScript, como os robôs de IA, e depois registra quais páginas os robôs de IA leram de fato. R$ 57 por site ao mês, com 7 dias grátis.
Perguntas frequentes
Um site em Next.js já está seguro?
Quase sempre: as páginas do App Router são renderizadas no servidor por padrão, mas texto buscado dentro de um Client Component depois de carregar continua invisível para os robôs de IA.
Um arquivo llms.txt resolve o problema do JavaScript?
Não. É um arquivo de texto curto; as páginas continuam precisando do texto no HTML para os robôs lerem e citarem.
Os robôs de IA vão passar a executar JavaScript?
Ninguém sabe. No estudo de dezembro de 2024 eles não executavam, e o seguro é mandar o texto no HTML.
Isso afeta quem chega pelo ChatGPT?
Não. A pessoa abre seu site num navegador normal, que executa JavaScript; o problema é só o que o robô lê antes de citar você.
Continue lendo
- Como o easyIndex funciona, do que eu preciso e quanto tempo até ver resultados?
- Quanto custa o easyIndex?
- Quais robôs de IA existem e como liberar no robots.txt?
- llms.txt funciona?
- Como fazer GEO com o Claude Code ou o Codex?
- A Cloudflare está bloqueando o ChatGPT e outros robôs de IA no meu site?
Verificado em .