Hreflang 與國際 SEO 稽核、驗證與產生。偵測常見錯誤、驗證語言/地區代碼,並產生正確的 hreflang 實作。當使用者提到「hreflang」、「i18n SEO」、「國際 SEO」、「多語言」、「多地區」或「語言標籤」時使用。
Hreflang 與國際 SEO
驗證現有的 hreflang 實作,或為多語言與多地區網站產生正確的 hreflang 標籤。支援 HTML、HTTP 標頭與 XML Sitemap 實作方式。
驗證檢查
1. 自我參照標籤
- 每個頁面必須包含指向自身的 hreflang 標籤
- 自我參照的 URL 必須與頁面的 canonical URL 完全一致
- 缺少自我參照標籤會導致 Google 忽略整個 hreflang 集合
2. 回返標籤
- 如果頁面 A 透過 hreflang 連結到頁面 B,頁面 B 必須回連到頁面 A
- 每個 hreflang 關係必須是雙向的(A→B 與 B→A)
- 缺少回返標籤會使兩個頁面的 hreflang 訊號失效
- 檢查所有語言版本是否互相參照(完整網狀結構)
3. x-default 標籤
- 當存在選擇器/備用 URL 時建議使用:指定未匹配語言/地區時的備用頁面
- 通常指向語言選擇器頁面或英文版
- 每組替代頁面只能有一個 x-default
- 所有其他語言版本也必須有回返標籤
4. 語言代碼驗證
- 必須使用 ISO 639-1 的兩個字母代碼(例如
en、fr、de、ja) - 可選的 ISO 15924 文字子標籤是官方文件規定的文字標示機制:
zh-Hant(繁體)/zh-Hans(簡體)。文字可與地區結合,例如zh-Hans-US是有效的(語言 + 文字 + 地區)。 - 常見錯誤:
eng而非en(ISO 639-2,不適用於 hreflang)jp而非ja(日語的錯誤代碼)zh有效但對特定文字頁面不明確;針對文字時建議使用zh-Hans或zh-Hant
5. 地區代碼驗證
- 可選的地區限定詞使用 ISO 3166-1 Alpha-2(例如
en-US、en-GB、pt-BR) - 格式:
language-REGION(語言小寫,地區大寫) - 單獨的國家代碼無效,你不能在沒有語言的情況下指定地區(Google 自己的錯誤範例是
be,實際上是白俄羅斯語的語言代碼,而非比利時)。 - 常見錯誤:
en-uk而非en-GB(UK 不是有效的 ISO 3166-1 地區代碼)EU/UN作為地區(不是有效的 ISO 3166-1 值)es-LA(拉丁美洲不是國家;請使用特定國家)- 地區沒有語言前綴
5b. 地理定位訊號層級
- 實用的地區訊號啟發式:ccTLD > hreflang 註解 > 伺服器位置/IP > 地址/語言/貨幣/商家檔案。請勿將其呈現為已確認的 Google 排名順序。hreflang 是提示,而非指令。Google 忽略位置 meta 標籤與 HTML 地理定位屬性。
- Search Console 的國際目標設定報告與手動國家目標設定功能已於 2022 年移除,請勿建議在 GSC 中設定國家目標;hreflang 是剩餘的槓桿。
6. Canonical URL 對齊
- Hreflang 標籤只能出現在 canonical URL 上
- 如果頁面有指向其他位置的
rel=canonical,該頁面上的 hreflang 將被忽略 - Canonical URL 與 hreflang URL 必須完全一致(包含結尾斜線)
- 非 canonical 頁面不應出現在任何 hreflang 集合中
7. 協定一致性
- 同一 hreflang 集合中的所有 URL 必須使用相同的協定(HTTPS 或 HTTP)
- 混合 HTTP/HTTPS 會導致驗證失敗
- 遷移至 HTTPS 後,請更新所有 hreflang 標籤為 HTTPS
8. 跨網域支援
- Hreflang 可跨不同網域運作(例如 example.com 與 example.de)
- 跨網域 hreflang 需要在兩個網域上都有回返標籤
- 使用 Google Search Console 驗證進行監控,或視需要提交跨站 Sitemap
- 建議跨網域設定使用 Sitemap 實作
常見錯誤
| 問題 | 嚴重性 | 修正 |
|---|---|---|
| 缺少自我參照標籤 | 嚴重 | 新增指向同一頁面 URL 的 hreflang |
| 缺少回返標籤(A→B 但無 B→A) | 嚴重 | 在所有替代頁面上新增對應的回返標籤 |
| 需要備用行為時缺少 x-default | 中等 | 新增指向備用/選擇器頁面的 x-default |
無效的語言代碼(例如 eng) |
高 | 使用 ISO 639-1 兩個字母代碼 |
無效的地區代碼(例如 en-uk) |
高 | 使用 ISO 3166-1 Alpha-2 代碼 |
| 在非 canonical URL 上的 hreflang | 高 | 僅將 hreflang 移至 canonical URL |
| URL 中 HTTP/HTTPS 不一致 | 中等 | 將所有 URL 標準化為 HTTPS |
| 結尾斜線不一致 | 中等 | 完全比照 canonical URL 格式 |
| 同時存在 HTML 與 Sitemap 中的 hreflang | 低 | 選擇一種方法(大型網站建議使用 Sitemap) |
| 需要時語言未附帶地區 | 低 | 為地理定位內容新增地區限定詞 |
實作方法
方法 1:HTML Link 標籤
最適合:每個頁面少於 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 Sitemap(大型網站建議使用)
最適合:具有許多語言變體、跨網域設定或超過 50 個頁面的網站。
請參閱下方的 Hreflang Sitemap 產生章節。
方法比較
| 方法 | 最適合 | 優點 | 缺點 |
|---|---|---|---|
| HTML link 標籤 | 小型網站(<50 種變體) | 易於實作,可在原始碼中看到 | 使 <head> 龐大,難以大規模維護 |
| HTTP 標頭 | 非 HTML 檔案 | 適用於 PDF、圖片 | 複雜的伺服器設定,在 HTML 中不可見 |
| XML Sitemap | 大型網站、跨網域 | 可擴展、集中管理 | 在頁面上不可見,需要維護 Sitemap |
Hreflang 產生
流程
- 偵測語言:掃描網站的語言指示器(URL 路徑、子網域、頂級網域、HTML lang 屬性)
- 對應頁面等效項:匹配跨語言/地區的對應頁面
- 驗證語言代碼:根據 ISO 639-1 與 ISO 3166-1 驗證所有代碼
- 產生標籤:為每個頁面建立 hreflang 標籤,包含自我參照
- 驗證回返標籤:確認所有關係都是雙向的
- 新增 x-default:為每個頁面集合設定備用頁面
- 輸出:產生實作代碼(HTML、HTTP 標頭或 Sitemap XML)
Hreflang Sitemap 產生
含 Hreflang 的 Sitemap
<?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>項目出現,並附帶自己的完整集合 - 以先達到者為準進行分割:每個 Sitemap 檔案 50,000 個 URL 或 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(如果選擇 Sitemap 方法)
建議
- 需要新增的遺漏實作
- 需要修正的錯誤代碼
- 方法遷移建議(例如,為擴展性從 HTML 遷移至 Sitemap)
文化適應評估
在分析多語言網站時,除了技術性的 hreflang 驗證之外,還要評估內容是否針對每個目標市場進行了文化適應。
載入 references/cultural-profiles.md 以取得預先建立的設定檔(DACH、法語區、西班牙語區、日語)。
評估步驟:
- 識別所有語言版本及其目標市場
- 載入相關的文化設定檔
- 檢查 CTA 是否符合文化期望(直接 vs 間接)
- 檢查信任訊號是否適合地區(認證、法律頁面)
- 檢查在地化頁面上是否有外國品牌參照
- 檢查數字/日期/貨幣格式的一致性
- 將文化適應問題標記為中等嚴重性
輸出: 每個語言版本的文化適應分數(0-100),附帶具體發現。
內容一致性稽核
指令: /seo hreflang audit <directory-or-url>
稽核網站或本地內容目錄中所有語言版本的內容一致性。
載入 references/content-parity.md 以取得完整的一致性矩陣與評分方法。
檢查項目:
- 所有宣告語言中的頁面存在性
- 章節結構等效性(H2/H3 數量)
- SEO 元素一致性(標題、meta、結構化資料在地化)
- 字數比例驗證(德文應比英文長 25-35%,日文應短 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:內容一致性稽核方法與評分
錯誤處理
| 情境 | 動作 |
|---|---|
| URL 無法連線(DNS 失敗、連線被拒) | 清楚回報錯誤。不要猜測網站結構。建議使用者驗證 URL 後重試。 |
| 找不到 hreflang 標籤 | 回報缺少。檢查其他國際化訊號(子目錄、子網域、ccTLD)並建議適當的 hreflang 實作方法。 |
| 偵測到無效的語言/地區代碼 | 列出每個無效代碼並提供正確的替代。提供一組已修正的 hreflang 標籤,可直接實作。 |
| 該語言沒有可用的文化設定檔 | 使用 cultural-profiles.md 中的預設設定檔檢查清單。請注意,評估是基於一般指南,而非預先建立的設定檔。 |
| 內容一致性目錄為空 | 回報未找到任何內容檔案。建議驗證目錄路徑或提供 URL 以進行即時網站分析。 |






