| この記事の要点 |
|
hreflang 属性とは
hreflang は <a> 要素(および <link> / <area>)に付与できる属性で、リンク先のページがどの言語で書かれているかを示します。スクリーンリーダーや検索エンジンが言語切り替えの判断に使うため、多言語サイトでは重要なアクセシビリティ / SEO 属性です。
基本構文
<a href="URL" hreflang="言語コード">テキスト</a>
<!-- 実例 -->
<a href="/en/" hreflang="en">English</a>
<a href="/zh/" hreflang="zh-TW">繁體中文</a>
主な言語コード(ISO 639-1)
| コード | 言語 | コード | 言語 |
|---|---|---|---|
ja | 日本語 | en | 英語 |
zh | 中国語 | ko | 韓国語 |
fr | フランス語 | de | ドイツ語 |
es | スペイン語 | it | イタリア語 |
ru | ロシア語 | ar | アラビア語 |
pt | ポルトガル語 | nl | オランダ語 |
el | ギリシャ語 | la | ラテン語 |
ms | マレー語 | eo | エスペラント語 |
言語-地域コード(BCP 47)
同じ言語でも地域によって表記や語彙が異なる場合は 言語-地域 形式で表現します。地域コードは ISO 3166-1 alpha-2 です。
| コード | 意味 |
|---|---|
en-US | アメリカ英語 |
en-GB | イギリス英語 |
en-AU | オーストラリア英語 |
zh-CN | 簡体字中国語(中国本土) |
zh-TW | 繁体字中国語(台湾) |
zh-HK | 繁体字中国語(香港) |
pt-BR | ブラジルポルトガル語 |
pt-PT | ヨーロッパポルトガル語 |
多言語ナビゲーションでの使用例
言語切り替えメニューで hreflang を付けると、ユーザの利用環境(スクリーンリーダーや翻訳ツール)が「これは別言語へのリンク」と認識できます。
<nav aria-label="言語選択">
<ul>
<li><a href="/ja/" hreflang="ja" lang="ja">日本語</a></li>
<li><a href="/en/" hreflang="en" lang="en">English</a></li>
<li><a href="/zh-tw/" hreflang="zh-TW" lang="zh-TW">繁體中文</a></li>
<li><a href="/ko/" hreflang="ko" lang="ko">한국어</a></li>
</ul>
</nav>
リンクテキスト自体をその言語で書くのがアクセシビリティの定石です。リンクテキストの言語を lang 属性で明示しておくと、読み上げ時に正しい音声エンジンが選ばれます。
SEO 用途の hreflang(link 要素)
多言語サイトの SEO では <head> に <link rel="alternate" hreflang=...> を並べる方が重要です。Google はこれを基に言語別ページを判定します。
<head>
<link rel="alternate" hreflang="ja" href="https://example.com/ja/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="zh-TW" href="https://example.com/zh-tw/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page" />
</head>
x-default は「どの言語にも該当しないユーザ向けのデフォルトページ」を示し、言語切り替えのフォールバック先として使います。
注意点
| ポイント | 説明 |
|---|---|
| 大文字小文字 | 言語は小文字、地域は大文字慣習(en-US)。実際は大文字小文字を区別しない |
| 地域指定 | 必要なときだけ。en だけで十分なケースで en-US と書くと逆効果 |
| 相互リンク | SEO 用の hreflang は双方向に記載しないと無視される |
| a 要素の hreflang | ブラウザ動作には影響しないが、スクリーンリーダーが拾う |
関連
子ページ
子ページはありません
同階層のページ
- href属性
- target属性
- download 属性
- rel 属性
- hreflang属性
- type属性
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15