搜尋
清除搜尋內容
關閉搜尋框
Google 應用程式
主選單

使用 hreflang 提供正確語言和地區的網址

為了服務世界各地的使用者,許多網站都會提供各種翻譯版本,或是針對特定地區的使用者提供專屬內容。Google 會使用 rel="alternate" hreflang="x" 屬性在搜尋結果中提供正確語言或地區的網址。

Creating multi-regional and multilingual sites

如果您的網站符合以下情形,建議您使用 rel="alternate" hreflang="x"

  • 只翻譯了網頁範本 (例如導覽和頁尾部分),主要內容仍是以單一語言呈現。對於大多數內容都是使用者自己張貼的網頁來說,這是很普遍的情況,例如論壇網頁。
  • 您的網頁大部分的內容都很類似,而且只使用了一種語言,但少數內容有專屬的地區版本。舉例來說,您的網站上的英文網頁可能有不同的版本,分別適用於美國、英國和愛爾蘭的使用者。
  • 您的所有網站內容都已完全翻譯成其他語言。例如,您的每個網頁都分別提供了德文和英文版本。

使用語言註解

假設您的英文網頁位於 http://www.example.com/,而西班牙文網頁則位於 http://es.example.com/。您可以從下列三種方法中任選一種告訴 Google,這兩個網址的網頁內容是互相對應的版本。

  • 使用標頭中的 HTML 連結元素。 在 http://www.example.com/ 的 HTML <head> 部分中加入 link 元素,藉此指向該網頁位於 http://es.example.com/ 的西班牙文版本,如下所示:
    <link rel="alternate" hreflang="es" href="http://es.example.com/" />
  • 使用 HTTP 標頭。 如要發佈非 HTML 檔案 (例如 PDF 檔),您可以使用 HTTP 標頭指定不同語言版本的網址:
    Link: <http://es.example.com/>; rel="alternate"; hreflang="es"
    如要在連結的 HTTP 標頭中指定多個 hreflang 值,請使用半形逗號來分開各個值,如下所示:
    連結:<http://es.example.com/>; rel="alternate"; hreflang="es",<http://de.example.com/>; rel="alternate"; hreflang="de"
  • 使用 Sitemap。如果不要使用標記,您可以利用 Sitemap 向我們提交語言版本資訊。

如果您的網址有多種語言版本,您必須為每種語言的網頁標示出所有語言的版本 (包括本身的語言版本)。舉例來說,如果您的網站提供法文、英文和西班牙文版本的內容,則西班牙文版本除了自己的語言連結外,還必須加入英文和法文版本的 rel="alternate" hreflang="x" 連結,而英文和法文版本也必須加入相對應的連結,分別指向彼此和西班牙文網站。

您可以將同一個網域中的多語系網址設定為獨立的網址,也可以使用來自不同網域的網址。

如果您需要減少網站中的雙向連結數量,藉此簡化部署、維護或遷移作業 (例如,您的網站支援 40 種語言,而您想把新建立的西班牙文網頁從 HTTP 遷移至 HTTPS),請務必在新擴充的語言頁面和原始/主要語言的頁面之間建立雙向連結。舉例來說,如果您的網站起初是以法文建立 (網址中含有 .fr),則應該將較新的墨西哥文 (.mx) 和西班牙文 (.es) 網頁與主要的法文網頁建立雙向連結,而非在兩個較新的網頁版本 (.mx 和 .es) 之間建立雙向連結。

如果您為使用相同語言但來自不同地區的訪客指定了替代網址,建議您針對沒有指定地理區域的使用者提供一般性網址。舉例來說,您可以為愛爾蘭、加拿大和澳洲的英文使用者提供特定網址 (分別使用 en-ieen-caen-au),但是將其他英文使用者導向一般的英文網頁 (使用 en),並且將其餘的所有使用者導向首頁。在這種情況下,建議您為英國地區 (假設) 搜尋網路的使用者指定一般的英文網頁 (使用 en)。您可以使用 Sitemap 檔案為這一組網頁加上註解,也可以按照以下範例使用 HTML 連結標記:

<link rel="alternate" href="http://example.com/en-ie" hreflang="en-ie" />
<link rel="alternate" href="http://example.com/en-ca" hreflang="en-ca" />
<link rel="alternate" href="http://example.com/en-au" hreflang="en-au" />
<link rel="alternate" href="http://example.com/en" hreflang="en" />

如果首頁提供語言/地區選擇功能或自動導向功能,則必須一併為 hreflang 的 "x-default" 值加上註解,如下所示:
<link rel="alternate" href="http://example.com/" hreflang="x-default" />

支援的語言值

hreflang 屬性的值是用於識別替代網址的語言 (採用 ISO 639-1 格式) 和/或地區 (採用 ISO 3166-1 Alpha 2 格式)。範例如下:

  • de:德文內容 (不限地區)
  • en-GB:對英國地區的使用者顯示的英文內容
  • de-ES:對西班牙地區的使用者顯示的德文內容

請勿自行指定國家/地區代碼!Google 不會自動根據國家/地區代碼衍生語言。如果您要簡化標記,可以指定語言代碼。在語言之後加上國家/地區代碼,則可限定網頁在特定地理區域顯示。範例如下:

  • be:白俄羅斯文,與地理區域無關 (比利時法文)
  • nl-be比利時荷蘭文
  • fr-be:比利時法文

對於不同語言的指令碼版本,系統會根據國家/地區產生適當的指令碼。例如,對於 zh-TW 的使用者,系統會自動衍生出語言指令碼:zh-TW (本例中為繁體中文)。您也可以使用 ISO 15924 明確指定指令碼,如下所示:

  • zh-Hant:繁體中文
  • zh-Hans:簡體中文

另一種做法是指定指令碼和地區的組合,例如使用 zh-Hans-TW 對台灣使用者指定簡體中文。

最後,"x-default" 保留值可用於指定語言選擇工具/重新導向程式,讓使用者自行選擇語言或地區,例如在首頁上顯示可供點選的世界地圖。

常見錯誤

重要事項:請確認您所提供的 hreflang 值確實有效,特別注意避免兩種最常見的錯誤:

  • 缺少確認連結:如果網頁 A 的連結指向網頁 B,網頁 B 的連結必須返回指向網頁 A。如果所有使用 hreflang 註解的網頁都缺少確認連結,則可能導致註解遭到忽略或解讀不正確。
  • 語言代碼有誤:請確認您用來識別替代網址的語言 (採用 ISO 639-1 格式) 和/或地區 (採用 ISO 3166-1 Alpha 2 格式) 所使用的所有語言代碼無誤。單獨指定地區是無效的。
hreflang 設定範例:實際使用註解

Example Widgets, Inc 的網站為美國、英國和德國地區的使用者提供服務。下列網址含有大量相同內容,但每個地區的版本都有部分差異:

  • http://www.example.com/ 未指定任何語言或語言代碼的預設網頁,可讓使用者自行選擇語言和地區。
  • http://en.example.com/page.html 英文首頁,包含美國至各國的航運費用資訊。
  • http://en-gb.example.com/page.html 英文網頁,以英鎊為單位顯示價格。
  • http://en-us.example.com/page.html 英文網頁,以美元為單位顯示價格。
  • http://de.example.com/seite.html 德文版本的內容。

rel="alternate" hreflang="x" 適用於網頁層級 (而非網站層級),您必須視情況為各組網頁加上標記,包括首頁。您可以指定各種內容版本和語言/地區的組合,數量不限。

如要指示 Google 對使用 Google 德文版搜尋的使用者提供德文版本的網頁,對使用 google.com 英文版搜尋的使用者顯示 en-us 版本的網頁,以及對使用 google.co.uk 英文版搜尋的使用者提供 en-gb 版本的網頁,請使用 rel="alternate" hreflang="x" 識別替代語言版本。

加入一組 rel="alternate" hreflang="x" 連結元素,更新其中每個網址的 HTML。如果預設網頁未指定任何語言或語言代碼,請加入 rel="alternate" hreflang="x-default"


<link rel="alternate" hreflang="x-default" href="http://www.example.com/" />
<link rel="alternate" hreflang="en-gb" href="http://en-gb.example.com/page.html" />
<link rel="alternate" hreflang="en-us" href="http://en-us.example.com/page.html" />
<link rel="alternate" hreflang="en" href="http://en.example.com/page.html" />
<link rel="alternate" hreflang="de" href="http://de.example.com/seite.html" />

這個標記可讓 Google 的演算法將這些網頁全部視為各自的替代版本

 

這篇文章實用嗎?
我們應如何改進呢?