XML Sitemap: como criar, validar e enviar

Como montar um sitemap com as URLs canônicas finais, validar as entradas e usar o arquivo junto com os links internos e o robots.txt.

Um sitemap XML é uma lista de URLs legível por máquina que ajuda os buscadores a descobrir as páginas que você quer considerar. Ele complementa os links internos rastreáveis, mas não garante a indexação. Inclua apenas URLs finais e canônicas, que sigam a política de indexação do site.

O protocolo sitemaps.org foi lançado em 2005 — o Google o adotou primeiro, e o Yandex, um ano depois. Hoje, todos os principais buscadores suportam o padrão.

Como o Googlebot usa um sitemap: ele recebe a lista de URLs diretamente e rastreia as páginas sem precisar percorrer os links internos.

O que é um sitemap XML e por que você precisa dele

Um bot de busca descobre páginas de duas formas: seguindo links internos e lendo sitemaps. O rastreamento por links funciona bem em páginas que recebem muitos links de entrada. Mas páginas sem nenhum link, conteúdos publicados recentemente ou seções com linkagem interna fraca podem passar despercebidas ou ser descobertas devagar demais. É exatamente nesses casos que o sitemap ajuda.

Acelera o rastreamento

O bot recebe a lista de URLs diretamente e não precisa percorrer os links internos página por página.

Sinaliza atualizações

O atributo lastmod informa ao buscador que a página mudou e precisa ser rastreada de novo.

Suporta sites multilíngues

Com xhtml:link, você declara as relações de hreflang diretamente no sitemap, sem duplicar tags no HTML.

Sitemaps são especialmente úteis para: sites novos sem links de entrada; sites grandes (milhares de páginas); páginas com conteúdo de mídia rica (imagens, vídeos); sites multilíngues com hreflang.

Estrutura básica do arquivo

Um sitemap mínimo válido é um arquivo XML com declaração de codificação, um elemento raiz urlset e elementos url dentro dele. Cada url precisa ter pelo menos um atributo obrigatório: loc.

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2026-05-15</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/about</loc>
    <lastmod>2026-04-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://example.com/blog/article-slug</loc>
    <lastmod>2026-05-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.75</priority>
  </url>
</urlset>

O arquivo deve estar codificado em UTF-8. Caracteres especiais nas URLs são escapados conforme as regras do XML: & vira &amp;, e < vira &lt;. Um único arquivo de sitemap é limitado a 50.000 URLs e 50 MB sem compactação.

Atributos: loc, lastmod, changefreq, priority

AtributoObrigatórioFormatoDescrição
locSimURL absolutaEndereço completo da página, incluindo protocolo e domínio. Máximo de 2.048 caracteres.
lastmodNãoW3C Datetime (YYYY-MM-DD)Data da última modificação. O Google só confia nesse valor quando ele é estável e preciso.
changefreqNãoalways / hourly / daily / weekly / monthly / yearly / neverDica sobre a frequência de atualização. O Google usa como um sinal, mas não segue esse valor à risca.
priorityNão0.0 – 1.0Importância relativa da URL dentro do seu site. Não afeta o ranqueamento nos resultados de pesquisa.

loc — o único atributo obrigatório

A URL precisa ser absoluta e corresponder ao que o servidor realmente responde: se a página é servida por HTTPS, o loc deve usar HTTPS. Se o site usa www, o loc deve incluir www. Qualquer divergência entre o loc e o endereço real faz o Google ignorar a entrada.

lastmod — o atributo opcional mais valioso

A data precisa refletir mudanças reais no conteúdo, e não ajustes de template nem a regeneração do sitemap. Se você atualiza o lastmod a cada deploy sem mudar o conteúdo, o Google deixa de confiar no campo e o ignora. Formatos aceitos: 2026-05-15, 2026-05-15T10:30:00+03:00, 2026-05-15T07:30:00Z.

Não coloque automaticamente a data de hoje em cada build. A data só deve mudar quando o conteúdo principal da página mudar de fato.

changefreq — uma dica, não uma diretiva

O changefreq não controla a programação do rastreador: é apenas uma dica. O Google declara oficialmente que usa o valor como um dos muitos sinais. O Yandex também trata o campo como informativo. Padrões práticos: página inicial — daily, posts do blog — monthly, páginas legais — yearly.

priority — importância relativa dentro do site

A prioridade de 0.0 a 1.0 informa ao buscador quais páginas você considera mais importantes, sempre em relação ao seu próprio site, e não na comparação com outros sites. Definir 1.0 para todas as páginas não faz sentido: o buscador entende isso como ausência de priorização. Um esquema razoável: página inicial 1.0, hubs de seção 0.85, artigos e produtos 0.7–0.75, páginas utilitárias 0.5.

Sitemap Index: quando um arquivo não basta

Se você tem mais de 50.000 páginas ou se o arquivo passa de 50 MB, precisa de um Sitemap Index. Trata-se de um arquivo XML que referencia sitemaps filhos, e não URLs diretamente. Cada arquivo filho é um urlset comum, limitado a 50.000 entradas.

xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemap/blog.xml</loc>
    <lastmod>2026-05-15T00:00:00Z</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap/products.xml</loc>
    <lastmod>2026-05-14T00:00:00Z</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap/static.xml</loc>
    <lastmod>2026-04-01T00:00:00Z</lastmod>
  </sitemap>
</sitemapindex>

Você pode dividir por tipo de conteúdo (blog, produtos, páginas estáticas) ou por locale (ru.xml, en.xml). As duas abordagens são válidas. Dividir por locale facilita acompanhar a indexação de cada idioma separadamente.

No robots.txt basta listar apenas o Sitemap Index raiz: você não precisa listar cada arquivo filho separadamente. O buscador encontra os filhos pelo índice.

Sitemap de imagens

Imagens podem aparecer no Google Imagens e trazer tráfego adicional. Para ajudar o rastreador a encontrá-las e entendê-las, adicione a extensão de imagem ao seu urlset comum. Cada entrada url pode conter até 1.000 imagens.

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://example.com/gallery/city</loc>
    <image:image>
      <image:loc>https://example.com/images/city-skyline.jpg</image:loc>
      <image:title>City skyline at sunset</image:title>
      <image:caption>Downtown panorama taken from the observation deck, 2025</image:caption>
      <image:geo_location>New York, USA</image:geo_location>
      <image:license>https://creativecommons.org/licenses/by/4.0/</image:license>
    </image:image>
  </url>
</urlset>
Atributos da tag <url> e valores permitidos:
TagObrigatórioDescrição
image:locSimURL absoluta da imagem. Pode estar em outro domínio, por exemplo em um CDN.
image:titleNãoTítulo da imagem. Equivale ao atributo title da tag img.
image:captionNãoLegenda da imagem. Equivale ao atributo alt da tag img.
image:geo_locationNãoLocalização geográfica do assunto na imagem.
image:licenseNãoURL da licença da imagem.

As imagens no sitemap não substituem o atributo alt no HTML: as duas coisas funcionam juntas. O sitemap ajuda o rastreador a descobrir a imagem; o alt descreve o significado dela.

Sitemap de vídeos

Um sitemap de vídeos permite que seu conteúdo apareça na pesquisa de vídeos do Google e em resultados avançados com prévia do vídeo. O namespace é video.

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://example.com/tutorials/getting-started</loc>
    <video:video>
      <video:thumbnail_loc>https://example.com/thumbnails/tutorial-1.jpg</video:thumbnail_loc>
      <video:title>Getting started with the product</video:title>
      <video:description>Step-by-step guide for first-time users</video:description>
      <video:content_loc>https://example.com/videos/tutorial-1.mp4</video:content_loc>
      <video:duration>183</video:duration>
      <video:publication_date>2026-03-10T12:00:00+00:00</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
    </video:video>
  </url>
</urlset>

video:duration é informado em segundos. video:content_loc precisa apontar para um arquivo reproduzível (mp4, webm), e não para uma página de player. Para vídeos hospedados no YouTube ou no Vimeo, use video:player_loc no lugar de video:content_loc.

Sitemap de notícias

O Google News Sitemap é um formato especial para editores que participam do Google Notícias. Ele inclui apenas artigos publicados nas últimas 48 horas. Conteúdos mais antigos não devem entrar: eles saem automaticamente do índice de notícias.

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
  <url>
    <loc>https://example.com/news/tech-breakthrough-2026</loc>
    <news:news>
      <news:publication>
        <news:name>Example Daily</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-05-15T09:00:00+00:00</news:publication_date>
      <news:title>Technology breakthrough set to transform the industry</news:title>
    </news:news>
  </url>
</urlset>
O formato News Sitemap não serve para blogs comuns. Ele é feito exclusivamente para editores de notícias aprovados pelo Google News. Usar o formato sem participar do programa não traz nenhum benefício.

Localização: hreflang no sitemap

Se o seu site existe em vários idiomas ou para várias regiões, você precisa conectar as páginas correspondentes com hreflang. Isso pode ser feito de três formas: com tags link rel no HTML, com cabeçalhos HTTP Link ou diretamente no sitemap. A abordagem pelo sitemap é a mais prática para sites grandes, porque não exige mudanças nos templates das páginas.

No sitemap, o hreflang é declarado pelo namespace xhtml. Cada página deve aparecer como uma entrada url, e cada entrada deve listar todas as variantes de idioma, incluindo a própria página.

xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <!-- Russian version -->
  <url>
    <loc>https://example.com/blog/seo-guide</loc>
    <xhtml:link rel="alternate" hreflang="ru" href="https://example.com/blog/seo-guide"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/blog/seo-guide"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/blog/seo-guide"/>
  </url>
  <!-- English version -->
  <url>
    <loc>https://example.com/en/blog/seo-guide</loc>
    <xhtml:link rel="alternate" hreflang="ru" href="https://example.com/blog/seo-guide"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/blog/seo-guide"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/blog/seo-guide"/>
  </url>
</urlset>

O valor x-default indica a página padrão, aquela exibida para usuários que não correspondem a nenhuma configuração de idioma explícita. Normalmente, é a versão no idioma principal do site.

Regra de reciprocidade: se a página A referencia a página B via hreflang, a página B precisa referenciar a A de volta. Declarações hreflang unilaterais são tratadas como erro pelo Google e ignoradas.
Código hreflangUso
ruIdioma russo, qualquer região
enIdioma inglês, qualquer região
en-USInglês, região Estados Unidos
ru-RURusso, região Rússia
x-defaultPágina padrão para idioma ou região não definidos

Robots.txt: uma linha basta

Para que o buscador saiba onde está o seu sitemap, basta adicionar uma única diretiva Sitemap no robots.txt. Se você usa um Sitemap Index, aponte para ele. O rastreador descobre todos os arquivos filhos pelo índice automaticamente.

text
User-agent: *
Disallow: /admin/
Disallow: /api/
Allow: /

Sitemap: https://example.com/sitemap.xml

Se você tem vários arquivos de índice raiz (por exemplo, um para ru e outro para en), pode listar várias diretivas Sitemap:

text
Sitemap: https://example.com/sitemap/index-ru.xml
Sitemap: https://example.com/sitemap/index-en.xml
Além do robots.txt, envie o sitemap no Google Search Console (seção Sitemaps) e no Yandex Webmaster (Indexação → Arquivos Sitemap). Isso acelera o processamento inicial e dá estatísticas sobre as URLs descobertas e indexadas.

Documentação do Google e do Yandex

Documentação oficial do Google sobre sitemaps

Documentação oficial do Yandex Webmaster sobre sitemaps

O Yandex oferece suporte ao padrão sitemaps.org e, além disso, à extensão para notícias. O Yandex lê changefreq e priority, mas recomenda focar em um lastmod preciso, que é mais importante para o novo rastreamento de páginas alteradas.

Checklist

  • O arquivo está em UTF-8, com <?xml version="1.0" encoding="UTF-8"?> na primeira linha
  • Todas as URLs são absolutas (com protocolo e domínio) e correspondem à canonical real
  • HTTPS no loc quando o site é servido por HTTPS
  • O lastmod reflete a data real de mudança do conteúdo, e não a data do build
  • O arquivo não ultrapassa 50.000 URLs nem 50 MB sem compactação
  • Em sites grandes, use um Sitemap Index com arquivos filhos
  • Para páginas multilíngues, use xhtml:link com hreflang, incluindo x-default
  • Para conteúdo de mídia, use as extensões adequadas (image, video, news)
  • O robots.txt contém uma diretiva Sitemap com URL absoluta
  • O sitemap foi enviado no Google Search Console e no Yandex Webmaster
  • Páginas com noindex não entram no sitemap
  • Páginas cujo canonical aponta para outra URL não entram no sitemap

FAQ

O sitemap é obrigatório para um site pequeno?
Tecnicamente, não. Se o site tem boa linkagem interna e todas as páginas são alcançáveis a partir da página inicial, o bot as encontra sozinho. Mas um sitemap sempre ajuda: ele acelera o rastreamento e dá controle sobre o que é indexado.
As páginas com noindex devem entrar no sitemap?
Não. Páginas com a meta tag noindex ou com X-Robots-Tag: noindex não devem entrar no sitemap, porque a contradição confunde os buscadores. Inclua apenas as páginas que você quer ver indexadas.
A priority afeta o ranqueamento nos resultados de pesquisa?
Não. A priority é uma dica de priorização do rastreamento dentro do seu site, não um sinal de ranqueamento. Ela ajuda o bot a decidir quais páginas visitar com mais frequência, mas não afeta a posição nos resultados de pesquisa.
Com que frequência o sitemap deve ser atualizado?
Sempre que páginas forem adicionadas ou removidas. Em sites dinâmicos (blog, e-commerce), o ideal é regenerar o sitemap automaticamente no build. Sites estáticos o atualizam manualmente quando a estrutura muda.
Quantos sitemaps podem ser listados no robots.txt?
O padrão não limita o número de diretivas Sitemap no robots.txt. Mas a melhor prática é um único Sitemap Index, a partir do qual Google e Yandex encontram todos os outros arquivos.

Check it with SpiderHead

Free and local: run the audit on your own machine.

Try it