web-dev-qa-db-ja.com

2020年に、XMLサイトマップを使用して国際的なサイトを記述する確立されたアプローチはありますか?

私は10年間XMLサイトマップを作成してきましたが、-国際サイトのXMLサイトマップを作成する必要がありませんでした。

私には、3つの明確なアプローチがある(そして、さらに優れたアプローチがあるかもしれません)と思います。

アプローチ1:単一のXMLサイトマップ(主要言語のURLのみ、対応するページを含む)

<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>

アプローチ2:単一のXMLサイトマップ(all関連するURL、対応するページ)

<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>

アプローチ3:MultipleXMLサイトマップ(各言語に対応するURLと対応するページ)

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>

Webで利用できるアドバイスの多くは2010年代前半のものです。

202では、XMLサイトマップを使用して国際的なサイトを記述する確立されたアプローチはありますか?

1
Rounin

答えはすべてここにあります:

注意すべき最も重要な2つのポイントは次のとおりです。

各言語バージョンは、それ自体と他のすべての言語バージョンをリストする必要があります。

そして

2つのページが互いにポイントしていない場合、タグは無視されます。これは、別のサイトの誰かが自分のページの代替バージョンとして自分自身を命名するタグを勝手に作成できないようにするためです。

これは示唆しています:

  • アプローチ1は間違いです
  • アプローチ2ほぼ正しいですが、すべての要件を満たすために拡張する必要があります
  • アプローチ3も同様に正当です、それがすべての要件を満たすように同様に拡張された場合

Googleは次の例を示します。

<url>
    <loc>http://www.example.com/english/page.html</loc>
    <xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link rel="alternate" hreflang="de-ch" href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/english/page.html"/>
</url>

<url>
  <loc>http://www.example.com/deutsch/page.html</loc>
  <xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/deutsch/page.html"/>
  <xhtml:link rel="alternate" hreflang="de-ch" href="http://www.example.com/schweiz-deutsch/page.html"/>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/english/page.html"/>
</url>

<url>
  <loc>http://www.example.com/schweiz-deutsch/page.html</loc>
  <xhtml:link rel="alternate" hreflang="de" href="http://www.example.com/deutsch/page.html"/>
  <xhtml:link rel="alternate" hreflang="de-ch" href="http://www.example.com/schweiz-deutsch/page.html"/>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/english/page.html"/>
</url>

これは、Approach 2の拡張バージョンがすべての要件を満たすことを意味します。

<url>
  <loc>https://example.com/example-page-1/</loc>
  <xhtml:link rel="alternate" hreflang="en" href="https://example.com/example-page-1/" />
  <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="en" href="https://example.com/example-page-2/" />
  <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="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/de/beispielseite-2/</loc>
  <xhtml:link rel="alternate" hreflang="en" href="https://example.com/example-page-2/" />
  <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>
1
Rounin