← Todas as verificações
AEOSeveridade típica: Médio

Conteúdo acessível sem JavaScript

Deteta se o teu site é uma SPA quase vazia sem JS, que os crawlers de IA não conseguem indexar nem citar.

O que verifica

Este scanner deteta se o teu site é uma aplicação de página única (SPA) que chega quase vazia quando se carrega sem executar JavaScript. Verifica quanto conteúdo real está disponível antes de o navegador processar o código.

Porque importa

Muitos crawlers de IA e motores de busca não executam JavaScript, por isso se o teu conteúdo só aparecer depois de o carregar com JS, para eles a tua página está em branco e não a podem indexar nem citar. Isto é muito comum em sites feitos com frameworks modernas por vibe coders sem se aperceberem.

Como se corrige

Usa renderização no servidor (SSR) ou geração estática (SSG) para que o HTML chegue já com o texto e as ligações principais. A maioria das frameworks modernas oferece esta opção; ativá-la garante que tanto o Google como a IA veem o teu conteúdo real.

Como funciona esta verificação

O Scanaris descarrega o HTML da tua página tal como o servidor o serve, sem executar JavaScript, tira-lhe os scripts, os estilos, as etiquetas noscript, os templates e os SVG, e mede quanto texto visível fica no body. Só abre um achado, de severidade média, se se cumprirem duas condições ao mesmo tempo: esse texto ter menos de 250 caracteres e o HTML conter um contentor vazio de aplicação de página única, ou seja, um <div> com id root, app, __next, __nuxt ou q-app sem nada lá dentro. Um site com renderização no servidor ou geração estática tem texto no HTML inicial e nunca é marcado; um site com pouco conteúdo mas sem contentor de SPA também não. O limiar é deliberadamente baixo para não dar falsos positivos.

Porque importa

O Googlebot executa JavaScript, mas numa segunda passagem que pode demorar dias e com um orçamento limitado. Os rastreadores dos assistentes de IA (GPTBot, ClaudeBot, PerplexityBot) em geral não o executam: leem o HTML que lhes chega e ponto. Se o teu HTML é um <div id="root"></div> e um script, para eles o teu site está vazio. Não podem indexar o que não veem nem citar o que não leem, por isso quando alguém pergunta ao ChatGPT pela tua categoria de produto, tu não existes. É o problema mais comum dos sites feitos com ferramentas de IA que geram uma aplicação React ou Vue puramente de cliente, e o mais invisível, porque no browser tudo se vê perfeito.

Como corrigir

  • Ativa a renderização no servidor. No Nuxt vem ativada por defeito (ssr: true); se a desativaste, volta a ativá-la. No Next.js, o App Router renderiza no servidor salvo se marcares o componente com 'use client' logo no topo. Em Vite com React ou Vue puros não há SSR: passa para Next.js, Remix, Nuxt ou Astro, ou gera as páginas públicas como HTML estático.
  • Se migrar não é opção, pré-renderiza: gera o HTML das rotas públicas no momento do build (Nuxt nitro.prerender, exportação estática do Next.js, Astro por defeito) ou usa um serviço de pré-renderização que sirva HTML renderizado aos bots.
  • No mínimo, põe o conteúdo essencial no HTML: o título, a descrição do que fazes e as ligações principais, mesmo que a aplicação os substitua ao carregar. É o que os bots vão ver.
  • Verifica as páginas que importam, não só a home: o blog e as páginas de produto são as que os assistentes citam.

Confirma que está corrigido

curl -s https://teudominio.com | sed -e 's/<script[^>]*>.*<\/script>//g' -e 's/<[^>]*>/ /g' | tr -s ' \n' ' ' | wc -c

Se o resultado ficar numas poucas dezenas de caracteres, o conteúdo é pintado pelo JavaScript. Devia contar milhares. Outra forma: no browser, desativa o JavaScript nas ferramentas de programador e recarrega; o que vires é o que os bots veem.

Perguntas frequentes

A Google indexa-me bem. Porque me importa?

Porque cada vez mais gente pergunta a um assistente em vez de pesquisar, e esses assistentes não executam o teu JavaScript. E porque mesmo na Google, a renderização diferida atrasa dias a indexação das tuas alterações. Os números e o porquê estão em porque é que as apps feitas com IA são invisíveis para a IA.

A minha app é um painel privado atrás de login. Afeta-me?

Não: o que está atrás de autenticação não deve ser indexado. Esta verificação importa para as páginas públicas, as que queres que apareçam. Se o teu site é só o painel mais uma landing, faz com que a landing seja HTML.

Tenho SSR e mesmo assim sai pouco texto.

Então o HTML traz estrutura mas pouco conteúdo real, e convém rever se a landing conta alguma coisa. Os cabeçalhos que organizam esse conteúdo vê-os cabeçalhos.

Verifica-o no teu site

Analisa o teu site grátis e vê se esta e outras 44 verificações passam, com um fix prompt por cada problema.

Analisar o meu site grátis

Do blog

Verificações relacionadas