| この記事の要点 |
|
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・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09