2011-07-22 18 views
4

私は現在、複数の言語をサポートするASP.NET MVC 3 Webアプリケーションを作成しています。同じコントローラ/アクションへ
www.mysite.de/Kontaktwww.mysite.de/Contact意志ルート: は、私はすでに通話などのように、すべてのルートを変換するために管理しました。ASP.NET MVC 3多言語SEO

www.mysite.deを呼び出すと、(セッションオブジェクトに格納された)言語が自動的に既定の言語(ここではドイツ語)に設定されるようになっています。それに応じて、サイトのナビゲーションが動的に設定されます。
セッションオブジェクト内の言語は、「英語版」リンクをクリックするか、手動で電話をかけるなどして変更できます。 www.mysite.de /連絡先。この場合、リンク(/ Contact)は英語として定義された のルートと一致するので、セッションオブジェクトの言語を英語に変更します。もちろん、サイトのコンテンツもローカライズされています。

今私の質問は、SEO、特にGoogleとどのように協力しているのですか? すでにContent-Languageメタタグを各ページに動的に追加しています。だから私は適切なsitemap.xmlで十分だと思う。
Googleはこれを正しく認識していますか?ドイツ語でGoogleを検索して、結果として「Kontakt」、英語で検索するときに「Contact」と表示されますか?

別の問題は、異なる言語でリンクが同じ場合どうなりますか?例えば。 "Jobs"へのリンクは、ドイツ語と同じように英語でも同じです。

私の問題はかなり複雑であるため、質問が理解できることを願っています。
乾杯、
サイモン

答えて

2

Googleが唯一のあなただけのそれらをほのめかす、あなたのサイトがであるどのような言語あなたがそれらを伝えるには依存しません。 ページは分析され、コンテンツの言語に基づいて「ドイツ語」のページまたは「英語」のページとして表示されます。

あなたの基本的な仮定は正しいです。
はい、あなたのページをドイツ語で検索し、Googleがそのページをドイツ語のページとして索引付けしている場合、GoogleはKontaktを返します。

2番目の質問では、パス(クエリ文字列またはブラウザ設定の言語)以外の言語を変更する別の方法を指定しない限り、それらのリンクは既定(ドイツ語)言語のみになります。
英語で表示したい場合は、別の追加URL、Jobs-ENを使用してください。これは、あなたのSiteMap.xml(およびルート)にのみ含まれています。

+0

[OK]を、ありがとうございました。しかし、あなたが言ったように、Googleはまた、ページ自体の内容を分析します。 Googleが訪問した前のページに応じて、ページ/ジョブが両方の言語で存在することをGoogleが認識しないか? Googleがページ/ Kontaktを訪問することを示唆します。/ Kontaktは/セッションへのリンクであり、保存された言語(ドイツ語)は変更されず、変更されません。その後、Googleが/ Jobsへのリンクをたどります(現在は英語)。したがって、Googleは両方の/ジョブページを持っています。英語で1つ、ドイツ語で1つ。 –

+2

前のページのセッション状態を持つクローラボットに頼るべきではありません。 Google自身が[ウェブマスター向けガイドライン](http://www.google.com/support/webmasters/bin/answer.py?hl=ja&answer=35769)に記載されているとおり、「検索ボットがセッションIDなしでサイトをクロールできるようにするか、サイトを通して彼らの道を追跡する議論。 – RickardN

0

別の問題は、 異なる言語のリンクが同じ場合はどうなりますか?例えば。 "Jobs"へのリンクは でもドイツ語のように英語でも同じです。

次の例のように、あなたのURLの一部として、言語を持つ検討するかもしれない:

  • www.mysiteを。デ/デ/お問い合わせ先
  • www.mysite.de/en-us/Contact
  • www.mysite.de/en-gb/Contact