多語系 SEO 與 hreflang:同一篇文章的中英文版本怎麼共存
一句話答案
hreflang 是告訴搜尋引擎「這頁有哪些語言版本」的標籤,讓搜尋者看到自己語言的版本。每個版本都必須列出包含自己在內的所有版本(雙向互指),語系代碼要用 ISO 格式(例如 zh-TW、en),並加上 x-default 當作預設。
什麼時候需要 hreflang?
當同一份內容有多個語言或地區版本時。例如本站每篇文章都有繁中版與英文版。沒有 hreflang 時,搜尋引擎可能會:
- 把英文版顯示給台灣的使用者,或反過來。
- 把兩個版本當成重複內容,只收錄其中一個。
單一語系的網站不需要 hreflang。
網址結構該怎麼選?
| 結構 | 例子 | 優點 | 缺點 |
|---|---|---|---|
| 子目錄 | example.com/en/ |
共用網域權重、最容易維護 | 地區訊號較弱 |
| 子網域 | en.example.com |
可以分開部署 | 權重分散 |
| 國家網域 | example.co.uk |
地區訊號最強 | 成本高、要分別經營 |
| 網址參數 | ?lang=en |
— | Google 不建議 |
多數情況選子目錄最划算。本站用的就是子目錄:預設語系繁中不加前綴,英文加 /en/。
hreflang 怎麼寫?
在每個語言版本的 <head> 都放上完整的一組:
<link rel="alternate" hreflang="zh-TW" href="https://example.com/articles/geo/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/articles/geo/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/articles/geo/" />
三條規則:
- 包含自己:中文版也要列出指向自己的
zh-TW。 - 雙向互指:中文版指向英文版,英文版也必須指回中文版。只有單向的 hreflang 會被忽略。
- 使用絕對網址:要包含
https://與網域。
x-default 是什麼?
x-default 指定「沒有符合使用者語言的版本時,要顯示哪一頁」,通常指向預設語言或語言選擇頁。
除了 HTML 還能在哪裡宣告?
Google 支援三種方式,選一種即可(官方說明):
- HTML
<head>裡的<link>標籤(最常見) - HTTP 標頭(適合 PDF 等非 HTML 檔案)
- XML sitemap 中的
xhtml:link
本站同時用了 HTML 標籤與 sitemap,兩者內容一致不會衝突。
最常見的錯誤
- 語系代碼寫錯:
en-UK是錯的,英國要用en-GB;地區碼不能單獨使用,TW不是合法的 hreflang。 - 只有單向:新增英文版時忘了回頭更新中文版。
- canonical 指向其他語言:會讓那個語言版本無法被收錄。
- 語言切換靠 IP 自動轉址:Googlebot 主要從美國爬取,可能永遠看不到其他語言版本。請讓使用者手動切換,不要強制轉址。
用本站的健康檢查工具檢查任何網址,會驗證 hreflang 是否包含自己與 x-default。
常見問題
用 hreflang 就不需要 canonical 了嗎?
兩者都需要。每個語言版本都應該有指向自己的 canonical,不要把英文版的 canonical 指向中文版,否則英文版會被當成副本而不被收錄。
繁體中文應該用 zh-TW 還是 zh-Hant?
兩者 Google 都接受。zh-TW 表示「台灣使用的中文」,zh-Hant 表示「繁體字」。主要讀者在台灣時用 zh-TW 最直接。
可以只靠自動翻譯產生英文版嗎?
可以但要謹慎。品質低落的自動翻譯內容可能被視為低品質頁面。至少要人工校對,並確保內容對目標讀者有用。