technical
Sitemap no robots.txt
O MetricSpot verifica se o robots.txt tem uma linha Sitemap:. É como o Google, o Bing e a maioria dos crawlers de IA descobrem o teu sitemap automaticamente.
O que esta verificação faz
Vai buscar /robots.txt e procura uma ou mais diretivas Sitemap:. Verifica que o URL é absoluto (URLs relativos não são permitidos pela especificação) e que está acessível.
Porque é importante
A maioria dos crawlers descobre o teu sitemap de uma de três formas:
- Submete-lo no Google Search Console / Bing Webmaster Tools.
- Declará-lo no
robots.txtviaSitemap:. - O crawler adivinha
/sitemap.xmlcomo último recurso.
O método 2 é o que escala para crawlers com os quais não tens conta — Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, Applebot, Yandex, Baidu e dezenas de indexadores menores leem todos o robots.txt antes de rastejarem o que quer que seja. Declarar lá o teu sitemap é uma linha de configuração que anuncia a localização a todos ao mesmo tempo.
Se ficar de fora, um sitemap gerado pelo CMS num URL não-padrão (/sitemap_index.xml, /wp-sitemap.xml, /sitemap-0.xml) pode nunca ser descoberto pelos crawlers menores que não tentam caminhos alternativos.
Como corrigir
Acrescenta uma linha Sitemap: a /robots.txt. Usa o URL absoluto e canónico — mesmo esquema (https), mesmo hostname (com ou sem www, igual ao teu canónico), sem redirecionamentos finais.
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
Vários sitemaps são permitidos. Lista cada um, ou lista um índice de sitemaps que referencie os outros:
Sitemap: https://example.com/sitemap-pages.xml
Sitemap: https://example.com/sitemap-posts.xml
Sitemap: https://example.com/sitemap-products.xml
Regras:
- Apenas URL absoluto.
Sitemap: /sitemap.xmlé inválido segundo a especificação. Alguns crawlers toleram-no, outros ignoram a diretiva por completo. - Faz coincidir o esquema/host canónico. Se o teu site é
https://www.example.com, não declareshttps://example.com/sitemap.xml. O Google trata o sitemap como pertencente ao host onde está declarado. - A diretiva
Sitemap:é global, não está limitada a um blocoUser-agent:. Põe-na na sua própria linha, no topo ou no fundo do ficheiro — a posição não interessa.
nginx (servindo um robots.txt estático):
location = /robots.txt {
alias /var/www/example.com/robots.txt;
}
Next.js (App Router) — robots.txt dinâmico:
// app/robots.ts
import type { MetadataRoute } from "next";
export default function robots(): MetadataRoute.Robots {
return {
rules: [{ userAgent: "*", allow: "/" }],
sitemap: "https://example.com/sitemap.xml",
};
}
Astro: põe um public/robots.txt literal no teu projeto, ou gera um em src/pages/robots.txt.ts:
// src/pages/robots.txt.ts
import type { APIRoute } from "astro";
export const GET: APIRoute = ({ site }) => {
const body = `User-agent: *
Allow: /
Sitemap: ${new URL("sitemap-index.xml", site).href}
`;
return new Response(body, { headers: { "Content-Type": "text/plain" } });
};
Se usares @astrojs/sitemap, ele emite sitemap-index.xml — aponta a diretiva para o índice, não para os sitemaps individuais.
WordPress: o Yoast SEO e o Rank Math adicionam ambos a linha Sitemap: ao robots.txt virtual automaticamente. Se tiveres um ficheiro /robots.txt real em disco, o plugin não consegue substituí-lo — ou apagas o ficheiro ou acrescentas a linha Sitemap: manualmente.
Cloudflare Workers / Pages: o robots.txt é só texto estático — coloca-o no teu diretório public/. Se o gerares através de um Worker, define content-type: text/plain para que os crawlers o interpretem corretamente.
Combina com Ficheiro robots.txt, Sitemap XML e Permitir crawlers de IA — os três juntos cobrem toda a superfície de descoberta para rastreamento.
Perguntas frequentes
Ainda preciso de submeter o sitemap no Search Console se já estiver no robots.txt?
Sim, para o Google. A submissão no Search Console dá-te estatísticas de indexação por sitemap, relatórios de erros e diagnósticos “descoberto, não indexado” que a descoberta automática não dá. Usa ambos — robots.txt para o resto da web, Search Console para a visibilidade especificamente sobre o Google.
Posso ter mais do que uma linha Sitemap:?
Sim. A especificação permite várias declarações de sitemap. Ou listas todas, ou listas um ficheiro de índice de sitemaps que referencie as outras (mais limpo, mais fácil de manter).
E se o URL do meu sitemap mudar?
Atualiza a linha Sitemap: e o Googlebot apanha-a da próxima vez que ler o robots.txt (geralmente em 24 horas). Se tens um sitemap antigo submetido no Search Console, remove-o manualmente — o robots.txt só diz aos crawlers onde está o novo, não invalida o antigo.
Fontes
Última atualização 2026-05-11