mcpField
3
30x-seo-hreflang

30x-seo-hreflang

github.com/norahe0304-artマーケティング・グロース5666 回インストール33 週間前に更新
リポジトリ

30x-seo-hreflang について

既存の hreflang 設定を検証し、多言語・多地域サイト向けのタグを生成するスキルです。HTML、HTTP ヘッダー、XML サイトマップに対応し、相互リンク、コード、正規 URL の整合性を確認します。

主な機能

  1. 01自己参照タグと戻りタグの検証
  2. 02言語コードと地域コードの確認
  3. 03正規 URL との整合性確認
  4. 04HTML、HTTP ヘッダー、サイトマップに対応
  5. 05hreflang の実装内容を生成

活用シーン

  1. 01言語別ページの hreflang を監査
  2. 02相互参照の不足を検出
  3. 03新しい地域サイト向けタグの生成
  4. 04大規模な hreflang セットをサイトマップへ移行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/norahe0304-art/30x-seo --skill 30x-seo-hreflang

インストール後、Claude Code で/30x-seo-hreflangを入力して読み込まれたか確認します。

詳細

Hreflang と国際 SEO

既存の hreflang 実装を検証するか、多言語・複数地域のサイト向けに正しい hreflang タグを生成します。HTML、HTTP ヘッダー、XML サイトマップによる実装に対応しています。

検証項目

1. 自己参照タグ
  • すべてのページに、自分自身を指す hreflang タグを含める必要があります
  • 自己参照 URL は、ページの canonical URL と完全に一致する必要があります
  • 自己参照タグがない場合、Google は hreflang セット全体を無視します
2. 返送タグ
  • ページ A が hreflang でページ B にリンクする場合、ページ B からページ A にもリンクする必要があります
  • すべての hreflang 関係は双方向(A→B と B→A)である必要があります
  • 返送タグがない場合、両方のページで hreflang シグナルが無効になります
  • すべての言語バージョンが相互に参照していることを確認してください(完全なメッシュ)
3. x-default タグ
  • 必須:該当する言語・地域がない場合のフォールバックページを指定します
  • 通常は、言語選択ページまたは英語版を指定します
  • 代替ページのセットごとに x-default は 1 つだけにします
  • ほかのすべての言語バージョンから返送タグが設定されている必要があります
4. 言語コードの検証
  • ISO 639-1 の 2 文字コードを使用する必要があります(例:en、fr、de、ja)
  • よくある間違い:
    • 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(言語は小文字、地域は大文字)
  • よくある間違い:
    • en-GB ではなく en-uk を使用する(UK は有効な ISO 3166-1 コードではありません)
    • es-LA を使用する(ラテンアメリカは国ではないため、具体的な国を指定してください)
    • 言語の接頭辞なしで地域を指定する
6. Canonical URL との整合性
  • hreflang タグは canonical URL にのみ設定する必要があります
  • ページの rel=canonical が別の URL を指している場合、そのページの hreflang は無視されます
  • canonical URL と hreflang URL は、末尾のスラッシュも含めて完全に一致する必要があります
  • canonical ではないページを 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 コードを使用する
canonical ではない URL に hreflang がある高canonical URL にのみ hreflang を設定する
URL の HTTP/HTTPS が一致しない中すべての URL を HTTPS に統一する
末尾のスラッシュに一貫性がない中canonical URL の形式に完全に合わせる
HTML とサイトマップの両方に hreflang がある低どちらか一方を選ぶ。大規模サイトではサイトマップを推奨
必要な地域指定子がない低地域をターゲットにしたコンテンツには地域指定子を追加する

実装方法

方法 1:HTML リンクタグ

最適な対象:1 ページあたりの言語・地域バリエーションが 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 link タグ小規模なサイト(<50 種類)実装が簡単で、ソースに表示される<head> が肥大化し、大規模な運用では保守が困難
HTTP ヘッダーHTML 以外のファイルPDF や画像にも対応サーバー設定が複雑で、HTML には表示されない
XML サイトマップ大規模サイト、複数ドメイン拡張性が高く、管理を一元化できるページには表示されず、サイトマップの保守が必要

Hreflang の生成

プロセス
  1. 言語を検出する:サイトをスキャンし、言語を示す情報(URL パス、サブドメイン、TLD、HTML の lang 属性)を確認します
  2. ページの対応関係をマッピングする:言語や地域をまたいで対応するページを特定します
  3. 言語コードを検証する:すべてのコードが ISO 639-1 および ISO 3166-1 に準拠していることを確認します
  4. タグを生成する:自己参照を含む、各ページの hreflang タグを作成します
  5. 戻りタグを確認する:すべての関係が双方向になっていることを確認します
  6. x-default を追加する:各ページセットのフォールバックを設定します
  7. 出力する:実装コード(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> エントリとして記述する必要があります
  • サイトマップファイルごとに 50,000 URL を上限とします

出力

Hreflang 検証レポート
概要
  • スキャンしたページの合計:XX
  • 検出した言語バリエーション:XX
  • 検出した問題:XX(重大:X、高:X、中:X、低:X)
検証結果
言語URL自己参照戻りタグx-defaultステータス
en-UShttps://...✅✅✅✅
frhttps://...❌⚠️✅❌
dehttps://...✅❌✅❌
生成された Hreflang タグ
  • HTML <link> タグ(HTML 方式を選択した場合)
  • HTTP ヘッダー値(ヘッダー方式を選択した場合)
  • hreflang-sitemap.xml(サイトマップ方式を選択した場合)
推奨事項
  • 追加が必要な未実装項目
  • 修正が必要な誤ったコード
  • 方法の移行に関する提案(例:規模拡大に伴う HTML → サイトマップへの移行)

[PROTOCOL]: 変更時はこのヘッダーを更新し、その後 CLAUDE.md を確認してください

コメント