Como funciona esta verificação
O Scanaris faz três coisas. Primeira, pede /robots.txt e dá-o por válido só se responder 200 e não for HTML (as aplicações de página única devolvem a sua página para qualquer rota); senão, abre um achado de severidade baixa. Segunda, pede /sitemap.xml e dá-o por válido se responder 200 e contiver uma etiqueta <urlset> ou <sitemapindex>; se não o encontrar aí mas o robots.txt tiver uma linha Sitemap:, dá-o por bom na mesma; caso contrário, achado de severidade baixa. Terceira, vê se a página analisada leva noindex, seja na etiqueta <meta name="robots"> ou no cabeçalho HTTP X-Robots-Tag; se levar, abre um achado de severidade média, porque essa página não vai aparecer na Google.
Porque importa
O robots.txt é o primeiro URL que qualquer rastreador visita e onde lhe dizes o que pode percorrer e onde está o teu sitemap. O sitemap é a lista de URLs que queres que a Google indexe, com a data de modificação: sem ele, a Google descobre as tuas páginas seguindo ligações, o que é mais lento e deixa de fora as que estão pouco ligadas. São os dois de severidade baixa porque a sua ausência não impede a indexação, só a piora. O noindex é outra coisa: é uma ordem direta à Google para não mostrar essa página, e na home significa que o teu site não existe no motor de busca. É a falha de SEO mais devastadora e mais silenciosa que há, e quase sempre é um resto do ambiente de testes.
Como corrigir
robots.txt
User-agent: *
Allow: /
Sitemap: https://teudominio.com/sitemap.xml
Ficheiro de texto simples na raiz. No Nuxt e no Next.js há módulos e convenções (app/robots.ts) que o geram; num site estático, vai na pasta public. Não listes nele rotas privadas: é público e estarias a apontá-las a qualquer um, como explica caminhos sensíveis no robots.
Sitemap
- Nuxt: o módulo de sitemap gera-o a partir das rotas e dos URLs que lhe passares (posts, produtos).
- Next.js: um ficheiro
app/sitemap.tsque devolve a lista de URLs. - WordPress: gera-o sozinho desde a versão 5.5 em
/wp-sitemap.xml; adiciona essa linha ao robots ou deixa o Yoast ou o Rank Math pô-lo em/sitemap_index.xml. - Astro, Hugo, Jekyll: um plugin ou integração oficial.
Só URLs indexáveis, canónicos e que respondam 200. Envia-o na Google Search Console e nas Bing Webmaster Tools: assim saberás quantos desses URLs estão realmente indexados.
noindex na página
Procura de onde vem. No Nuxt, o módulo de robots pode marcar noindex conforme uma variável de ambiente que por vezes se copia do ambiente de testes para o de produção. No Next.js, metadata.robots. No WordPress, a opção "Desencorajar os motores de busca" nas Definições de leitura, que alguém ativou para o site em construção. No Vercel, as implantações de pré-visualização levam X-Robots-Tag: noindex automaticamente, mas a de produção não; se o vês em produção, adicionaste-o tu na configuração de cabeçalhos.
Confirma que está corrigido
curl -s https://teudominio.com/robots.txt
curl -s https://teudominio.com/sitemap.xml | head -5
curl -sI https://teudominio.com | grep -i x-robots-tag
curl -s https://teudominio.com | grep -oiE '<meta name="robots"[^>]*>'
Os dois primeiros devem mostrar texto e XML, não HTML. Os dois últimos não devem conter noindex (uma meta robots com index, follow ou max-image-preview é normal).
Perguntas frequentes
O meu sitemap está noutro caminho, como /sitemap_index.xml.
Vale qualquer caminho desde que o robots.txt o referencie com a linha Sitemap:. A verificação procura-o aí antes de dar o achado.
Quero que o meu site não apareça na Google de momento.
Então o noindex está correto e podes aceitar o achado. Mas põe um lembrete: a maioria dos sites com noindex em produção não o tem de propósito.
O robots.txt afeta os bots de IA?
Sim, é o mesmo ficheiro onde se permite ou bloqueia o GPTBot, o ClaudeBot ou o PerplexityBot. O que estás a permitir e o que convém vê-o rastreadores de IA.