私は一度hreflangに固体の午後を失いました クライアントは英語とフランス語でサイトを持っていました, 交差 /en/ あんど /fr/、そして彼らのフランス語ページは単にフランスでランク付けされないでしょう - Googleはフランス語検索者に英語版を浮上させ続けました マークアップは正しく見えました 頭の中にあり、コードはそこにあり、URLは解決されました 問題は、英語ページがフランス語のページを指していたが、フランス語のページが後ろを指していなかったことが判明しました フレフラングは相互的でなければならず、Googleはリターンタグが欠けているためクラスター全体を捨てていました ブラウザには何も言われませんでした エラーも警告もありません - ページが静かにランク付けできないだけです。
それは一言で言えばフレフランです コンセプトはシンプルです: どのユーザーを表示するために、ページのどの言語および地域バージョンを検索エンジンに指示します 実行はISOコード、ケーシングの規約、相互主義ルール、インターネットの半分が忘れているフォールバックタグの地雷原です 私は、Toolz.dev、WP Adminify' sのドキュメント、およびさまざまなLaravelとReactプロジェクトにわたって、十分な頻度で多言語サイトを構築および維持しています - タグを生成し、出荷する前に間違いをキャッチするツールが欲しかったということです Hreflang Generator、そしてこのガイドは、私がその日の午後に知っていたらよかったと思うすべてです。
ツールではなくコンセプトについては、から始めます フレフラングタグについて説明しました、このトピックのハブであり、上の部分にリンクします x-default、 一般的なフレフラングエラー、 および の フレームワーク セットアップ Next.js あんど Wordpress を。
tl;dr: hreflang タグは、ページのどの言語/地域バージョンが各ユーザーにサービスを提供するかを検索エンジンに指示します
rel="alternate" hreflang="x"注釈。 コードはISO 639-1 (言語) とISO 3166-1 (地域) に従う - つまり英国はGB、ないUK。 タグは相互 (すべてのページが戻るリンク) である必要があり、 を含める必要がありますx-defaultフォールバックします。 generator は有効なタグを HTML リンク、XML サイトマップ エントリ、または HTTP ヘッダーとして出力し、すべてのコードを検証し、重複をキャッチし、ブラウザーで 100% 実行します。
hreflangタグとは何ですか、そしてあなたはいつそれらを必要としますか?
Hreflang タグは " と言う注釈です。特定の言語と地域についてはこのページの別のバージョンがあり、その URL がここにあります。 "構文は次のとおりです <link rel="alternate" hreflang="fr-CA" href="https://example.com/fr-ca/" />、 どこ fr-CA カナダで話されているフランス語を意味します。 Google がこれらの関係を理解すると、最初にクロールしたバージョンを推測したりデフォルトで指定したりするのではなく、カナダのフランス語話者にカナダのフランス語ページを、米国の英語ページを米国の誰かに提供できます。
複数の言語で実質的に同じコンテンツがある場合、または複数の地域をターゲットにした同じ言語がある場合は、必ず hreflang が必要です。英語のみで存在するブログには必要ありません。6 か国語に翻訳された SaaS マーケティング サイトには絶対に必要です。中間のケース - 1 つの言語、複数の地域、両方とも英語である個別の米国と英国のストアのような場合 - は、ページが地域の亜種として明示的に宣言しない限り、Google にとって重複しているように見えるため、hreflang が最も価値があり、最も見落とされている場所です。
見返りは2 つあります。 1 つ目は、適切なバージョンが適切な市場にランク付けされ、ユーザーが自分に合った価格、通貨、フレージングに着地するため、クリックスルーとコンバージョンが向上します。 2 つ目は、hreflang が重複コンテンツの問題を解決します。ほぼ同一の地域ページが互いに競合したり共食いしたりするのではなく、Google はそれらを代替ページの 1 つのクラスターとして扱い、クエリごとに最適なページを選択します。
なぜコードはみんなをつまずかせるのでしょうか?
なぜなら、それらは直感ではなく標準に従っており、標準にはエッジケースがあるからです。
値は BCP 47 言語タグで、 で定義されています RFC 5646、およびGoogle& #39; s own ローカライズされたバージョンのドキュメント は、どの部分集合を受け入れるかについての権威である.
言語部分は ISO 639-1 コードです。2 文字、小文字などです en、 fr、 de、 ja。オプションの領域部分は ISO 3166-1 alpha-2 コードです。2 文字、大文字などです US、 GB、 DE.ハイフンでつなぎ合わせると、 en-US や de-DE。 人を噛む慣習:
- ザ・ イギリス は
GB、ないUK。UK有効な ISO 3166-1 コードではありませんen-UKは no-op. - 言語は最初に来て、必須です; 地域はオプションであり、単独で存在することはできません。 ターゲットにすることはできません
USそれ自体で - 地域のみのフレフラングというものは存在しません それは常に言語であり、オプションで地域によって狭められます。 - ラテンアメリカでは UN M49 コードが使用されます、
es-419、1 つではなく多くの国にまたがるため この3 桁の地域コードは有効で、 " スペイン語、ラテンアメリカ品種. " に役立ちます - 中国語にはスクリプトのサブタグが必要になることがよくあります、 ような
zh-Hant(伝統的)またはzh-Hans(簡略化)、書面は国よりも重要だからです。
ジェネレータはこれらすべてを検証します。各コードを予想される形状と照合し、ケーシング (小文字言語、大文字領域、タイトルケース スクリプト) を正規化し、サブタグが認識されている ISO 言語または領域ではない場合に警告します。したがって en-UK クロールを無駄にする前にフラグが立てられます。
Hreflang Generator を使うには?
このツールは、言語バージョンのリストと出力形式の選択を中心に構築されています。
ステップ 1 - バージョンを追加します. 各行は、言語/地域コードとそのバージョンの完全なURLを加えたものです。 quick-pickリストでは、共通のコードを提供しています ()en-US、 es-419、 zh-Hant、 x-default、およびより)従って正確なケーシングを覚える必要がない。 version ごとに行を追加する.
ステップ 2 - x デフォルトを含めます. コードで行を追加します x-default フォールバック URL を指します。これは、言語が明示的にターゲットにされていないユーザー (多くの場合、言語選択ページまたは主要ホームページ) に提供されるバージョンです。
ステップ 3 - フォーマットを選択します。 HTMLを切り替える <link> ページヘッドのタグ、 xhtml:link XML サイトマップまたは HTTP のエントリ Link HTML 以外のファイルのヘッダー。編集すると、ジェネレーターはすべてのコードと URL を検証し、重複したコードをキャッチし、行ごとのステータス テーブルを表示するため、どのエントリが有効であるかを一目で確認できます。
ステップ 4 - コピーして相互に展開します。 出力をコピーし - これが重要な部分です - 自己参照エントリを含むグループ内のすべての URL に同じ完全なタグ セットを追加します。その後、Google 検索コンソールの International Targeting レポートでセットアップを確認します。
すべてがクライアント側で実行されるため、URL 構造 - 国際的なアーキテクチャ全体を公開できる - がブラウザから離れることはありません。これは、サイト上のすべてのツールの背後にある同じプライバシー モデルであり、 でカバーされています データ プライバシー ガイド。
出力は各フォーマットでどのように見えますか?
説明ではなく、実際に動作した例を示します。 language-selector ページをフォールバックとして、米国、英国、フランス、ラテンアメリカに販売しているストア。 5 行入ります:
| フレフラング | url |
|---|---|
x-default |
https://example.com/ |
en-US |
https://example.com/us/ |
en-GB |
https://example.com/uk/ |
fr-FR |
https://example.com/fr/ |
es-419 |
https://example.com/latam/ |
出力の前にそのセットについて 2 つのことに注意してください。 en-US あんど en-GB は両方とも英語であり、市場によってのみ異なります。これは、hreflang が存在するケースと、ほとんどのサイトがスキップする場合です。そして es-419 ラテンアメリカの UN M49 地域コードです。ISO 3166-1 alpha-2 コードではないにもかかわらず、3 桁の地域は言語タグで合法であるため、ツールはフラグを立てるのではなく有効であると受け入れます。
HTML リンクタグ、 ページ の ため <head>:
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
<link rel="alternate" hreflang="en-US" href="https://example.com/us/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr/" />
<link rel="alternate" hreflang="es-419" href="https://example.com/latam/" />
その正確なブロックは、変更せずに 5 ページすべてに表示されます。 "他の 4" ではありません。各ページ: page's 独自のエントリを含む 5 ページすべて。それが注釈を相互に一致させるものです。
XML サイトマップ エントリ、ツールが同じセットを a でラップする場所 <url> 要素としてページの URL を使用します <loc>:
<url>
<loc>https://example.com/us/</loc>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/" />
<xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/us/" />
<xhtml:link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />
<xhtml:link rel="alternate" hreflang="fr-FR" href="https://example.com/fr/" />
<xhtml:link rel="alternate" hreflang="es-419" href="https://example.com/latam/" />
</url>
ジェネレーターは、生成できるブロックの外側にあるピースを思い出させます <urlset> 要素には、宣言された xhtml 名前空間、または every が必要です xhtml:link ファイルがサイトマップとして検証されている間、エントリは無視されます。
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
HTTP Linkヘッダー、ヘッダー値が 1 つないファイルの場合 <head> PDFなどの編集には、次の手順を実行します:
Link: <https://example.com/>; rel="alternate"; hreflang="x-default", <https://example.com/us/>; rel="alternate"; hreflang="en-US", <https://example.com/uk/>; rel="alternate"; hreflang="en-GB", <https://example.com/fr/>; rel="alternate"; hreflang="fr-FR", <https://example.com/latam/>; rel="alternate"; hreflang="es-419"
それはデザイン上、単一の長いラインです Link コンマ区切りの値を運ぶヘッダー。 nginx ではそれが 1 つです add_header Link "..."; ディレクティブ; Apache one で Header set Link "..."。 いくつかに分割する Link ヘッダーも機能しますが、ヘッダーを 1 つの値として保持すると、セットが完了していることが明らかになります。
ジェネレーター'sの警告の意味は何ですか?
このツールは、エントリの送信を停止するエラーと、それを通過させるが、見るべきものにフラグを立てる警告を分離します。フレフラングの間違いのほとんどは、何の意味もない法的マークアップであるため、区別が重要です。
| メッセージ | 何がきっかけで | 何をすべきか |
|---|---|---|
| 有効な言語タグではありません | 値が一致しません language[-Script][-REGION] |
言語コードを最初に使用するか、リージョンをオプションで使用するか、リテラルを使用します x-default |
| 言語サブタグは一般的な ISO 639-1 コードではありません | 整形式だが認識されていない言語 | ISO 639-1 と照合する; タグはどちらかの方法で放出されます |
| リージョン サブタグは一般的な ISO 3166-1 コードではありません | 整形されているが認識されていない領域 | これが引っかかるものです en-UK、 どこ GB は 正解 |
| 重複 フレフラング | 同じコードがセット内に 2 回表示されます | 1 つを削除; 1 つのコードに対する 2 つのエントリは矛盾します |
| x デフォルトのセットはありません | セットにはフォールバック行がありません | セレクターページまたはプライマリバージョンを指すものを追加します |
| hreflang はクラスターで動作します | セット内のURLは1 つだけです | 他の言語バージョンを追加します; 1 エントリクラスタは何もしません |
| フレフラングは相互的でなければなりません | 常に示されています | グループ内のすべての URL に同一のブロックを展開します |
最後のものは条件付きではなく常に表示されますクライアント側のツールが検出できない障害だからです互恵性は目の前のセットのものではなく他のページの性質なのでジェネレータは検証するふりをせずにルールを述べますここでの他の警告は全て純粋に確認できるものです。
また、コードはケーシング上で拒否されるのではなく正規化されることに注意してください: EN-gb なる en-GB、 zh-hant なる zh-Hant。言語タグは大文字と小文字を区別せずに一致するため、ケーシングは規則的ですが、出力が一貫しているため、2 ページ間の差分を読み取ることができます。
どの出力形式を選択すればよいですか?
Google は 3 つの実装方法を受け入れますが、適切な方法はスタックとページ数によって異なります。
| 方法 | に最適 | トレードオフ |
|---|---|---|
HTML を <link> タグ |
ほとんどのサイト; ページごとの直接制御 | すべてのページに重みを加えます& #39; s head; すべてのページにある必要があります |
XML サイトマップ xhtml:link |
大規模なサイト; HTML をクリーンに保ちます | サイトマップを維持する必要があります; Googleが処理するのが遅くなります |
HTTP を Link ヘッダー |
PDFのような非HTMLファイル | サーバー構成が必要です;監査が難しい |
典型的なサイトの場合、 HTML リンクタグ は最も単純です - ソースにそれらが見えます、デバッグは簡単で、すべてのフレームワークがそれらをレンダリングすることができます。 のために 何百もの言語バリアントを持つ大規模なサイト、 に フレフラング を 入れ XML サイトマップ ページヘッドをリーンに保ち、注釈を 1 つのファイルに集中させます (追加することを忘れないでください) xmlns:xhtml="http://www.w3.org/1999/xhtml" に the <urlset> ツールが思い出させる要素。 The HTTPヘッダー メソッドはニッチですが、リンク タグを入れるヘッドがない PDF などの非 HTML リソースには不可欠です。
どちらを選択しても、ページのセットごとに1 つのメソッドのみを使用します。 HTMLタグとサイトマップエントリを同じURLに混合すると、Googleの競合信号を送信できます。 すでにサイトマップを生成している場合は、ツール& #39; sサイトマップフォーマットは、からの出力に直接スロットします XML サイトマップ ジェネレーター。
x-default とは何ですか?なぜそれが重要なのでしょうか?
x-default は、言語や地域を明示的にターゲットにしていないユーザーのフォールバックページを指定する hreflang 値です。 サイトに英語、フランス語、ドイツ語バージョンがあり、日本語で閲覧しているユーザーが到着した場合、 x-default google に送信先を通知します。通常は中立的なホームページか、言語を選択できるページです。
hreflang がなくても機能するという意味ではオプションですが、Google はこれを含めることを推奨しており、実際には必須として扱っています。 x デフォルトがなければ、比類のないユーザーは Google が推測する最も近いバージョンを取得します。これは、多くの場合、意図的な選択ではなく、最もクロールされたページにすぎません。
ツール' のために部品: いいえのセット x-default 行はエラーではなく警告を発生させるので、出力をコピーすることはできますが、通知されたことになります 行を追加すると、フォールバックは選択した3 つの形式のいずれかで、すべてのページの同じ位置でどこを指すか、およびそれを役に立たないようにする間違いがカバーされます x-default ガイド。
なぜフレフラングは相互的でなければならないのでしょうか?
これは午後の費用がかかるセクションなので、独自のセクションがあります。 Hreflang アノテーションは相互的でなければなりません。 ページ A がページ B をフランス語の代替ページとして宣言する場合、ページ B は代わりにページ A を宣言する必要があります。Google は、双方が関係を確認した場合にのみ関係を信頼します。 return タグが欠落している場合、Google は注釈を完全に無視します。黙って、ページにエラーはありません。
これを満たすためのクリーンな方法は、自己言及的なエントリ (ページがそれ自身を指している) を含む、グループ内のすべてのページに、フルで同一の hreflang タグのセットを入れることです en-US ページには、タグが含まれています en-US、 en-GB、 fr-FR、 de-DE、そして x-default - そして、まったく同じブロックが に表示されます en-GB ページ、 fr-FR ページ、というように. クラスター内のすべてのページはマップ全体を運ぶ.冗長に感じるが,それは注釈を相互的にするもので,それはGoogleが期待するものです.
タグを生成することがステップ1 に過ぎないのはこのためです The フリーフレフランジジェネレータ クラスタ全体で再利用するための完全なブロックを生成し、その警告で相互主義について思い出させますが、展開規律 - 同じブロック、すべてのページ - はあなたにあります。その権利とコードを正しく取得し、hreflang は静かにそして確実に機能します。誤解しても、同様に静かに失敗します。テクニカル SEO スタックを組み立てるというより広範なコンテキストのために、関連するユーティリティを に収集しました web開発者ツールキットの概要。
hreflang が機能していることをテストするにはどうすればよいですか?
デプロイ後、 で検証します 国際ターゲティングレポート (歴史的には hreflang レポートと呼ばれています) Google 検索コンソールで。 " no return tags" and " unknown language codes" のようなエラーがサイト全体にリストされており、ページを 1 つずつチェックするよりもはるかに高速です。 SEO 監査ツールを使用したクロールにより、すべてのページに完全な相互セットが含まれていることも確認されます。
私が最も頻繁に見る間違いは、頻度の大まかな順序で: 返品タグがありません (上記の相互性の失敗)、 x-default なし、 使用 UK 代わりに GB または他の非ISOコード、 地域限定タグ それは言語のない国をターゲットにしようとします、 相対 URL フレフラングには絶対的なものが必要です 実装方法の混合 同じページの場合 これらのどれもがもっともらしく見えるマークアップを生成し、何もしません。
ザ・ フレフラングタグジェネレータ は、機械が捕まえられるもの - 不正なコード、未知の部分タグ、重複、非絶対URL、欠落しているx-デフォルト - を捕まえ、それがあなたのために強制できないもの、すなわち相互主義について思い出させるように設計されている、それぞれが作り出す症状を持つ完全なカタログは、入っています 12 の一般的なフレフラング エラー。 hreflang をより大きな多言語ビルドに配線する場合は、 メタタグジェネレータ ページごとのヘッドの残りの部分を処理します コーディング ツール ガイド 開発者のワークフローを締めくくります.
どのエッジケースを計画する必要がありますか?
基本が整備されると、計画を立てるのに十分な数の状況が頻繁に発生します。 正規のタグとフレフランは同意する必要があります。 Each page's canonical should point to itself, not to a different language version - if your French page canonicalizes to the English one, you are telling Google to drop the French page entirely, which cancels out the hreflang you just added.各ページ& #39; s canonicals自己参照を言語クラスタ内に保持し、hreflangクラスタ間の関係を記述させる; フレフラング vs カノニカル 組み合わせを通じて機能します.
言語と国は独立した軸です。 持つことは完全に有効です en-US、 en-GB、そして en-CA すべて英語で書かれていますが、異なる国を対象としており、同様に有効です fr-CA あんど en-CA どちらも異なる言語でカナダをターゲットにしています。国ごとに 1 ページ、または言語ごとに 1 ページずつ想定しないでください。サイトが実際に提供する特定の組み合わせをマッピングしています。
末尾のスラッシュとプロトコルは実際の URL と一致する必要があります。 hreflang は正確な URL を指します https://example.com/fr/ あんど https://example.com/fr は異なるターゲットです。各 URL の標準的でインデックス可能な形式を使用します。サイトマップで送信するのと同じ形式です。そのため、注釈はリダイレクトではなくライブ ページに解決されます。フレフラング ターゲットでのリダイレクトは致命的ではありませんが、ホップと信号が弱まる可能性が追加されるため、正確さを把握する価値があります。
よくある質問
hreflang タグとは何ですか?
hreflang タグは、特定のユーザーを表示するためにページのどの言語および地域バージョンを検索エンジンに指示します。 rel="alternate" hreflang="x" 注釈を使用します。 x は言語コード (オプションで地域付き) であるため、メキシコのスペイン語話者に英語のページではなく es-MX ページを提供できます。 Hreflang は、国際サイトが重複コンテンツの問題を回避し、各市場で適切なページをランク付けするのに役立ちます。
正しい HREFLANG 形式は何ですか?
値は ISO 639-1 言語コードであり、オプションで ISO 3166-1 alpha-2 コードとしてリージョンが続きます - たとえば en、en-GB、pt-BR。言語が最初に来て、リージョンはオプションです; リージョンだけをターゲットにすることはできません。標準は日常的な略語とは異なることに注意してください。英国は英国ではなく GB です。
hreflang で x-default は何を意味しますか?
X-Default は、明示的に対象を絞っていない言語または地域のユーザーのフォールバック ページを指定します。 通常、これはあなたのホームページまたは言語選択ページです。 Google では、すべての Hreflang セットに X-Default を含めることを推奨しています。これにより、他人に見合わない訪問者がランダムな言語バージョンではなく、賢明な場所に送信されるようにすることができます。
hreflang タグはどこに置くべきですか?
hreflang を 3 か所で実装できます: HTML ヘッド内の link rel="alternate" タグとして、XML サイトマップ内の xhtml:link エントリとして、または HTTP Link ヘッダー (PDF などの非 HTML ファイルに便利) として、1 つのメソッドを選択して一貫して適用します。同じページにそれらを混合すると、競合する信号を送信できます。このツールは 3 つすべてを生成します。
hreflang タグは相互にする必要がありますか?
はい。 page A がページ B をフランス語の代替として宣言する場合、page B は代わりにページ A を宣言する必要があります。 google は、指し示すページの return タグによって確認されない hreflang 注釈を無視します。最も単純なアプローチは、グループ内のすべてのページに、自己参照を含む完全な同一の hreflang エントリのセットを含めることです。
hreflang タグは、地域間で重複するコンテンツを修正できますか?
Hreflang は重複するコンテンツを削除しませんが、類似のページが重複するのではなく、地域や言語のバリエーションであることが Google に影響を与え、除外することを Google に伝えます。 これは、ページが互いに共食いするのではなく、各市場で正しいバージョンのランク付けに役立ちます。 真に同一のページの場合は、Hreflang がそれぞれの正規タグと組み合わせて使用します。
hreflang が機能していることをテストするにはどうすればよいですか?
Google Search Console で国際ターゲティング (または hreflang) レポートを使用すると、返品タグの欠落や不明な言語コードなどのエラーがリストされます。 SEO 監査ツールを使用してサイトをクロールして、すべてのページに完全な相互セットがあることを確認することもできます。 Google はグループ内のすべてのページを再クロールする必要があるため、修正を反映するのに時間がかかる場合があります。
私のデータは非公開ですか?
はい。 タグは、プレーンな JavaScript を使用して、ブラウザで完全に生成されます。 URL とサイト構造は送信、ログ記録、保存されません。ページが読み込まれた後は、ネットワーク接続なしでジェネレーターが動作し続けます。



