Índice de sitemaps: o que é, limites e como ler um
Um índice de sitemaps é um arquivo XML que lista outros sitemaps em vez de páginas. O WordPress, o Yoast SEO e o Rank Math publicam um, e sites grandes precisam de um quando passam de 50.000 URLs. Veja o formato, os limites definidos pelo Google e pelo protocolo, os erros mais frequentes e três maneiras de ler todos os sitemaps filhos para os quais ele aponta.
Formato e limites do índice
Um índice lista sitemaps, não páginas. Os mecanismos de busca o abrem, depois abrem cada arquivo citado nele e só então chegam aos URLs das suas páginas. Sites grandes precisam de um porque um único sitemap comporta no máximo 50.000 URLs e 50 MB. O WordPress, o Yoast SEO e o Rank Math usam um mesmo em sites pequenos, porque dividem os URLs por tipo de conteúdo. Nosso guia mostra onde o WordPress publica o índice.
O elemento raiz é sitemapindex, no mesmo namespace de um sitemap comum. Cada arquivo listado ganha uma entrada sitemap com duas tags:
loc: o URL completo do sitemap filho. É obrigatória.lastmod: quando esse arquivo foi modificado pela última vez, no formato W3C Datetime. É opcional.
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/post-sitemap.xml</loc>
<lastmod>2026-10-28T09:12:00+00:00</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/page-sitemap.xml.gz</loc>
<lastmod>2026-10-02</lastmod>
</sitemap>
</sitemapindex>
Não existe changefreq nem priority em um índice. Repare no que lastmod quer dizer aqui: o sitemaps.org o define como a data em que o arquivo de sitemap mudou, não as páginas dentro dele. Um filho pode ser compactado com gzip, como na segunda entrada.
Os limites vêm do protocolo sitemaps.org, e o Google acrescenta alguns:
| Regra | Valor | Fonte |
|---|---|---|
| Sitemaps listados em um índice | 50.000 no máximo | sitemaps.org, Google |
| Tamanho do arquivo | 50 MB (52.428.800 bytes) sem compactação | sitemaps.org, Google |
| Compactação | gzip permitido | sitemaps.org |
| Arquivos de índice por site no Search Console | 500 | |
| Índice dentro de um índice | não permitido |
O Google diz que todos os requisitos de sitemap também valem para os arquivos de índice, então o limite de 50 MB é medido depois da descompactação.
Regras de aninhamento e de mesmo host
O Google não aceita um índice dentro de outro. A ajuda do relatório de sitemaps diz que um índice pode listar só arquivos de sitemap, e o relatório mostra um erro de aninhamento quando encontra um. O protocolo não diz nada sobre isso, por isso alguns geradores ainda aninham índices. Achate a árvore: faça o arquivo principal apontar direto para os arquivos que contêm URLs. Com mais de 50.000 sitemaps, divida-os em vários arquivos de índice e envie cada um.
O protocolo também diz que um índice só pode listar sitemaps do mesmo site. O Google acrescenta dois detalhes:
- Os sitemaps filhos precisam estar na mesma pasta do índice ou em um nível abaixo na hierarquia do site.
- A regra do mesmo site deixa de valer se você configurar o envio entre sites, o que exige provar que você controla cada host.
Assim, um índice em https://example.com/sitemap.xml não deve listar https://cdn.example.net/products.xml nem http://www.example.com/posts.xml. Os dois contam como outros hosts. Para um URL em um nível acima ou em outro domínio, o relatório mostra «URL não permitido».
Enviar no Search Console e no robots.txt
No relatório de sitemaps, digite o URL do índice e clique em «Enviar». Esse único envio cobre todos os filhos. Para um índice, diz a página de ajuda, «Páginas encontradas» conta todos os URLs de todos os sitemaps filhos. Você também pode enviar um filho quando quiser uma linha e um status só para ele, mas não é obrigatório.
- Redirecionamentos não são seguidos no URL enviado. Envie o endereço final, que responde com o status 200.
- O relatório lista só os sitemaps enviados nele ou pela API, então um arquivo que o Google encontrou no robots.txt não aparece.
No robots.txt, acrescente uma linha com o URL completo, em qualquer lugar do arquivo:
Sitemap: https://example.com/sitemap_index.xml
O protocolo diz que, com um índice, você pode indicar só a localização desse arquivo. A linha faz parte do protocolo sitemaps.org, então não é exclusiva do Google.
Erros comuns e as causas
A maioria dos problemas vem dos filhos, não do arquivo de índice.
- Filho em outro host. Uma mudança de
httpparahttps, ou dewwwpara semwww, deixa URLs antigos no índice. Cadalocprecisa usar o esquema e o host do índice. - URL relativo.
<loc>/post-sitemap.xml</loc>não é válido. O Google informa um URL incompleto. - Filho que responde 404. Um plugin foi desativado, um tipo de conteúdo foi removido ou um cache serve um índice antigo.
- Filho que responde HTML. Uma página de login, uma verificação de segurança ou a página 404 do tema enviada com o status 200. Nosso artigo sobre o status «Não foi possível buscar» mostra como identificar isso com um teste em tempo real.
- Formato de lastmod errado.
15/10/2026não é W3C Datetime. Escreva2026-10-15, ou2026-10-15T14:30:00+00:00com horário e fuso horário. O Google informa «Data inválida». - Índice aninhado. Liste os arquivos que ele contém no lugar dele.
Como ler todos os sitemaps filhos
Abrir cinquenta arquivos um por um é lento. Veja três maneiras de ver todos.
Verificar o arquivo de índice com o verificador de sitemap
Cole o índice no verificador de sitemap gratuito, ou abra o arquivo .xml ou .xml.gz. Ele reconhece um índice e lista cada filho com o seu lastmod em uma tabela «Sitemaps». Ele aponta URLs relativos ou que não são http, datas inválidas, duplicados, filhos em vários hosts, entradas url ou changefreq e priority colocadas em um índice, e arquivos com mais de 50.000 entradas ou 50 MB.
Ele confere só esse arquivo. A página nunca se conecta a outros sites, então não abre os filhos e não consegue saber se algum responde 404 ou HTML. O resultado lembra você de conferir também cada sitemap listado.
Carregar todos os sitemaps filhos com o XMLNest
A extensão XMLNest para Chrome abre um índice publicado na visualização «Leitor». Clique em «Carregar todos os sitemaps filhos» e ela solicita os filhos um de cada vez, com uma linha de progresso e um botão «Cancelar»:
- Só os filhos do mesmo site do índice (mesmo esquema, host e porta) são solicitados. Os outros mostram «Ignorado: em outro site, nunca solicitado».
- Até 50 filhos, de 50 MB cada; os arquivos
.gzsão descompactados. - Redirecionamentos não são seguidos, e um índice aninhado é ignorado.
- Cada falha diz o motivo: o status HTTP, um XML que não está bem formado ou «não é um sitemap» com a tag raiz encontrada, que é como uma página HTML aparece.

Os URLs de todos os filhos carregados vão para uma única tabela, com uma coluna para o arquivo de origem. A aba «Problemas» aplica as regras do verificador de sitemap a cada arquivo e lista os URLs encontrados em dois sitemaps filhos. Nosso artigo sobre como extrair os URLs de um sitemap explica a exportação em CSV e JSON.
Expandir o índice com Python
Esta função lê um índice, segue cada filho do mesmo host, descompacta o gzip e imprime cada URL de página uma única vez. Ela usa só a biblioteca padrão.
import gzip
import sys
import urllib.request
import xml.etree.ElementTree as ET
from urllib.parse import urlsplit
NS = "{http://www.sitemaps.org/schemas/sitemap/0.9}"
def fetch(url):
req = urllib.request.Request(url, headers={"User-Agent": "expand-index/1.0"})
with urllib.request.urlopen(req, timeout=30) as resp:
data = resp.read()
if data[:2] == b"\x1f\x8b": # gzip, seja qual for o nome do arquivo
data = gzip.decompress(data)
return ET.fromstring(data)
def locs(root, entry):
return [el.text.strip() for el in root.findall(f"{NS}{entry}/{NS}loc") if el.text]
def page_urls(index_url):
root = fetch(index_url)
if root.tag == NS + "urlset":
return locs(root, "url")
host = urlsplit(index_url).netloc
pages = []
for child in locs(root, "sitemap"):
if urlsplit(child).netloc != host:
print("skipped, other host:", child, file=sys.stderr)
continue
try:
sub = fetch(child)
except Exception as err:
print("failed:", child, err, file=sys.stderr)
continue
if sub.tag != NS + "urlset":
print("skipped, not a urlset:", child, file=sys.stderr)
continue
found = locs(sub, "url")
print(f"{child}: {len(found)} URLs", file=sys.stderr)
pages.extend(found)
return pages
if __name__ == "__main__":
for url in dict.fromkeys(page_urls(sys.argv[1])):
print(url)
Execute python expand_index.py https://example.com/sitemap.xml > urls.txt. O relatório vai para a tela e os URLs para o arquivo. Rodamos o script em um índice de teste local com cinco entradas. Ele leu dois filhos, um deles compactado com gzip, e retornou os cinco URLs de páginas. Ignorou um índice aninhado e um filho em outro host, e informou “HTTP Error 404” para um arquivo ausente.
Lista de verificação antes do envio
- A raiz é
sitemapindexcom o namespace do sitemaps.org, e cada entrada tem umloccompleto. - No máximo 50.000 entradas e 50 MB sem compactação; nenhum índice dentro de outro.
- Cada filho está no mesmo host e no mesmo esquema do índice, na mesma pasta ou abaixo dela.
- Cada filho responde 200 com XML, e não com um redirecionamento, um 404 ou HTML.
- O
lastmodusa W3C Datetime e muda quando o arquivo muda. - Envie o índice uma vez no Search Console e acrescente uma linha
Sitemap:ao robots.txt.
Dúvidas
Devo enviar o índice ou cada sitemap filho?
Enviar o índice basta: o Google lê os sitemaps listados nele, e a contagem de páginas encontradas do índice soma os URLs de todos os sitemaps filhos. Você também pode enviar um filho separadamente se quiser ver o status dele em uma linha própria.
Um índice de sitemaps pode listar outro índice?
Não. A ajuda do Google diz que um índice pode listar só arquivos de sitemap, e o relatório mostra o erro de índices de sitemap aninhados quando encontra um. Se você tem mais de 50.000 sitemaps, divida-os em vários arquivos de índice e envie cada um.
O lastmod de uma entrada do índice descreve as páginas?
Não. Em um índice de sitemaps, lastmod é a data em que o próprio arquivo de sitemap foi modificado. As datas das páginas ficam nas tags lastmod dos sitemaps filhos.
Fontes
- sitemaps.org: Protocolo (consultada em 29 de outubro de 2026)
- Google Search Central: Gerenciar sitemaps com arquivos de índice (consultada em 29 de outubro de 2026)
- Google Search Central: Criar e enviar um sitemap (consultada em 29 de outubro de 2026)
- Gerenciar sitemaps com o relatório de sitemaps - Ajuda do Search Console (consultada em 29 de outubro de 2026)
- Teste do XMLNest: o script em Python abaixo, executado com o Python 3.14.3 em um índice de exemplo local : Índice com 5 entradas: 2 sitemaps filhos lidos (um compactado com gzip, 5 URLs de páginas no total), 1 índice aninhado ignorado, 1 filho que responde 404, 1 filho em outro host ignorado. (consultada em 29 de outubro de 2026)