web-dev-qa-db-ja.com

ページ上のマークアップとサイトマップの多言語

私は持っています:

  • example.com/en/product-a-en
  • example.com/es/product-a-es
  • example.com/ru/product-a-ru

これを使用する場合:

ページ上のマークアップHTMLタグでlang属性を使用します:<html lang="en">

relalternateを使用して、Googleが推奨する他の言語の同じページにリンクします。

<link rel="alternate" hreflang="en"
      href="http://www.example.com/en/product-a-en" />

<link rel="alternate" hreflang="es"
      href="http://www.example.com/es/product-a-es" />

<link rel="alternate" hreflang="ru"
      href="http://www.example.com/ru/product-a-ru" />

各langパスexample.com/lang-pathにGoogleサイトマップを送信する必要がありますか?または、英語のサイトマップサブディレクトリ(example.com/en/)を送信するだけで、HTMLを見て「オーケー、多言語で、他の言語だけのサイトマップを作成しますか?」

私は17の言語と2000以上のリンクを持っているので、私は尋ねています。

最善かつ簡単な方法にする方法はありますか?

1
Helio Elio

すべての言語で行うのが最善です。 (参照: hreflang:Yoastの究極のガイド

以下に、例のサイトマップxmlファイルを示します。

<url>
  <loc>http://www.example.com/</loc>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/en/"/>
  <xhtml:link rel="alternate" hreflang="es" href="http://www.example.com/es/"/>
  <xhtml:link rel="alternate" hreflang="ru" href="http://www.example.com/ru/"/>
</url>
<url>
  <loc>http://www.example.com/en/</loc>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/en/"/>
  <xhtml:link rel="alternate" hreflang="es" href="http://www.example.com/es/"/>
  <xhtml:link rel="alternate" hreflang="ru" href="http://www.example.com/ru/"/>
</url>
<url>
  <loc>http://www.example.com/es/</loc>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/en/"/>
  <xhtml:link rel="alternate" hreflang="es" href="http://www.example.com/es/"/>
  <xhtml:link rel="alternate" hreflang="ru" href="http://www.example.com/ru/"/>
</url>
<url>
  <loc>http://www.example.com/ru/</loc>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/en/"/>
  <xhtml:<link rel="alternate" hreflang="es" href="http://www.example.com/es/"/>
  <xhtml:link rel="alternate" hreflang="ru" href="http://www.example.com/ru/"/>
</url>
<url>
  <loc>http://www.example.com/product</loc>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/en/product"/>
  <xhtml:link rel="alternate" hreflang="es" href="http://www.example.com/es/product"/>
  <xhtml:link rel="alternate" hreflang="ru" href="http://www.example.com/ru/product"/>
</url>
<url>
  <loc>http://www.example.com/en/product</loc>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/en/product"/>
  <xhtml:link rel="alternate" hreflang="es" href="http://www.example.com/es/product"/>
  <xhtml:link rel="alternate" hreflang="ru" href="http://www.example.com/ru/product"/>
</url>
<url>
  <loc>http://www.example.com/es/product</loc>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/en/product"/>
  <xhtml:link rel="alternate" hreflang="es" href="http://www.example.com/es/product"/>
  <xhtml:link rel="alternate" hreflang="ru" href="http://www.example.com/ru/product"/>
</url>
<url>
  <loc>http://www.example.com/ru/product</loc>
  <xhtml:link rel="alternate" hreflang="en" href="http://www.example.com/en/product"/>
  <xhtml:link rel="alternate" hreflang="es" href="http://www.example.com/es/product"/>
  <xhtml:link rel="alternate" hreflang="ru" href="http://www.example.com/ru/product"/>
</url>

必要に応じて、サイトでカバーされていない言語のx-defaultを追加できます。

<xhtml:link rel="alternate" hreflang="x-default" hreflang="http://www.example.com/en/"/>

これをすべてのページ(urlタグ内)に追加する必要があります。

1
x21

私の見方では、sitemap.xmlを使用して、最もクロールするURLをロボットに伝えます。 Googlebotや他のクローラーがあなたが望むようにあなたのサイトをナビゲートするのに役立ちます。代替言語のページをクロールしてインデックスを作成することを優先する場合は、英語のページのみを介してサイトマップに追加すると、クロールの優先順位付けに役立ちます。

それらをサイトマップに追加しない場合、特にrel = "nofollow"属性なしでリンクされている場合、Googleは言語の代替ページを検出してクロールできるはずです。

ただし、サイトマップに現在すべての英語ページがあり、代替言語ページをより頻繁にクロールする場合は、サイトマップに追加することを強く検討する必要があります。そうしないと、Googlebotや他のクローラが、サイトマップ内の英語のページを他の言語のページよりも優先させることになります。

0
Michael d