🌐 hreflang タグジェネレーター
ベース URL と対応言語を選択するだけで <link rel="alternate" hreflang="..."> タグを一括生成。x-default 自動付与、ISO 639 + 国コードチェック、CSV 入力で多パス一括処理。
🔒 プライバシーについて
- ・入力した URL はサーバーに送信されません
- ・すべての処理はブラウザ内で完結します
- ・登録・ログイン・課金は一切不要です
カンマ区切り。形式: ISO 639-1 (例 en) または ISO 639-1 + ISO 3166-1 (例 en-US, zh-CN)。
各 URL に対して上記のロケール設定が適用されます。
📄 生成タグ
📖 つまずきやすいポイント
ベース URL と対応ロケールから <link rel="alternate" hreflang="…"> を生成します。パス先頭・サブドメイン・クエリの 3 通りの URL パターンと x-default の自動付与、CSV による一括生成に対応し、処理はブラウザ内で完結します。hreflang は検索順位を上げるための要素ではありません — 「同じ内容の別言語版がここにある」と申告し、検索エンジンにどの版を出させるかを助けるだけのものです。
| ケース | 何が起きるか | どうする |
|---|---|---|
| 相互参照になっていなくて無視される | hreflang はグループ全体が互いを指していないと成立しません — 日本語版が英語版を指していても、英語版が日本語版を指していなければ、Google はそのセットごと無視します。さらに見落とされやすいのが自分自身への hreflang も必要だという点で、日本語版のページには hreflang="ja" で自分を指すタグも入れます。実際にいちばん多い失敗は「1 ページだけ更新して他の言語版を忘れる」ことです — 新しい言語を追加したときに既存の全ページのタグを更新しなければならないという運用負荷が、この仕組みの本質的な難しさです。 |
生成したタグのセットを、全言語版の <head> にそっくり同じ内容で入れてください — 各ページで内容を変える必要はありません。実装としては、ページのテンプレートで言語一覧をループして出力するのが唯一まともな方法です — 手で書くと必ずどこかがずれます。大規模サイトでは、HTML ではなく sitemap.xml に書く方式を検討してください — <xhtml:link> で同じ情報を表現でき、1 つのファイルで全ページ分を管理できるので、更新漏れが構造的に起きません。確認は Search Console の「国際ターゲティング」レポートで、実際に認識されているかを見てください — 「リターンタグがありません」と出ていれば、それが相互参照の欠落です。 |
| 言語コードの書式が間違っている | hreflang の値は「言語」または「言語 + 地域」で、地域だけを書くことはできません — hreflang="US" は無効です。よくある誤りとしては、en-UK (正しくは en-GB)、zh だけで簡体字と繁体字を区別しようとする、アンダースコア区切りの ja_JP (ハイフンが正しい) などがあります。中国語はとくに注意が必要で、簡体字と繁体字は zh-Hans / zh-Hant という文字体系のコードで書き分けます — zh-CN / zh-TW も使えますが、これは地域なのでシンガポールやマレーシアの簡体字利用者には一致しません。 |
言語コードは ISO 639-1、地域コードは ISO 3166-1 alpha-2、区切りはハイフンです。そして重要なのは、地域を付ける必要があるかを考えることです — hreflang="en" は英語話者すべてに一致しますが、hreflang="en-US" は米国にいる英語話者だけに一致します。国ごとに内容や価格が違わないなら、地域は付けないほうが到達範囲が広くなります。地域を付けるのは、通貨・送料・法規制が国ごとに違うページに限ってください。検証は無料の hreflang チェッカーを使うのが確実ですが、まずは自分で 2 言語分の HTML を並べて、互いを指しているかを目で確認してください — ほとんどの誤りはこの段階で見つかります。 |
| canonical と矛盾して英語版がインデックスされない | hreflang と canonical は役割が違うのに、混同されがちです。各言語版の canonical は自分自身を指す必要があります — /en/about/ の canonical を /ja/about/ にすると、「英語版は日本語版の複製だから日本語版だけをインデックスしろ」と宣言したことになり、英語版は検索結果から消えます。そのうえで hreflang も無視されます (canonical が別ページを指しているセットは信頼されないため)。「多言語だから正規化が必要だろう」という善意の設定が、正反対の結果を生む典型例です。 |
各言語版の canonical は必ず自分自身にしてください。hreflang が「別の言語版の存在」を伝え、canonical が「このページ自身が正規版である」と伝える — この 2 つは併存して初めて正しく機能します。canonical を使うべきなのは、同じ言語の中で URL が重複している場合 (末尾スラッシュの有無、トラッキングパラメータ付き URL、印刷用ページなど) だけです。実装したら、Search Console の URL 検査で「Google が選択した正規 URL」を確認してください — ここが自分の意図と違っていれば、設定が伝わっていないという明確な証拠です。 |
hreflang を入れれば全言語版がインデックスされる、というわけではありません。翻訳が薄い、あるいは機械翻訳をそのまま出しているページは、hreflang があっても品質評価で落ちます — このサイト自身、2026 年 7 月にポルトガル語とドイツ語版を廃止しました。実態は英語ページの複製で、独自の価値が無かったためで、576 URL を 301 リダイレクトで整理しています。言語版を増やす前に、「その言語で読む価値のある内容になっているか」を確認してください — 薄い翻訳を大量に足すことは、サイト全体の評価にとってはむしろ負債です。実装場所は HTML の <link>、HTTP レスポンスヘッダ、sitemap.xml の 3 通りがあり、どれか 1 つでよく、併用しても構いませんが、内容が食い違うと無視されます。PDF のように <head> を持たないファイルには、HTTP ヘッダの Link: を使ってください。
📖 使い方
-
1
ベース URL を入力多言語化したいページの URL を入力。
-
2
ロケールを指定対応する言語コードをカンマ区切りで入力 (en, ja, ko 等)。
-
3
タグを取得生成された <link> タグを各ページの <head> に貼り付け。
❓ よくある質問
x-default は必須ですか?
hreflang はどこに記述すべき?
双方向リンクは必要ですか?
🔗 関連ツール
🐛 このツールで問題が発生しましたか?
完全無料・登録不要。再現手順だけでも結構です。届いたご報告は運営者に直接届き、修正の参考にします。
ご報告ありがとうございます!
運営者に届きました。改善の参考にさせていただきます。