Visão do robô

A maioria dos robôs nunca desenha a sua página. Eles pegam o HTML que o seu servidor envia, ficam com as palavras e vão embora. Esta verificação mostra essas palavras na ordem em que um robô as encontra e aponta o que está faltando.

Uma requisição para a página e uma para o robots.txt dela. Nenhuma é guardada.

Ou experimente wikipedia.org, react.dev

Toda página existe em duas cópias

A primeira cópia é o documento HTML que sai do seu servidor. A segunda é o que o navegador constrói a partir dele depois de carregar as folhas de estilo, executar os scripts e buscar o que esses scripts pedirem. As pessoas só veem a segunda cópia.

Os robôs trabalham principalmente com a primeira. O Googlebot renderiza as páginas com um Chrome sem interface, mas numa etapa posterior que pode atrasar e pode estourar o tempo. O Bingbot renderiza menos. Os robôs que alimentam assistentes de IA, e os buscadores de prévia dos aplicativos de chat e das redes sociais, em geral não executam JavaScript nenhum. Se o seu texto só existe na segunda cópia, boa parte do seu público de máquinas está recebendo uma página vazia.

Esta verificação pede a primeira cópia e para por aí. Nada é executado e nenhuma folha de estilo é aplicada.

Como ler a visão em texto puro

Percorremos o corpo da página na ordem do código-fonte e o mostramos como texto. Scripts, estilos, templates e desenhos SVG embutidos são ignorados. O resto é marcado assim:

#, ##, ###
Um título e o nível dele. Experimente ler só essas linhas. Elas deveriam funcionar como um sumário da página.
Palavras sublinhadas
Um link. Passe o mouse por cima para ver o endereço para onde ele leva.
[Image: …]
O texto alt de uma imagem. Uma imagem sem atributo alt aparece como faltando, com o nome do arquivo. Botões e campos de formulário aparecem entre colchetes do mesmo jeito.
Texto marcado como oculto
Palavras que estão no HTML mas têm o atributo hidden ou um estilo embutido como display:none, visibility:hidden, font-size:0 ou um text-indent muito negativo.
Texto marcado como noscript
Conteúdo dentro de <noscript>, que só os robôs e os visitantes sem JavaScript recebem.

Abaixo do texto vêm os números: tamanho do HTML, quantidade de palavras visíveis, proporção do HTML que é texto, scripts, links e imagens. Uma proporção de texto entre 10 e 30% é típica de uma página feita à mão ou num CMS. Com 1 ou 2%, o documento é quase só código.

O que dispara cada constatação

ConstataçãoRegra aplicada
Conteúdo só depois do JavaScriptMenos de 60 palavras visíveis, junto com um destes: um contêiner de aplicação vazio (#root, #app, #__next, #__nuxt, app-root e parecidos), três ou mais scripts externos, mais de 50 KB de script embutido, ou mais de 150 KB nos arquivos de script principais.
Muito pouco textoMenos de 150 palavras visíveis.
A página pede para não ser indexadanoindex ou none numa meta tag robots ou num cabeçalho X-Robots-Tag.
Google não autorizadoO caminho da página bate com uma regra Disallow que vale para o Googlebot no robots.txt.
Mais texto oculto que visívelAs palavras ocultas superam as visíveis, com um mínimo de 80.
Links que os robôs não conseguem seguirhref="#", href="javascript:…", ou um onclick sem href.
Sem título de nível 1, imagens sem altContados diretamente no HTML.

O último bloco aplica o seu robots.txt a este endereço para dez robôs: Googlebot, Bingbot, Google-Extended, GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot, PerplexityBot, CCBot e Applebot-Extended. Um bloqueio do Googlebot conta como erro. Um bloqueio de um robô de IA só é informado, já que essa é uma escolha que você tem todo o direito de fazer. A verificação de acesso dos robôs de IA cobre uma lista maior para o site inteiro.

Como colocar o seu texto na primeira cópia

Se a verificação encontrou um contêiner vazio, a página é uma aplicação do lado do cliente. O servidor envia uma casca e o navegador a preenche. Estas são as soluções, da mais completa para a menos completa:

  1. Renderizar no servidor. Next.js, Nuxt, SvelteKit, Remix e Angular conseguem produzir HTML completo a cada requisição e depois ligar os scripts a ele. Normalmente é uma escolha de configuração, não uma reescrita.
  2. Gerar páginas estáticas no build. Para conteúdo que muda pouco, ferramentas como Astro, Gatsby ou a exportação estática dos frameworks acima gravam um arquivo HTML completo por página.
  3. Pré-renderizar para os robôs. Um serviço de pré-renderização guarda uma versão renderizada e a entrega aos robôs. Funciona, mas aí você passa a ter duas versões para cuidar.

Num CMS clássico como WordPress ou Drupal o HTML já contém o texto, e as constatações são menores: um preço mostrado só dentro de uma imagem, um menu cujos links são handlers onclick, ou um telefone numa imagem de banner com alt vazio.

O texto oculto só é detectado pelo atributo hidden e pelos estilos embutidos. Um texto escondido por uma classe numa folha de estilo externa conta como visível aqui, porque não carregamos folhas de estilo. Menus recolhidos, abas e acordeões são normais, e os mecanismos de busca não os penalizam.

Perguntas frequentes

O Google executa JavaScript quando rastreia uma página?

Sim, mas numa segunda etapa. O Google primeiro indexa o HTML que baixa, depois coloca a página na fila para renderização num Chrome sem interface. Essa etapa pode vir mais tarde, e pode não esperar por scripts lentos nem por conteúdo carregado na rolagem ou no clique.

Os robôs do ChatGPT, Claude e Perplexity executam JavaScript?

Em geral, não. GPTBot, ClaudeBot, PerplexityBot e CCBot baixam o HTML e leem o texto dele. Uma página que precisa de scripts para mostrar o conteúdo entrega pouco ou nada a eles.

Texto oculto é ruim para o SEO?

Não quando faz parte da interface. Menus, abas, acordeões e caixas de diálogo são indexados normalmente. O que os mecanismos de busca tratam como spam é texto escondido dos visitantes de propósito para acrescentar palavras-chave, como texto branco sobre fundo branco.

Qual é uma boa proporção entre texto e HTML?

Não existe meta e isso não é fator de ranqueamento. Páginas feitas com cuidado costumam ficar entre 10 e 30%. Um número muito baixo é só um indício de que o documento carrega muita marcação ou script embutido para a quantidade de conteúdo.

Por que a visão mostra quase nada do meu site?

O seu servidor envia uma casca de aplicação e o conteúdo é acrescentado no navegador. Abra o código-fonte da página (Ctrl+U ou Cmd+Option+U) e procure uma frase da sua página. Se ela não estiver lá, os robôs que ignoram JavaScript também não conseguem vê-la.