Multilingual sitemap

How to build a multilingual sitemap that search engines can use

Learn how to include localized static and dynamic URLs, language alternates, last-modified dates, and supplemental translation sitemaps in a multilingual site.

Resposta curta

A multilingual sitemap should describe the URLs your site actually serves. For dynamic products, articles, and documentation, generate one entry per language version and keep alternate-language relationships consistent with the page head.

/ 01

Fonte da verdade

Comece pelo mapa do site pertencente ao próprio site.

O sitemap da sua aplicação deve conter todos os URLs públicos canónicos, incluindo páginas dinâmicas. Considere-o como a fonte de verdade para tudo o que está ativo, indexável e que vale a pena descobrir.

  • Use the same public origin as the pages.
  • Include updated timestamps from the source record when possible.
  • Do not include preview, authenticated, or redirected URLs.
Site-owned sitemap
export default function sitemap() {
  return publicPages.map((page) => ({
    url: `https://example.com${page.path}`,
    lastModified: page.updatedAt,
  }));
}
/ 02

Versões em línguas

Adicionar URLs localizados e alternativos

O Next.js pode gerar links alternativos de idioma a partir das entradas do sitemap. Para cada página de origem, mapeie o conjunto completo de URLs de idioma publicados e mantenha o mapeamento estável em todas as versões.

  • Use the same content identity across languages.
  • Exclude a locale until its page is actually published.
  • Keep the canonical URL and sitemap URL consistent.
Localized sitemap entries
export default async function sitemap() {
  const products = await getPublicProducts();
  const locales = ["en", "fr", "de"];

  return products.flatMap((product) => locales.map((locale) => ({
    url: `https://example.com/${locale}/products/${product.slug}`,
    lastModified: product.updatedAt,
    alternates: {
      languages: Object.fromEntries(locales.map((language) => [
        language, `https://example.com/${language}/products/${product.slug}`
      ])),
    },
  })));
}
/ 03

Grandes sites

Dividir mapas do site sem dividir a propriedade

Os sites de grande dimensão podem utilizar índices e fragmentos de sitemaps por localidade, tipo de conteúdo ou intervalo de registos. O índice deve apontar para sitemaps filhos acessíveis, e cada filho deve permanecer abaixo dos limites dos motores de busca.

  • Use deterministic shard names.
  • Keep one clear index route.
  • Monitor child sitemap response codes and XML validity.
/ 04

workflow Altified

Utilize o mapa do site complementar para as descobertas traduzidas.

Altified pode gerar um sitemap suplementar contendo URLs em idiomas adicionais a partir do sitemap existente do seu site. Não substitui o sitemap do site e não adiciona hreflang às páginas por si só; a sua aplicação ainda precisa de metadados recíprocos.

  • Keep /sitemap.xml complete and site-owned.
  • Publish /altified-sitemap.xml after target locales and routes exist.
  • Submit both sitemaps or list both in robots rules.

Lista de verificação de produção

Verifique a compatibilidade com o idioma antes de iniciar o projeto.

  • The canonical site sitemap returns 200.
  • Every dynamic page is represented.
  • Language URLs are real and indexable.
  • Alternate-language mappings are reciprocal.
  • Sitemap index children are reachable.
  • The Altified supplemental sitemap is submitted separately when used.

Perguntas frequentes

Perguntas que as equipas fazem antes de implementar SEO multilingue.

What is a multilingual XML sitemap?

É um sitemap que ajuda os motores de busca a descobrir URLs localizados, incluindo opcionalmente relações alternativas de idioma XHTML para cada URL de conteúdo.

Does a sitemap replace hreflang tags?

Não. Um sitemap pode fornecer relações entre idiomas, mas o HTML da página ainda deve expor metadados hreflang recíprocos consistentes quando isso fizer parte da implementação do site.

Should the translated sitemap replace the main sitemap?

Não. Mantenha o sitemap original do site como fonte principal e utilize um sitemap traduzido complementar apenas para adicionar URLs de idiomas que ainda não estejam presentes.