hreflang
hreflang 用來告訴搜尋引擎不同語言/地區的對應頁面,避免跨語言互相競爭與錯誤投放。
定義
hreflang 是 <link rel="alternate" hreflang="..."> 的語言/地區標記,用於多語言或多地區版本的頁面配對。它協助 Google 對正確語言使用者顯示對應版本。
為什麼重要
- 降低不同語言版本互相競爭(cannibalization)
- 提升地區/語言投放正確性
- 讓爬蟲更容易理解站內語言結構
- 改善使用者體驗(自動導向正確語言版本)
- 避免 Google 把不同語言視為重複內容
- 支援同語言不同地區變體(例如 en-US vs en-GB)
- 與 canonical 搭配使用,完整描述頁面關係
怎麼做(實作重點)
- 每個語言版本都要互相宣告(雙向)
- 加上 x-default 作為預設版本
- canonical 仍指向自己,不要拿 canonical 取代 hreflang
- 使用 ISO 639-1 語言碼(zh、en)+ 可選 ISO 3166-1 地區碼(TW、US)
- 可放在 HTML head、HTTP header 或 sitemap(大型站建議用 sitemap)
- 確保所有 alternate URL 都回傳 200 且互相確認
- 定期驗證 hreflang 設定(Search Console 會報告錯誤)
範例
html
<!-- HTML head 實作 -->
<link rel="alternate" hreflang="en" href="https://example.com/en/about" />
<link rel="alternate" hreflang="zh-TW" href="https://example.com/about" />
<link rel="alternate" hreflang="ja" href="https://example.com/ja/about" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/about" />
<link rel="canonical" href="https://example.com/about" /> <!-- 自指 canonical -->xml
<!-- 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/about</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/about" />
<xhtml:link rel="alternate" hreflang="zh-TW" href="https://example.com/about" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/about" />
</url>
</urlset>相關連結
常見問題
關於這個詞彙的常見問答。