I've been writing XML Sitemaps for a decade, but I've never before needed to write an XML Sitemap for an international site.
It occurs to me that there are three clear approaches (and there may be additional, even better approaches).
Approach 1 : Single XML Sitemap (primary language URLs only, with corresponding pages)
<url>
<loc>https://example.com/example-page-1/</loc>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/beispielseite-1/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/example-page-1/" />
</url>
<url>
<loc>https://example.com/example-page-2/</loc>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/beispielseite-2/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/example-page-2/" />
</url>
Approach 2 : Single XML Sitemap (all relevant URLs, with corresponding pages)
<url>
<loc>https://example.com/example-page-1/</loc>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/beispielseite-1/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/example-page-1/" />
</url>
<url>
<loc>https://example.com/example-page-2/</loc>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/beispielseite-2/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/example-page-2/" />
</url>
<url>
<loc>https://example.com/de/beispielseite-1/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/example-page-1/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/example-page-1/" />
</url>
<url>
<loc>https://example.com/de/beispielseite-2/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/example-page-2/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/example-page-2/" />
</url>
Approach 3: Multiple XML Sitemaps (relevant URLs listed for each language, with corresponding pages)
sitemap-en.xml:
<url>
<loc>https://example.com/example-page-1/</loc>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/beispielseite-1/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/example-page-1/" />
</url>
<url>
<loc>https://example.com/example-page-2/</loc>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/beispielseite-2/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/example-page-2/" />
</url>
sitemap-de.xml:
<url>
<loc>https://example.com/de/beispielseite-1/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/example-page-1/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/example-page-1/" />
</url>
<url>
<loc>https://example.com/de/beispielseite-2/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/example-page-2/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/example-page-2/" />
</url>
Much of the advice available on the web is from the first half of the 2010s.
In 2020, is there an established approach to describe an international site using XML sitemaps?