seo-hreflang について
seo-hreflangは、多言語・多地域サイト向けの国際SEOスキルです。hreflangの検証や実装コードの生成に加え、コンテンツの同等性、ロケール形式、文化的な適応も確認します。
主な機能
- 01自己参照と相互 hreflang の確認
- 02言語コードと地域コードの検証
- 03正規 URL とプロトコルの整合性確認
- 04HTML・HTTP ヘッダー・サイトマップ用注釈の生成
- 05多言語コンテンツの同等性監査
- 06ローカライズと地域形式の評価
活用シーン
- 01言語ページ間の hreflang エラー発見
- 02ドメイン横断の言語版サイトマップ生成
- 03翻訳間のコンテンツ網羅性比較
- 04地域ごとの日付・通貨・文化適応の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agricidaniel/ claude-seo --skill seo-hreflangインストール後、Claude Code で/seo-hreflangを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSE.txtreferences/content-parity.mdcultural-profiles.mdlocale-formats.mdmachine-translation-qa.md詳細
Hreflang と国際 SEO
既存の hreflang 実装を検証するか、多言語・複数地域のサイト向けに 正しい hreflang タグを生成します。HTML、HTTP ヘッダー、XML サイトマップでの 実装に対応しています。
検証項目
1. 自己参照タグ
- すべてのページに、自分自身を指す hreflang タグを含める必要があります
- 自己参照 URL は、そのページの正規 URL と完全に一致する必要があります
- 自己参照タグがない場合、Google は hreflang セット全体を無視します
2. 戻りタグ
- ページ A が hreflang でページ B にリンクしている場合、ページ B からページ A にもリンクする必要があります
- すべての hreflang 関係は双方向(A→B、B→A)である必要があります
- 戻りタグがない場合、両ページの hreflang シグナルが無効になります
- すべての言語バージョンが相互に参照していることを確認します(完全なメッシュ)
3. x-default タグ
- セレクター/フォールバック URL がある場合は推奨されます。一致する言語や地域がない場合のフォールバックページを指定します
- 通常は言語セレクターページまたは英語版を指します
- 代替ページのセットにつき x-default は 1 つだけです
- 他のすべての言語バージョンからの戻りタグも必要です
4. 言語コードの検証
- ISO 639-1 の 2 文字コードを使用する必要があります(例:
en、fr、de、ja) - ISO 15924 のスクリプトサブタグは任意で、スクリプトを示す公式かつ文書化された方法です:
zh-Hant(繁体字)/zh-Hans(簡体字)。スクリプトは地域と組み合わせることもできます。例:zh-Hans-USは有効です(言語 + スクリプト + 地域)。 - よくあるエラー:
enではなくengを使用する(ISO 639-2 であり、hreflang では無効)jaではなくjpを使用する(日本語のコードとして誤り)zhは有効ですが、スクリプトを指定するページでは曖昧です。スクリプトを指定する場合はzh-Hansまたはzh-Hantを推奨します
5. 地域コードの検証
- 地域の指定は任意で、ISO 3166-1 Alpha-2 を使用します(例:
en-US、en-GB、pt-BR) - 形式:
language-REGION(言語は小文字、地域は大文字) - 国コードだけでは無効です。言語なしで地域を指定することはできません(Google が挙げている誤った例
beは、実際にはベラルーシではなく、ベラルーシ語の 言語 コードです)。 - よくあるエラー:
en-GBではなくen-ukを使用する(UK は ISO 3166-1 の有効な地域コードではありません)EU/UNを地域として使用する(ISO 3166-1 の有効な値ではありません)es-LA(ラテンアメリカは国ではありません。特定の国を指定してください)- 言語の接頭辞なしで地域を指定する
5b. 地域ターゲティングのシグナル階層
- 実用的なロケールシグナルの目安:ccTLD > hreflang アノテーション > サーバーの所在地/IP > 住所/言語/通貨/ビジネス プロフィール。これを Google が確認したランキング順序として提示しないでください。hreflang は 指示ではなくヒントです。Google は地域を示すメタタグや HTML のジオターゲティング属性を無視します。
- Search Console の 「インターナショナル ターゲティング」レポートと国別ターゲティングの手動設定は 2022 年に削除されました。GSC で国別ターゲティングを設定するよう推奨しないでください。hreflang が残された手段です。
5c. 地域限定の検索ユニット(EEA、南アフリカ、トルコ)
- Google は、特定の地域にのみ存在する検索エクスペリエンスについて説明しています
(ドキュメント追加日:2026-09-08;https://developers.google.com/search/docs/appearance/aggregator-features):
- **EEA のみ:**アグリゲーター ユニットとサプライヤー ユニット(ホテル、フライト、地上交通、商品、2026-09-18 以降は地域ビジネスも含む)、エコシステム カルーセル、求人サイト向け機能。
- **トルコ:**プレイスサイト向け機能(ホテル、地域ビジネス)。
- **南アフリカ:**旅行、商品、レンタカー、フードデリバリー、地上交通向けのバッジと絞り込みチップ。
- 構造化データのカルーセルは 3 地域すべてで利用できますが、クエリの種類は異なります。 利用条件と参加方法はユニットごとに説明されており、ランキングシグナルではありません。
- サイトが hreflang バリエーションでこれらの地域に対応している場合は、ビジネスがアグリゲーターか直接のサプライヤーかをレポートに記載し、地域別ドキュメントを示してください。これにより、その市場で検索結果のレイアウトが異なっても、クライアントが不意に感じることはありません。
6. 正規 URL の整合性
- hreflang タグは正規 URL にのみ配置してください
- ページの
rel=canonicalが別の URL を指している場合、そのページの hreflang は無視されます - 正規 URL と hreflang URL は完全に一致している必要があります(末尾のスラッシュも含む)
- 正規 URL ではないページを、どの hreflang セットにも含めないでください
7. プロトコルの一貫性
- hreflang セット内のすべての URL で同じプロトコル(HTTPS または HTTP)を使用してください
- hreflang セット内で HTTP と HTTPS が混在すると、検証エラーが発生します
- HTTPS へ移行した後は、すべての hreflang タグを HTTPS に更新してください
8. クロスドメインへの対応
- hreflang は異なるドメイン間(例:example.com と example.de)でも機能します
- クロスドメイン hreflang では、両方のドメインに相互参照タグが必要です
- モニタリングや必要に応じたクロスサイトのサイトマップ送信には、Google Search Console による確認を使用してください
- クロスドメイン構成では、サイトマップを使った実装をおすすめします
よくある間違い
| 問題 | 重大度 | 修正方法 |
|---|---|---|
| 自己参照タグがない | 致命的 | 同じページの URL を指す hreflang を追加します |
| 相互参照タグがない(A→B だが B→A がない) | 致命的 | すべての代替ページに対応する相互参照タグを追加します |
| フォールバック動作が必要なのに x-default がない | 中 | フォールバック/選択ページを指す x-default を追加します |
無効な言語コード(例:eng) | 高 | ISO 639-1 の 2 文字コードを使用します |
無効な地域コード(例:en-uk) | 高 | ISO 3166-1 Alpha-2 コードを使用します |
| 正規 URL ではない URL に hreflang がある | 高 | hreflang を正規 URL のみに移します |
| URL の HTTP/HTTPS が一致しない | 中 | すべての URL を HTTPS に統一します |
| 末尾のスラッシュに一貫性がない | 中 | 正規 URL の形式に完全に合わせます |
| HTML とサイトマップの両方に hreflang がある | 低 | どちらか一方の方法を選びます(大規模サイトではサイトマップを推奨) |
| 必要なときに地域指定のない言語コードを使用している | 低 | 地域をターゲットとするコンテンツには地域修飾子を追加します |
実装方法
方法 1:HTML リンクタグ
最適な用途:ページごとの言語/地域のバリエーションが 50 未満のサイト。
<link rel="alternate" hreflang="en-US" href="https://example.com/page" />
<link rel="alternate" hreflang="en-GB" href="https://example.co.uk/page" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page" />
<head> セクションに配置します。すべてのページに、自分自身を含むすべての代替ページを記述する必要があります。
方法 2:HTTP ヘッダー
最適な用途:HTML 以外のファイル(PDF、ドキュメント)。
Link: <https://example.com/page>; rel="alternate"; hreflang="en-US",
<https://example.com/fr/page>; rel="alternate"; hreflang="fr",
<https://example.com/page>; rel="alternate"; hreflang="x-default"
サーバー設定または CDN ルールで設定します。
方法 3:XML サイトマップ(大規模サイトにおすすめ)
最適な用途:言語のバリエーションが多いサイト、クロスドメイン構成、または 50 ページ以上のサイト。
以下の「hreflang サイトマップの生成」セクションを参照してください。
方法の比較
| 方法 | 最適な用途 | メリット | デメリット |
|---|---|---|---|
| HTML リンクタグ | 小規模サイト(バリエーション 50 未満) | 実装が簡単で、ソース内で確認できる | <head> が肥大化し、大規模サイトでは管理が難しい |
| HTTP ヘッダー | HTML 以外のファイル | PDF や画像に対応 | サーバー設定が複雑で、HTML 内では確認できない |
| XML サイトマップ | 大規模サイト、クロスドメイン | 拡張性が高く、一元管理できる | ページ上で確認できず、サイトマップのメンテナンスが必要 |
hreflang の生成
プロセス
- 言語を検出する:言語を示す情報(URL パス、サブドメイン、TLD、HTML の lang 属性)をサイトからスキャンします
- ページの対応関係をマッピングする:言語/地域間で対応するページを照合します
- 言語コードを検証する:すべてのコードが ISO 639-1 および ISO 3166-1 に準拠していることを確認します
- タグを生成する:自己参照を含む、各ページの hreflang タグを作成します
- 相互参照タグを検証する:すべての関連付けが双方向であることを確認します
- x-default を追加する:各ページセットのフォールバックを設定します
- 出力する:実装コード(HTML、HTTP ヘッダー、またはサイトマップ XML)を生成します
hreflang サイトマップの生成
hreflang を含むサイトマップ
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/page</loc>
<xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/page" />
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.de/page" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page" />
</url>
<url>
<loc>https://example.com/fr/page</loc>
<xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/page" />
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.de/page" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page" />
</url>
</urlset>
主なルール:
xmlns:xhtml名前空間宣言を含めます- すべての
<url>エントリに、すべての言語の代替ページ(自分自身を含む)を含めます - 各代替ページは、独自の完全なセットを含む個別の
<url>エントリとして記述します - サイトマップファイルごとに、URL 数が 50,000 件または非圧縮時のサイズが 50MB のいずれかに先に達した時点で分割します
出力
hreflang 検証レポート
概要
- スキャンしたページの合計:XX
- 検出した言語のバリエーション:XX
- 見つかった問題:XX(致命的:X、高:X、中:X、低:X)
検証結果
| 言語 | URL | 自己参照 | 戻りタグ | x-default | ステータス |
|---|---|---|---|---|---|
| en-US | https://... | ✅ | ✅ | ✅ | ✅ |
| fr | https://... | ❌ | ⚠️ | ✅ | ❌ |
| de | https://... | ✅ | ❌ | ✅ | ❌ |
生成された hreflang タグ
- HTML
<link>タグ(HTML 方式を選択した場合) - HTTP ヘッダー値(ヘッダー方式を選択した場合)
hreflang-sitemap.xml(サイトマップ方式を選択した場合)
推奨事項
- 追加する必要がある実装
- 修正が必要なコード
- 方式の移行に関する提案(例:規模に応じて HTML からサイトマップに移行)
文化的適応の評価
多言語サイトを分析する際は、技術的な hreflang 検証にとどまらず、各対象市場に合わせてコンテンツが文化的に適応されているかも評価してください。
あらかじめ用意されたプロファイル(DACH、フランス語圏、ヒスパニック、日本語)については、references/cultural-profiles.md を読み込んでください。
評価手順:
- すべての言語バージョンと対象市場を特定します
- 該当する文化プロファイルを読み込みます
- CTA が文化的な期待(直接的か間接的か)に合っているか確認します
- 信頼性を示す要素(認証、法的ページ)が地域に適したものか確認します
- ローカライズされたページに外国ブランドへの言及がないか確認します
- 数値、日付、通貨の書式に一貫性があるか確認します
- 文化的適応に関する問題を中程度の重大度として報告します
出力: 言語バージョンごとの文化的適応スコア(0~100)と具体的な指摘事項。
コンテンツの同等性監査
コマンド: /seo hreflang audit <directory-or-url>
サイトまたはローカルのコンテンツディレクトリにあるすべての言語バージョンを対象に、コンテンツの同等性を監査します。
同等性の完全なマトリックスとスコアリング方法については、references/content-parity.md を読み込んでください。
確認項目:
- 宣言されたすべての言語でページが存在するか
- セクション構成が同等か(H2/H3 の数)
- SEO 要素が同等か(タイトル、メタデータ、スキーマのローカライズ)
- 単語数の比率が適切か(DE は EN より 25~35%長く、JA は 10~25%短くなるはずです)
- 鮮度の追跡(タイムスタンプを基に古い翻訳を検出)
- 文化的な要素のスキャン(外国ブランド、誤った法的情報、未翻訳の要素)
出力: ページごとのスコアと優先順位付けされた対応項目を含む同等性マトリックス表。
ロケール形式の検証
ロケールごとの数値、日付、通貨、住所、電話番号の書式をまとめた参照表については、references/locale-formats.md を読み込んでください。
確認項目:
- 数値書式の一貫性(例:de-DE のページでは「1,000.00」ではなく「1.000,00」を使用する必要があります)
- 日付書式がロケールの慣習に合っているか
- 対象市場に適した通貨記号と配置になっているか
- 電話番号が適切な国番号を含む国際形式か
参照ファイル
必要に応じて読み込んでください(起動時にすべて読み込まないでください)。
references/cultural-profiles.md:DACH、フランス語圏、ヒスパニック、日本語の文化的適応プロファイルreferences/locale-formats.md:ロケールごとの数値、日付、通貨、住所、電話番号の書式表references/content-parity.md:コンテンツ同等性監査の方法とスコアリングreferences/machine-translation-qa.md:未レビューの機械翻訳を検出します。Google のスパムポリシーでは、これを大規模なコンテンツの不正使用として扱います
エラー処理
| 状況 | 対応 |
|---|---|
| URL にアクセスできない(DNS エラー、接続拒否) | エラーを明確に報告します。サイト構成を推測してはいけません。URL を確認して再試行するようユーザーに提案します。 |
| hreflang タグが見つからない | タグが存在しないことを報告します。他の国際化のシグナル(サブディレクトリ、サブドメイン、ccTLD)を確認し、適切な hreflang の実装方法を提案します。 |
| 無効な言語コード/地域コードが検出された | 無効なコードと正しい置換候補をそれぞれ列挙します。実装にすぐ使える修正済みの hreflang タグ一式を提示します。 |
| その言語の文化プロファイルがない | cultural-profiles.md のデフォルトプロファイルのチェックリストを使用します。評価はあらかじめ用意されたプロファイルではなく、一般的なガイドラインに基づいていることを明記します。 |
| コンテンツ同等性監査のディレクトリが空 | コンテンツファイルが見つからなかったことを報告します。ディレクトリのパスを確認するか、ライブサイトの分析用に URL を提示するよう提案します。 |