Resposta curta
O sitemap.xml é a lista de páginas que você quer no Google. Ele precisa responder 200, em XML válido, com endereços completos que também respondem 200 e são canônicos. O limite é de 50 mil URLs ou 50 MB por arquivo; acima disso, use um índice de sitemaps. Envie em Indexação › Sitemaps no Search Console e aponte no robots.txt. O Google ignora <priority> e <changefreq>, e só usa o <lastmod> se ele for confiável.
Pra que serve um sitemap
O sitemap ajuda o Google a descobrir páginas. Ele não obriga nada: uma URL no sitemap não tem indexação garantida, e uma página fora dele ainda pode ser indexada se tiver links. Ainda assim, faz diferença em três casos:
- Site novo, com poucos links de outros sites apontando pra ele.
- Site grande, em que algumas páginas ficam a muitos cliques da home.
- Conteúdo que muda muito, como lojas e blogs, em que o
<lastmod>ajuda o Google a achar o que é novo.
Pra um site de cinco páginas bem ligadas entre si, o sitemap ajuda pouco. Mas também não custa nada, e a maioria das plataformas gera sozinha.
Como é um sitemap correto
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://seusite.com.br/</loc>
<lastmod>2026-10-10</lastmod>
</url>
<url>
<loc>https://seusite.com.br/produtos/camiseta-azul</loc>
<lastmod>2026-09-28</lastmod>
</url>
</urlset>
- Endereço completo em cada
<loc>, comhttps://e o domínio./produtos/camisetasozinho é inválido. - A mesma versão do site que é canônica: se o site é
httpssemwww, nenhuma URL comwwwouhttp. - Codificação UTF-8 e caracteres especiais escapados. Um
&no endereço vira&, senão o XML quebra. <lastmod>verdadeiro. A data da última mudança relevante do conteúdo, não a data do build. Se todas as páginas mostram a data de hoje, o Google aprende que o campo não vale nada e passa a ignorar.- Sem
<priority>e<changefreq>, ou com eles, tanto faz: o Google diz que ignora os dois.
O que entra e o que não entra
A regra é simples: só URLs que você quer ver no resultado de busca.
| Entra | Não entra |
|---|---|
| Páginas que respondem 200 | URLs que dão 404, 410 ou erro 5xx |
| A URL final | URLs que redirecionam (301, 302) |
| Páginas com canonical pra elas mesmas | Páginas com canonical apontando pra outra |
| Páginas indexáveis | Páginas com noindex ou bloqueadas no robots.txt |
| Conteúdo próprio | Busca interna, carrinho, filtros e parâmetros de rastreio |
Cada URL errada no sitemap é um pedido pro Google gastar rastreamento à toa. Muitas delas fazem o relatório de indexação encher de "Página com redirecionamento" e "Não encontrado (404)", e escondem os problemas que importam.
Sites grandes: o índice de sitemaps
Cada arquivo aceita até 50.000 URLs ou 50 MB sem compressão, o que vier primeiro. Passou disso, divida em vários arquivos e crie um índice que aponta pra eles:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>https://seusite.com.br/sitemap-produtos-1.xml</loc></sitemap>
<sitemap><loc>https://seusite.com.br/sitemap-blog.xml</loc></sitemap>
</sitemapindex>
Basta enviar o índice no Search Console. Dividir por tipo de página (produtos, categorias, blog) tem uma vantagem extra: o relatório mostra quantas páginas de cada sitemap foram indexadas, e fica fácil ver qual parte do site está travada. Os arquivos podem ser compactados em gzip (.xml.gz).
Como enviar pro Google
- No Search Console, abra Indexação › Sitemaps, cole o endereço (por exemplo
sitemap.xml) e clique em Enviar. - No robots.txt, adicione uma linha com o endereço completo. É assim que o Bing e outros buscadores encontram o arquivo sem você cadastrar nada.
Sitemap: https://seusite.com.br/sitemap.xml
O antigo "ping" (abrir google.com/ping?sitemap=... pra avisar de mudanças) foi aposentado pelo Google em 2023 e não funciona mais. Pra avisar de mudanças, mantenha o <lastmod> correto. Pro Bing e outros buscadores, existe o protocolo IndexNow.
Os erros do relatório de sitemaps
No relatório, cada sitemap enviado tem um status: Processado, Não foi possível buscar ou O sitemap apresentou X erros. Clicando nele, a página de detalhes explica.
Não foi possível buscar
O Google não conseguiu baixar o arquivo. Antes de qualquer coisa, abra o endereço no navegador e rode:
curl -sI https://seusite.com.br/sitemap.xml
As causas mais comuns:
- O endereço não existe e responde 404. Confira o nome exato que a sua plataforma usa:
sitemap.xml,sitemap_index.xmlouwp-sitemap.xml. - O robots.txt bloqueia o caminho do sitemap.
- Firewall ou proteção anti-bot desafiando o Googlebot. O navegador abre, o robô não.
- O endereço redireciona, por exemplo de
httpprahttpsou dewwwpra semwww. Envie a URL final. - Sitemap recém-enviado. É comum o status aparecer logo depois do envio e sumir sozinho quando o Google processa o arquivo. Se o curl mostra 200 e XML, espere alguns dias antes de mexer.
Não foi possível ler o sitemap e outros erros de leitura
- Resposta em HTML. Em sites de página única (SPA), um sitemap que não existe de verdade devolve o
index.htmlcom status 200. O Google recebe uma página, não um XML. - XML inválido. Um
&sem escape, uma tag sem fechar, espaço ou texto antes do<?xml. Abrir o arquivo no navegador costuma apontar a linha com problema. - URL inválida ou fora do lugar. Endereços relativos, de outro domínio que não está verificado, ou de outra versão do site (
http,www). - Arquivo grande demais, acima de 50 mil URLs ou 50 MB.
- Data em formato errado. O
<lastmod>segue o padrão W3C:2026-10-10ou2026-10-10T14:30:00-03:00. Uma data como10/10/2026dá erro.
Onde fica o sitemap em cada plataforma
| Plataforma | Endereço | Observação |
|---|---|---|
| WordPress (nativo) | /wp-sitemap.xml | Desde a versão 5.5 |
| WordPress com Yoast ou Rank Math | /sitemap_index.xml | O plugin desliga o nativo |
| Shopify | /sitemap.xml | Automático, não editável |
| Wix | /sitemap.xml | Automático |
| Next.js (App Router) | /sitemap.xml | Gerado por app/sitemap.ts |
| Astro | /sitemap-index.xml | Com a integração @astrojs/sitemap |
No Next.js, o arquivo sai do código, o que evita esquecer páginas novas:
// app/sitemap.ts
import type { MetadataRoute } from "next";
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
const produtos = await listarProdutos();
return [
{ url: "https://seusite.com.br/", lastModified: new Date("2026-10-10") },
...produtos.map((p) => ({ url: `https://seusite.com.br/produtos/${p.slug}`, lastModified: p.atualizadoEm })),
];
}
Checklist
- O sitemap responde 200 e é XML, não HTML.
- Todas as URLs são completas, na versão canônica do site.
- Nenhuma URL do sitemap redireciona, dá erro ou tem noindex.
- O
<lastmod>muda só quando o conteúdo muda. - O sitemap foi enviado no Search Console e está como Processado.
- O robots.txt tem a linha
Sitemap:com o endereço completo.
O item 3 é o que mais quebra sem ninguém perceber, porque o sitemap continua "Processado" mesmo cheio de URLs ruins. A varredura grátis da Varrida abre o sitemap, testa uma amostra das URLs e avisa quais respondem erro ou redirecionam.


