私が出荷した最悪の hreflang バグは、Google's インデックスから 4 つの言語バージョンを削除した 1 行のテンプレート変更でした。 head は canonical タグを部分的にレンダリングし、誰かがそれをリファクタリングして、canonical が現在のロケールではなくデフォルトのロケールから構築されるようにしました。翻訳されたすべてのページは、英語ページをその標準として宣言し始めました。 hreflang の注釈は手付かずで、まだ完璧でした。また、インデックスから正規化された URL を提供できないため、まったく無関係でした。
何も壊れなかった。ページはまだ読み込まれていた。英語以外の市場からのトラフィックは約 3 週間で減少した。これは、Google がすべてを再クロールするのにおよそどれくらいの時間がかかったかであり、明らかな時点では、原因は 5 件のコミットバックでした。
Canonical と hreflang は、互いに混同されやすい 2 つの注釈と、互いに打ち消し合う可能性が最も高い 2 つの注釈です。このガイドでは、それぞれの主張、互換性を維持するルール、および間違った特定の組み合わせについて説明します。の下にあります 完全なフレフラングガイド、 の 隣 12 の一般的なフレフラング エラー。
tl;dr: 正準タグ says " of these near-duplicate URLs, index this one." hreflang annotation says "these URLs are localized alternates, serve the right one per user." 互いに矛盾してはならないというルールである。 hreflang は、すべてのページがそれ自体に正規化され、hreflang はそれらの自己正準ページ間の関係を記述する。 canonical は、ある言語バージョンを別の言語バージョンに正規化すると、インデックスから削除され、hreflang セットが無意味になります。なぜなら、canonical はより強力なシグナルだからです。
正規タグは何を主張しますか?
正準タグは、実質的に同じコンテンツを提供するURLのグループの中から優先URLを指名します:
<link rel="canonical" href="https://example.com/pricing" />
同じコンテンツが多くのURLで到達可能だからこそ存在しているのです: トラッキングパラメータの有無、末尾のスラッシュの有無、印刷ビュー、カテゴリパスとダイレクトパスの有無など、放置されたままでは、Googleが1 つを選び、その上にランキングシグナルを集約する正規のタグが、そのピッキングを自分で行う方法です。
この議論には 2 つの特性が重要です。まず、それは a です ヒント、ディレクティブではなく、googleがほとんどの時間に従う強いものですが、.2 番目に、そしてこれは噛む部分です, 非正規の URL は、それ自体でインデックスが付けられなくなります。 彼らの信号は正準に折り畳まれる。 それがタグの要点であり、翻訳に対して行うことはまさに間違ったことである。
フレフラングは何を主張しますか?
フレフラングは全く別の主張をしている:
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/preise" />
それは言う: このページの別のバージョンが存在し、それはドイツのドイツ語話者を対象としており、ここが住んでいる場所です どのURLをインデックス化すべきかについては何も述べていません 代替のすべてはインデックス化されることが期待されています、独立して、それぞれのランキングは独自の市場で行われます。 Hreflangはサーブ時に適用されるルーティングヒントであり、インデックス作成命令ではありません。
2 つを並べて、違いは明確です:
| 正準 | フレフラング | |
|---|---|---|
| 質問してください | これらのURLのうち、インデックスを作成する必要があるのはどれですか? | このユーザーはどのバージョンを見るべきですか? |
| 他のURLへの影響 | それらは個別にインデックス付けされなくなります | それぞれが市場でインデックスに登録されたままです |
| に適用されます | 重複またはほぼ重複するコンテンツ | 翻訳または地域化されたコンテンツ |
| 方向 | 1 人の勝者をポイントします | 対称集合を記述する |
| 強さ | 強い; 通常は続きました | ランキングやサーブタイムに使うヒント |
翻訳されたページは重複しません。これらは、構造的に並行しているさまざまな対象者向けの異なるコンテンツです。言語間の正準言語で重複として扱うことは、以下のすべての障害の根源にあるカテゴリ エラーです。
ルールは?
すべてのページはそれ自体に正規化されます。 Hreflang は、それらの自己正規化ページ間の関係について説明します。
具体的には、英語の価格ページには、次のものがあります:
<link rel="canonical" href="https://example.com/pricing" />
<link rel="alternate" hreflang="en" href="https://example.com/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />
そしてドイツの価格ページには、異なるカノニカルを持つ同一のフレフラングブロックがあります:
<link rel="canonical" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="en" href="https://example.com/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />
両方に同じフレフラングセット、それぞれに自己参照カノニカル それがパターン全体です Googleは、その中に同じ要件を文書化しています ローカライズされたバージョンのガイダンス:注釈は相互的でなければならず、注釈が命名するURLはインデックス付けしたいものでなければならない。
正準が言語を超えて指差すとどうなりますか?
言語バージョンが消えます.
それを通って歩いてください。 フランス語のページには " と書かれています。 me の代わりに英語のページにインデックスを付けます。 " Google は義務を負い、インデックスからフランス語の URL を削除します。 英語のページ' s hreflang は " と言います。フランス語版はこの URL にあります。 " Google はその URL を見て、それがすでに表示されているページに正規化されていることに気づき、フランス語の検索者にサービスを提供するものは何もありません。セットは 1 ページに折りたたまれます。
症状はクロールされ、200 を返し、良い翻訳コンテンツを含み、決してランク付けされない言語版です 検索コンソールではURL検査ツールがインデックス付きではなく別のページの代替として報告します その報告は診断を確認する最速の方法であり、ランク付けされない言語版を追っている場合は、何よりも先に確認してください。
canonical が勝つ理由は、2 つの信号が異なる段階で動作するためです。 canonicalization はインデックス作成中に発生します。 hreflang はランキングとサービング中に参照されます。 index に決して入力されない URL は、後の段階では利用できません。
1 つの言語内のパラメーターと重複に近いものはどうでしょうか?
ここで、両方の信号が同時に正常に動作し、レイヤーをまっすぐに保つ限り、組み合わせは問題ありません。
ドイツの価格ページには次のアドレスからアクセスできます /de/preise あんど /de/preise?utm_source=newsletter。パラメータ化された URL は正規化されます /de/preise、これは正しい: それらは1 つの言語内の本物の重複である。 hreflangセットは1 つのレベルアップ、間を作動させる /pricing、 /de/preise、そして /fr/tarifs、そしてそれはそれぞれの正準形式のみを命名します。
これをきれいに保つ2 つのルール:
- Hreflang は常に正規の URL に名前を付けます。 パラメータ化された URL やその他の非正規 URL に注釈を決して向けないでください。正規バージョンがブロックを運ぶものであるため、その URL の戻りタグは一致しません。
- 言語内で正規化することはなく、決して横切ってはなりません。 パラメータ、印刷ビュー、セッションURL、すべて問題ありません。別の言語、決してありません。
同じロジックで、ページネーション、ファセットURL、その他の重複メカニズムもカバーします。言語内で解決し、解決されたセットをhreflangに記述させます。
hreflang は、地域間でコンテンツが重複する場合に役立ちますか?
部分的には、この区別は誇張されることが多いため、正確に説明する価値があります。
Hreflang は重複排除しません。米国と英国の英語ページの類似性を無視するように Google に指示しません。その内容は、それらのページが意図的な地域バリアントであり、Google が類似性を処理する方法を変更すると通知することです。一方を選択して他方をフィルタリングする代わりに、両方を保持し、クエリごととユーザーごとに選択します。
それが同じ言語、マルチリージョンのサイトにとって実用的な利点であり、それらのサイトがマルチ言語サイトよりも緊急にフレフランジを必要とする理由です 異なる言語の2 ページは明らかに異なる文書です 価格とスペルが異なる英語の2 ページは、クローラーとは明らかに異なり、注釈がなければ、それらの1 つが失われます。
地域ページが本当に同一であれば、一言一句、正直な答えは、個別のページはまったく必要ないかもしれないということです。 Hreflang は、重複に近いコンテンツを正当化する方法ではありません。市場によって正当に区別されるコンテンツを説明する方法です。
どのように2 つを一緒に監査しますか?
両方の注釈を抽出するクロールは、1 回のパスでこれに答えます。 URL ごとに、次の 2 つの事実が必要です。その正規分布は独自の URL と等しいか、そのフレフラング セットはその兄弟と一致するか'。正規分布で並べ替え、複数の URL が異なる言語パスを介して 1 つの正規分布を共有するグループを探します。そのグループ化はバグであり、一目でわかります。
1 ページの場合、 curl それと両方のタグを一緒に読みます:
curl -s https://example.com/de/preise | grep -E 'rel="(canonical|alternate)"'
あなたがチェックしているのは、それが正規のものであるということです href は、あなたが今フェッチした URL であり、hreflang ブロックには、同じ URL を指すこのページ's 独自のロケールのエントリが含まれていることです。これら 2 つの事実が一貫していることが、ほとんどの戦いです。
次に、フレフラング ターゲット自体が自己正規であることを確認します。ターゲットの 1 つが別の場所で正規化されるため、セットは完全に相互的であり、それでも失敗する可能性があります。これは、この記事の上部にある失敗と、見ているページから見えない失敗です。
カノニカルとサイトマップはどうですか?
同じ原理、拡張.サイトマップは正規の,インデックス可能なURLのみをリストするべきである.サイトマップが hreflang 注釈を として運ぶ場合, xhtml:link エントリ、それらのエントリには、HTML と同じ正規 URL の名前が付けられます。
ここでの失敗モードは、インデックス可能なURLセットからではなく、ルートテーブルから生成されたサイトマップであるため、パラメータ化されたバリアントまたは非正規バリアントが実際のバリアントと並んでリストされます。 Googleはサイトマップの包含を弱い正規化ヒントとして扱うため、正規タグと同意しないサイトマップは、もう1 つの矛盾した信号です XML サイトマップ ジェネレーター 現在何が入っているかがわからない場合に、クリーン リストを再構築する簡単な方法です フレフラングジェネレータツール マッチングを生成します xhtml:link サイトマップ形式でブロックします.
よくある質問
フレフランと正準の違いは何ですか?
canonicalタグは、重複に近いいくつかのurlのどれをインデックス化すべきかを指名します。 hreflangアノテーションは、いくつかのurlがローカライズされた代替であることを宣言し、検索エンジンがユーザーごとに適切なものを提供するのに役立ちます。 canonicalは統合します; hreflangは区別します。
各言語バージョンはそれ自体に正規化する必要がありますか?
はい。 hreflang セット内のすべてのページには自己参照標準が必要です。翻訳されたページを別の言語に正規化すると、インデックスから削除され、hreflang セットは役に立たなくなります。
フレフランと正準が一致しない場合、どの信号が勝ちますか?
正準、事実上。正準化はインデックス作成時に発生し、フレフラング注釈が何と言おうと、インデックス化されていない URL は誰にでも提供できません。
多言語サイトで正規のタグをまったく使用できますか?
はい、そうすべきです。トラッキングパラメータや印刷ビューなど、言語内の重複を解決するために使用します。言語間で使用しないでください。
hreflangは、米国と英国のページ間の重複コンテンツを修正しますか?
重複を推定するものではありませんが、ページが偶発的な重複ではなく意図的な地域バリアントであることを Google に伝えるため、インデックスが付けられ続け、市場ごとに適切なページが提供されることが、同じ言語のマルチリージョン サイトにフレフランジが必要な主な理由です。
hreflang は正規の URL を指す必要がありますか?
常に。パラメータ化された URL または非正規 URL に注釈を向けると、ブロックは名前を付けたバリアントではなく正規バージョン上に存在するため、戻りタグが破られます。
正規版が言語版を殺しているかどうかをどうやって判断すればよいですか?
検索コンソール' s URL 検査ツールを通じて URL を実行します。ページがインデックス付きではなく別の URL の代替として報告される場合、言語間の正規表現が原因となります。
サイトマップの URL は正規のタグと一致する必要がありますか?
はい。 sitemaps should list canonical, indexable URLs only.非正規バリアントをリストするサイトマップは、すでに発しているタグの上に矛盾するシグナルを追加します。



