Hreflang には、デバッグするのが一意に煩わしい特性があります。すべての障害モードでは、正しく見えるマークアップが生成されます。コンソール エラー、ブラウザの赤いバッジ、ビルドの失敗はありません。タグがレンダリングされ、ページが HTML として検証され、注釈は何も行われません。数週間後、検索コンソールのレポートまたは別の国の誰かから、間違ったページを取得したと通知されたことがわかります。
私は今、リストを持っているためにこれらの十分なデバッグしている これは、あなたが観察するであろう症状と修正で、私がそれぞれを見つける頻度によって大まかに順序付けされたそのリストの下にあります 完全なフレフラングガイド ピースがオンになっている横に x-default あんど フレフラン対正準。
tl;dr: 最も一般的なフレフラング エラーは、リターン タグ、非 ISO コードの欠落です
en-UK、 相対 URL 、 言語 横断的 指し示す 正規 、 欠落x-default、および同じURLの実装方法を混ぜる それらのすべては沈黙しています: マークアップはレンダリングして何もしません Search Console& #39; s International Targetingレポートは、return-tagとunknown-codeエラーをスケールでキャッチします; 残りはクロールまたはレンダリングされたHTMLを見る必要があります フレフラングタグジェネレータ デプロイする前に、コード、URL、重複、および欠落しているフォールバックを検証します。
1.リターンタグがありません
症状: 検索コンソール レポート "リターン タグなし "言語バージョンは適切な市場に交換されず、セット全体がフレフランが存在しないかのように動作します。
原因: ページ A はページ B を代替として宣言しますが、ページ B はページ A を宣言しません。Google は双方に関係を確認するよう要求し、返礼されなかった注釈を破棄します。
直します: グループ内のすべてのページに、自己参照エントリを含む、完全で同一の注釈セットを入れてください。どのページにどのエントリが必要かについて賢く考えないでください。英語ページには、英語、フランス語、ドイツ語、および x-default がリストされています。フランス語ページもそうです。ドイツ語ページもどこでも同じブロックです。
これは大まかに言って最も一般的な失敗であり、ほとんどの場合、ページごとの手作業による編集、または " をレンダリングするテンプレートによって引き起こされます。他の言語と引用;ではなく "すべての言語と引用;。
2.ISO以外の地域コードを使用する
症状: 検索コンソールは " を報告します。未知の言語コードと引用; 、または注釈が静かに無視されている間はまったく何もありません。
原因: en-UK 分野をリードします. UK はISO 3166-1 alpha-2 コードではない; イギリスは GB。 のような地域コードを発明した en-EU あんど es-LATAM は同じクラスのエラーであり、そのままです en-uk 間違ったケーシングがすでに無効な領域とペアになっています。
直します: からの言語 ISO 639-1、ISO 3166-1 alpha-2 からの領域、ハイフンで結合 ラテンアメリカの場合、有効な答えはUN M49 コードです es-419。 中国語の場合、スクリプトのサブタグを好みます: zh-Hant あんど zh-Hans。
| 間違っています | 右 | なんでや |
|---|---|---|
en-UK |
en-GB |
UK はISO 3166-1 コードではない |
en-EU |
国ごと、またはプレーンごとに個別のエントリ en |
EUは国コードではありません |
es-LATAM |
es-419 |
ラテンアメリカの UN M49 地域コード |
zh-CH |
zh-Hans や zh-CN |
CH は スイス |
CA |
en-CA あんど fr-CA |
地域単独では無効です |
3.地域のみのアノテーション
症状: 何も起きません 注釈は完全に無視されます.
原因: のように、言語に名前を付けずに国をターゲットにしようとします hreflang="US" や hreflang="CA"。フレフラングは設計上言語第一です。この領域はオプションで言語を狭めるものであり、それ自体がターゲットではありません。
直します: 言語に名前を付けます カナダに2 つの言語でサービスを提供する場合、それは2 つのエントリです: en-CA あんど fr-CA。
4.相対URL
症状: 注釈は無視されます。 " が頻繁に伴います。これは私のマシンで動作します。 " 相対 URL はブラウザで正常に解決されるためです。
原因: href="/fr/pricing" 代わりに href="https://example.com/fr/pricing"。 Hreflang には、プロトコルとホストを含む完全に修飾された絶対 URL が必要です。
直します: 絶対URLを放出する テンプレートにビルドする場合は、ハードコードされた文字列ではなく、設定されたサイトオリジンからビルドするため、ステージングデプロイでは本番URLが公開されないか、その逆になります。
5.言語を超えて指し示す正典
症状: 言語バージョン全体がインデックスから消えます。 Hreflang は正しく表示され、効果はありません。
原因: フランス語のページは英語のページを正規のページとして宣言します。これは Google にフランス語の URL を削除するよう指示し、正規化された URL はフレフランの言うことに関係なく誰にも提供できません。正規の方が強いシグナルであり、それが勝ちます。
直します: すべてのページがそれ自体に正規化されます。 Hreflangはそれらの自己正規ページ間の関係を説明しています。 これはそれ自体で読む価値があります: フレフラング vs カノニカル パラメーター化された URL を含む組み合わせを処理します。
6.x-defaultなし
症状: あなたがターゲットにしていない国からの訪問者は、明らかにランダムな言語バージョンで土地を訪れます。
原因: フォールバックは宣言されていないため、Google が選択します。その選択は、あなたには見えない類似性シグナルに基づいており、オランダの訪問者は最終的にドイツのページにアクセスすることになります。
直します: 1 つ追加します x-default 言語セレクターまたは主要な国際バージョンを指す、セットごとのエントリ。ザ x-default ガイド どこに指摘すればよいか、そしてそれを役に立たなくする間違いについて説明します。
7.実装方法の混在
症状: 断続的で再現が難しい動作。正しく交換されるページもあれば、正しく交換されないページもあります。
原因: HTML を <link> タグと XML サイトマップ xhtml:link エントリは両方とも同じ URL に対して hreflang を宣言します。それぞれ単独で有効です。これらは共に漂う 2 つの真実の情報源であり、意見が一致しない場合は、Google がどれを使用したかを知る方法がありません。
直します: URL セットごとに 1 つのメソッドを選択します。ほとんどのサイトでは HTML タグ、多くのロケールがあり無駄のないページ ヘッドが必要な場合はサイトマップ エントリ、PDF などの非 HTML ファイルでは HTTP ヘッダー。その後、バックアップとして残すのではなく、もう 1 つを削除します。
8.トレーリングスラッシュとプロトコルの不一致
症状: 両方のページに注釈が付けられているにもかかわらず、リターンタグは失敗します。
原因: 注釈は以下を示しています https://example.com/fr インデックス可能な URL は次のとおりです https://example.com/fr/。 または を指している http:// HTTPS サイトで これらは異なる URL なので、実際のページの return タグが、他のページが指定した URL と一致しません。
直します: 各 URL の正確な正規形式、サイトマップに入れるのと同じ文字列を使用します。正規タグが使用する同じ URL ビルダーから hreflang を生成するため、この 2 つは同意できません。
9.リダイレクトまたは404sを指差す
症状: 部分的または劣化した動作;影響を受けるペアでコンソールのエラーを検索します。
原因: ロケールが廃止され、その URL がリダイレクトされるか、名前を付けた注釈が残ったまま翻訳されたページが削除されました。リダイレクト ターゲットは依然として解決されるため、致命的ではありませんが、ホップが追加され、最終的な URL のリターン タグが名前を付けた URL と一致しない可能性があります。 404 ターゲットはペアを完全に毒します。
直します: 独自のフレフラング ターゲットをクロールし、ステータス コードを確認します。これは nobody が実行するチェックであり、作成されたときに正しかったセット内の rot を見つけるチェックです。
10.noindexページに注釈を付ける
症状: セットは一貫性なく動作します;一部の代替品は決して表示されません。
原因: ページは持ち運び中に代替言語として宣伝されます noindex。 このURLを市場に提供することと、インデックスから遠ざけることの両方をGoogleに指示しました。 矛盾は賛成で解決します noindex。
直します: 注釈を削除するか、を削除します noindex。ステージングの残り物や未翻訳のプレースホルダー ページが通常の原因です。
11. robots.txt におけるフレフラングターゲットのブロック
症状: 代替は決して確認されません。 「検索コンソール」には、リターンタグが目に見えて表示されるページのリターンタグエラーが表示されます。
原因: robots.txt ではターゲットが許可されていないため、Googlebot はターゲットをフェッチできず、リターン タグが表示されません。あなたの側の注釈は問題ありません。反対側の確認は到達できません。
直します: hreflang アノテーションで名前を付けたすべての URL のクロールを許可する セクションが本当にクロールされるべきでない場合は、そのセクションも hreflang セット内にあるべきではありません Robots.txt ジェネレーター 現在のルールがブロックしているものを監査するのに役立ちます。これは、意図したよりも広範囲にわたることがよくあります。
12.1 セット内でコードを複製する
症状: 予測不能です Googleは最初と最後を取るか、ペアを破棄するかも知れません。
原因: 同じフレフラング値を持つ2 つのエントリが異なるURLを指しており、通常は2 つのシステムが両方とも注釈を発するため、またはロケールマップに重複したキーがあるため、このエントリは2 つのURLを指す2 つのエントリである x-default エントリは、最も一般的な形式でも同じ問題です。
直します: コードごとに1 セットにつき1 つのエントリー。 view the rendered source rather than the template; a plugin adding a second block is invisible from the template alone.テンプレートではなくレンダリングされたソースを表示する; 2 つ目のブロックを追加するプラグインは、テンプレートのみからは見えません フリーフレフランジジェネレータ ビルドしたセット内の重複コードにフラグを立てますが、ページが他に何を送信するかは確認できません。
これらのエラーを体系的に見つけるにはどうすればよいでしょうか?
それぞれが異なるクラスをキャッチするため、この順序で 3 回パスします。
まずはコンソールを検索してください. International Targeting レポートはプロパティ全体をカバーしており、リターン タグの欠落と言語コードの不明という 2 つのエラーがスケールされます。完全な再クロールにかかる時間がどれだけ長くても、展開よりも遅れるため、変更のない 1 週間を通常のものとして扱います。
2番目にクロール. hreflang を抽出するクローラーは、URL ごとのセットを提供します。クラスターごとにグループ化し、カウントを比較します。5 つのグループ内に 4 つのエントリがあるページがバグです。次に、すべてのターゲットのステータス コードを確認します。これは、エラー 8、9、10、および 11 を見つけるパスです。
不正行為を行っている特定のページに対して、HTML が最後にレンダリングされました。 curl それ、注釈ブロックを数えます x-default エントリを入力し、url を文字ごとに正規のものと比較します。ここで重複と末尾スラッシュの不一致が表示され、実行時にプラグインが注入されたものを確認する唯一のパスです。
ジェネレータは、そのどれかの前に実行する価値があります、なぜなら、あなたが書いた時点でセットを検証すると、エラー2、3、4、6、12 が出荷される前に削除されるからです。 どのツールも強制できないのは相互主義です、それはあなたの前にあるページ以外のページのプロパティだからです そのために規律は構造的です: 1 つのロケールマップ、1 つのレンダラー、すべてのページの完全なブロックです Next.js あんど Wordpress を ガイドには、コード内での外観が表示されます。
よくある質問
最も一般的なフレフラングエラーは何ですか?
戻り値のタグがありません。 page A はページ B を代替として命名しますが、page B はページ A に名前を付けないため、Google は関係を破棄します。修正点は、自己参照エントリを含む完全に同一の注釈セットをグループ内のすべてのページに置くことです。
なぜSearch Consoleは私のhreflangにリターンタグがないと言いますか?
なぜなら、あなたが指したページは一致する注釈を付けて後ろを指していないか、わずかに異なる URL を指しているからです。末尾のスラッシュ、プロトコルの違い、および www と非 www はすべて異なる URL としてカウントされます。
en-UK は有効なフレフラング コードですか?
いいえ. UK は ISO 3166-1 alpha-2 コードではありません。 英国の正しいコードは GB、なので値は en-GB。 en-UK は黙って無視される.
フレフランURLは相対的なものになることができますか?
いいえ Hreflang は、プロトコルとホストを含む完全修飾絶対 URL を必要とします。相対 URL は、ブラウザーで正常に解決されるにもかかわらず無視されます。
正規タグは hreflang を上書きしますか?
事実上はい。 page が別の言語バージョンに正規化されると、その URL はインデックスからドロップされ、hreflang はそれを元に戻すことができません。 page はそれぞれ、それ自体に正規化する必要があります。
フレフラン修正が表示されるまでどれくらい時間がかかりますか?
数日から数週間。 Google はリターンタグを確認する前にセット内のすべてのページを再クロールする必要があり、検索コンソールのレポートは同じスケジュールで更新されます。
HTMLタグとサイトマップ hreflangの両方を使用できますか?
できるが、できない 同じURLの2 つのソースがバラバラになり、意見が合わない場合は、どちらが使用されたかを判断する方法がありません。 URLセットごとに1 つのメソッドを選択します。
フレフランのターゲットはクロール可能である必要がありますか?
はい。 robots.txt でターゲットがブロックされたり、noindex とマークされたりすると、Google はリターン タグを確認できず、マークアップが正しいにもかかわらず注釈が失敗します。



