私が最初に発送した国際サイトには 11 の言語バージョンがあり、フレフランはゼロでした。トラフィックは全体的に順調に見えたので、何ヶ月も誰もそれに疑問を持ちませんでした。その後、ベルリンの同僚が google.de で当社の製品を検索し、英語のページを取得しました。ドイツ語ではありません。ドイツ語は存在し、インデックスが付けられ、英語のオリジナルよりもよく書かれていました。Google にはそれを好む理由がなかったので、Twitter で 2 年間英語で宣伝していたバージョンよりも、それを指すリンクが最も多いバージョンが提供されました。
それが失敗モードです hreflangは防ぐために存在し、それはあなた自身の市場の内側から見えません あなたはあなた自身の国からあなた自身の言語で検索し、正しいページを取得し、すべてがうまくいくと結論付けます 間違ったページを取得する人々は、彼らがバウンスしたので、あなたが決して聞くことはありません。
このガイドは、注釈とは何か、コードの構築方法、コードを置くことができる 3 つの場所、Google に信頼を与えるルール、正規のタグやサイトマップとの相互作用など、フレフラングの端から端までに焦点を当てた一連のピースのハブです x-default、 実装を壊すエラー、 フレフラン対正準、 および の フレームワーク 固有 セットアップ Next.js あんど Wordpress を。
tl;dr: フレフラングタグは、
rel="alternate" hreflang="xx-XX"検索エンジンに、各ユーザーにサービスを提供するページのどの言語および地域バージョンを示す注釈。 値は ISO 639-1 言語コードであり、オプションで ISO 3166-1 alpha-2 地域コードも加えられるため、英国はGBそして、ないUK。 annotations must be reciprocal: every page in a set lists every version including itself, or Google discards the set.注釈は相互的なものでなければならない:セット内のすべてのページは、それ自体を含むすべてのバージョンをリストするか、またはGoogleはセットをHTMLとして実装することができる<link>タグ、XML サイトマップ エントリ、または HTTPLinkヘッダーですが、URL セットごとにメソッドは 1 つだけです。 The フレフラング発生器 3 つの形式すべてをブラウザで構築し、コードを出荷する前に検証します。
hreflang タグとは何ですか?
Hreflangタグは " を宣言する注釈で、この言語と地域のためにこのページの別のバージョンが存在し、このURL." に住んでいます:
<link rel="alternate" hreflang="fr-CA" href="https://example.com/fr-ca/" />
左から右へ読む: rel="alternate" は、これは別のページではなくバリアントであると述べています、 hreflang="fr-CA" このバリアントはカナダのフランス語話者向けであると述べています href 絶対 URL を与えます。ここにはディレクティブは何もありません。 google は、hreflang を、特定の検索者にどの URL を交換するかについての強力なヒントとして扱い、従わなければならないコマンドとしてではなく、証拠が他の場所を指す場合はヒントをオーバーライドします。
注釈は Google's で定義されています ページのローカライズされたバージョンに関するドキュメント、コード値は から来ます BCP 47、言語タグのIETF標準。 bingは同じ注釈をサポートしています。 yandexはhreflangを使用せず、ロシア語市場があなたの計画の一部であるかどうかが重要である独自の地域設定に依存しています。
いつフレフラングが必要ですか、そしてそれはいつ時間の無駄ですか?
同じコンテンツが複数の言語で存在する場合、または複数の地域を対象とした 1 つの言語で存在する場合に必要です。 1 つの市場のみに英語のみで存在するサイトには必要ありません。そこに追加するとマークアップが追加されるだけです。
実際には次の3 つの形が浮かび上がってくる:
| サイトシェイプ | 例 | フレフランが必要ですか? |
|---|---|---|
| 1 つの言語、1 つの市場 | 米国限定のSaaSマーケティングサイト | いやー |
| 複数の言語 | /en/、 /de/、 /ja/ 同じページのバージョン |
はいって |
| 1 つの言語、複数の市場 | example.com/us/ あんど example.com/uk/、 両方 英語 |
はい、そしてこれは最も頻繁に見逃されているケースです |
3 行目は一時停止する価値のあるものです 価格、出荷コピー、スペルが異なる2 つの英語ページはクローラーに重複のように見えます hreflangがなければ、Googleは一方を選択し、もう一方をフィルタリングします これは、英国のストアがgoogle.co.ukで表示されなくなる一方、米国のツインランクが誤って重複するのではなく、意図的に地域的な亜種であることをGoogleに伝える注釈です。
フレフランコードはどのように構築されていますか?
値は 2 つの部分からなり、最初の部分のみが必要です。
ザ・ 言語 はISO 639-1の2 文字コードで、小文字: en、 fr、 de、 ja、 pt。 ザ・ 地域 は、ハイフンで結合されたISO 3166-1 alpha-2の2 文字コード、大文字である: en-US、 pt-BR、 de-AT。言語タグは大文字と小文字を区別せずに一致するため、ケーシングは難しい要件ではなく慣例ですが、コード レビューに従うとすべてのコード レビューがより速く進みます。
ルール人々は間違って取得します, 私は彼らが間違って参照してください順序で:
- イギリス は
GB。UKはISO 3166-1 コードではない。en-UKは黙って無視されるが、何も教えてくれないのでエラーよりも悪い。 - 地域だけでは問題ありません。 " を言う方法はありません。カナダではみんな"言語に名前を付けずに。
hreflang="CA"は無効です。 と書くen-CAあんどfr-CA別々のエントリとして. - ラテンアメリカ は
es-419。 これは、BCP 47 で有効な UN M49 数値地域コードであり、スペイン語が特にスペインやメキシコではなく地域を対象としている場合に正解です。 - 中国人は通常、国ではなく文字を望んでいます。
zh-Hanttraditional および の場合zh-Hans読者が気にかけている文字体系を簡略化して説明します。zh-CNあんどzh-TW作業はしますが、文字と地理を混同します。 - 言語と地域は独立した軸です。
en-CAあんどfr-CA両方存在できるのです だからできるのですen-US、en-GB、そしてen-AU。 1 つの国または 1 つの言語につき 1 ページずつ想定しないでください。サイトが真に役立つ組み合わせをマッピングします。
ザ・ フレフラング発生器 予想される形状に対して各コードをチェックし、認識されない言語値や地域値のサブタグにフラグを立てます en-UK 3週間後にキーボードをクロールするのではなく、キーボードに失敗します。
フレフラングタグはどこへ行くのですか?
3 つの実装方法がサポートされており、事実上同等です。選択は動作可能です。
| 方法 | 住んでいる場所 | に最適 | 費用 |
|---|---|---|---|
HTML を <link> |
各ページ' s <head> |
ほとんどのサイト;デバッグが最も簡単です | すべてのページには完全なセットが含まれており、言語数に応じて増加します |
XML サイトマップ xhtml:link |
サイトマップのエントリ | 大きなサイト、多くのロケール | サイトマップは同期を保つ必要があります; 拾うのが遅くなります |
HTTP を Link ヘッダー |
サーバー応答 | PDF およびその他の非 HTML ファイル | サーバー構成が必要です;ブラウザでは見えません' s ビューソース |
頭の中のHTMLタグ:
<link rel="alternate" hreflang="en-US" href="https://example.com/us/pricing" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/pricing" />
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />
サイトマップ エントリと同じセットで、 が必要です xhtml 名前空間が宣言されました <urlset>:
<url>
<loc>https://example.com/us/pricing</loc>
<xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/us/pricing"/>
<xhtml:link rel="alternate" hreflang="en-GB" href="https://example.com/uk/pricing"/>
<xhtml:link rel="alternate" hreflang="de-DE" href="https://example.com/de/preise"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/pricing"/>
</url>
そして、PDFの唯一のオプションであるHTTPヘッダーとして:
Link: <https://example.com/us/whitepaper.pdf>; rel="alternate"; hreflang="en-US",
<https://example.com/de/whitepaper.pdf>; rel="alternate"; hreflang="de-DE"
URLセットごとに1 つの方法を選択します.同じページのHTMLタグとサイトマップエントリを混合することは致命的ではありませんが、Googleに離れてドリフトすることができる2 つのソースを与え、彼らが同意しない日にどちらが勝ったかすでにサイトマップを作成している場合 XML サイトマップ ジェネレーター、サイトマップのフォーマットがまっすぐにそれに落ちる。
なぜフレフラングは相互的でなければならないのでしょうか?
なぜなら、一方通行の主張は検証不可能だからです。 if your English page says "the French version is over there" and the French page says nothing, anyone could point at anyone. Google' s rule is that both sides must agree, and the 返品タグの要件 ドキュメントには明確に記載されています。戻りタグを確認しない注釈は無視されます。
ルールの実用的な形式は、思っているよりも簡単です。ページ自体の自己参照エントリを含む、グループ内のすべてのページに、完全で同一の注釈セットを入れてください。英語ページには、英語、フランス語、ドイツ語、および x-default がリストされます。フランス語ページも同様です。ドイツ語ページも同様です。同じブロック、バイト単位、バイト単位、それらすべてに表示されます。
その冗長性が特徴なのですセットを自己検証し展開を機械的にします URLグループごとに1回ブロックを構築しページごとに手作業で編集するのではなく単一のソースからレンダリングします手作業で編集するというのは9ページのセットが最終的に8つの正しいブロックと1つの欠落したエントリーになってしまうというもので1つの欠落したエントリーはGoogleが属するペアを信用しないには十分だということです。
x-defaultは何をするのか?
x-default 他のエントリがユーザーと一致しない場合に役立つページに名前を付けます。 someone browsing in Korean lands on a site with English, French, and German versions: without x-default、googleは推測します。 とすると、あなたが決めることになり、答えは通常、言語セレクターか、あなたの主要な国際ホームページになります。
言語コードではなく、言語コードに取って代わるものでもありません。あなたの英語ページにはまだ独自のページが必要です en や en-US エントリー、そして x-default はキャッチオールとして並んでいる。 " アルゴリズムが何かを選ぶ" はルーティング戦略ではないので、Googleはオプションとして扱い、私はそれを必要に応じて扱う。 the 完全な x デフォルト ガイド どこに向けるか、リダイレクトでポイントすると何が起こるか、言語セレクター ページが独自のケアを必要とする理由について説明します。
フレフラングと正規タグはどのように相互作用しますか?
彼らはさまざまな質問に答え、互いに矛盾してはなりません。
正規のタグには " と書かれています。これらのほぼ同一の URL のインデックスは、この URL にインデックスを付けます。 " フレフラン注釈には " と書かれています。これらの URL はローカライズされた代替であり、ユーザーごとに適切な URL を提供します。" 言語バージョン全体を食べる失敗は、言語間で正規化されています。フランス語ページは英語ページを正規化していると宣言し、Google にフランス語 URL をインデックスから削除するように指示します。フレフラングは正規化された URL を復活させることができません。
ルールは短いです. すべてのページがそれ自体に正規化されます。 Hreflangは、それらの自己正典ページの間の関係を説明します. これらの2 つの事実をまっすぐに取得し、2 つのシステムは協力します; それらを交差させ、より強い信号、正典、勝利と静かにあなたの翻訳を削除します。 フレフラング vs カノニカル 両方が同時にプレイされているパラメーターと URL のケースなど、組み合わせに基づいて機能します。
そのフレフランが機能していることをどのようにテストしますか?
検索コンソールから始めます。 International Targeting レポートには、大規模に重要な 2 つの障害、" no return tags" and " unknown language code" がリストされており、プロパティ全体にわたって、ページを一度に 1 つずつ検査するのに遅れていることに注意してください。 fix は、Google が影響を受けるセット内のすべてのページを再クロールした後にのみ表示されるため、変更のない 1 週間は正常であり、fix が失敗した証拠にはなりません。
次に自分のサイトをクロールします。 hreflang アノテーションをサーフェスするクローラーは、各 URL が運ぶセットを表示します。実行しているチェックは、グループ内のすべてのページが同一の完全なブロックを運ぶかどうかです。グループで並べ替えてカウントを目視します。5 つのグループに 4 つのエントリがあるページはバグです。
次にターゲットが解決するかどうかを確認します それぞれ href 200 を返し、インデックス可能な絶対 URL でなければなりません。 redirects はまだ機能しますが、ホップを追加するターゲット、404s がセットを毒するターゲット、そして であるターゲット noindex 矛盾しています。google に無視するように指示したページを宣伝しているのです。
最も頻繁に壊れるのは何ですか?
私がそれらをどのくらいの頻度で見つけるかの大まかな順序で:
- 戻りタグがありません. ページAはBを指し、Bは指を戻しません。 Googleはペアを破棄します。
- X-default なし. 比類のないユーザーは、Google が推測するバージョンを取得します。
- 非 ISO コード.
en-UKリード、続いて次のような発明品が続きますen-EU。 - 相対url. hreflang には、絶対 URL、プロトコル、ホストが含まれている必要があります。
- トレーリングスラッシュの不一致.
/fr/あんど/fr異なる URL であり、注釈はインデックス可能な形式と一致する必要があります。 - 言語を超えた正規のポインティング. セット全体をキャンセルします.
- 混合法. 同じ URL の HTML タグとサイトマップ エントリがバラバラになっています。
これらのどれもが正しく見えるマークアップを生成します。それがフレフランを退屈にさせる理由です。失敗は常に沈黙します。 12 の一般的なフレフラング エラー 観察される症状とその修正をしながら、それぞれを歩き回ります。
タグはどのように生成し、維持しますか?
一握りのURLでは、ブロックを手書きで書くことは一度問題なく、2 回目の変更で痛みを伴います。より大きなものであれば、生成してください。
ザ・ フレフラングタグジェネレータ バージョンごとに 1 行 (コードと絶対 URL) を取得し、ブロックを HTML リンク タグ、サイトマップ エントリ、または HTTP ヘッダーとして送信します。各コードを ISO 形状に対して検証し、認識できないサブタグにフラグを立て、重複コードをキャッチし、相対 URL を拒否し、セットに x デフォルトがない場合に警告します。完全にブラウザー内で実行されるため、国際アーキテクチャ全体をマッピングする URL 構造がどこにもアップロードされることはありません。
すでにテンプレート化されているサイトの場合、長期的な答えとしては、ブロックをルーティング構成からレンダリングして、ドリフトできないようにすることがより良いことです。それがそのことです Next.js あんど Wordpress を ガイドはカバーします: ロケール マップのための真実の 1 つのソース、グループ内のすべてのページに完全な逆数セットをレンダリングする 1 つのコンポーネントまたはフィルター。ジェネレーターは、出力を生成するのではなく、出力をチェックするために使用するものです。これは、サイトが数十の URL を過ぎた後の適切な分業です。
テクニカル SEO レイヤーの残りの部分を同時に組み立てる場合は、 メタタグジェネレータ ページごとのヘッドと を処理します Robots.txt ジェネレーター クロールディレクティブをカバーします。 the フレフラング ツールガイド 発電機自体をさらに深く掘り下げます。
よくある質問
hreflang タグとは何ですか?
フレフラングタグは、 rel="alternate" hreflang="xx-XX" 特定のユーザーにサービスを提供するページのどの言語および地域バージョンを検索エンジンに伝える注釈。これは、国際サイトが各市場で適切なバージョンをランク付けするのに役立ち、ほぼ同一の地域ページが重複としてフィルタリングされるのを防ぎます。
サイトが英語のみの場合、hreflang は必要ですか?
個別の URL を使用して複数の英語圏の市場をターゲットにする場合のみ。単一の市場向けの単一の英語サイトにはフレフランは必要ありません。注釈がなければ 2 つは重複しているように見えるため、米国と英国の別々の店舗 (どちらも英語) にはフレフランが必要です。
リージョンはフレフラング コードの一部ですか?
いいえ 言語コードは必須で、リージョンはオプションです。 en はそれ自体で有効である。 有効でないのは言語のない地域である: 言語を名指しせずに国を標的にする方法はない。
hreflang は Google が表示するページを保証しますか?
いいえ、Hreflang は強力なシグナルであり、ディレクティブではありません。 user's の明示的な言語設定やクエリ言語などの他の証拠が他の場所を示している場合でも、Google は別のバージョンを提供できます。
フレフラング変更が有効になるまでにどれくらい時間がかかりますか?
Google はリターンタグを確認する前にセット内のすべてのページを再クロールする必要があるため、変更には通常、サイトがクロールされる頻度に応じて数日から数週間かかります。 Search Console の International Targeting レポートは同じラグで更新されます。
フレフラングと正規タグを併用できますか?
はい、そうすべきです。各ページはそれ自体に正規化され、hreflang はそれらの自己正規化ページ間の関係を記述します。ある言語バージョンを別の言語バージョンに正規化すると、インデックスから削除され、hreflang セットもキャンセルされます。
Bingはフレフラングをサポートしていますか?
はい。 Bingも同じことをサポートしています rel="alternate" hreflang 注釈。 yandexはhreflangを使用せず、代わりに独自の地域設定に依存しています。
HTML またはサイトマップで、hreflang タグはどこに行くべきですか?
どちらでも機能します。 HTML リンク タグはデバッグが簡単で、一般的な選択です。 サイトマップ エントリはページヘッドを無駄なく保ち、多くのロケールを持つサイトに適しています。両方ではなく、URL セットごとに 1 つの方法を使用します。



