Mac 上的 hreflang 產生器是一個瀏覽器端工具,能將一份語系與網址列表轉成一組相同的、已跳脫的 HTML alternate 連結,可直接貼到網站上每個在地化頁面的 head 區塊。在 macOS 上,整個工作流程都可以在 Safari、Chrome、Firefox 或 Arc 中執行,不需要安裝任何東西、不必同步到遠端服務,也不用開啟 Terminal 指令稿。你把「語系 | 網址」的資料列輸入到一個文字區域,工具會以單一字元「|」分隔每一列,透過瀏覽器的 Intl.getCanonicalLocales 函式將語系大小寫正規化,把每個網址標準化為不含片段的 HTTP 或 HTTPS 形式,跳脫屬性中的 & 與引號,然後每一列輸出一個 rel="alternate" 元素。接著你把整個區塊複製、貼到每個 alternate 頁面,並對線上頁面進行爬取以確認自我連結與回連連結。Hreflang 產生器完全依照這個流程運作,而本文接下來會逐步說明 Mac 端的操作步驟、工具強制要求的輸入規則,以及讓多語系叢集保持健康的部署檢查。
在任何 Mac 瀏覽器中執行產生器,能讓網站內部結構的機密留在第三方伺服器之外。網址片段、語言決策以及備援頁面的存在與否都不會離開筆電,這對處理受監管內容或未公開產品上市的網站來說相當重要。同樣的本機取向也代表,不論你身在柏林的辦公桌前、聖保羅的共享工作空間,還是在沒有 Wi-Fi 的咖啡廳離線工作,工具都會產生相同的輸出。

為何瀏覽器端 hreflang 產生器適合 Mac 工作流程
macOS 本身已內建現代瀏覽器引擎、保留格式的系統剪貼簿,以及輕量級編輯器(TextEdit、BBedit 或 VS Code)的選擇,能在產生器產出 head 區塊時存放部署草稿。瀏覽器端產生器可直接整合到這套堆疊中,無需新增伺服器依賴、Node.js 安裝或 Python 環境,讓單兵作戰的 SEO 或內容團隊第一天就能採用。你只需開一個新分頁、貼上語系列表、複製產生的 link 元素,然後繼續進行下一個工作。
在瀏覽器中執行的權衡在於,工具無法主動連出去驗證你的 alternate 連結,因此它刻意回傳一個一致的區塊,讓你安裝到每個頁面的 head 中。對線上網站驗證該區塊是另一個獨立的爬取步驟,由你透過桌面爬蟲或瀏覽器的 Network 分頁來驅動。將產生與驗證分成兩個獨立步驟,既能維持本機執行的承諾,又為真正的雙向連結稽核保留空間。
輸入格式:產生器逐列接受的內容
每一列輸入都必須嚴格符合「語系 | 完整網址」的格式。直立線符號是工具唯一接受的分隔符,因此像 en-US | https://example.com/ 這樣的列可以乾淨地解析,而 en-US,https://example.com/ 則會被拒絕。網址必須包含協定(http 或 https)與主機;相對路徑、協定相對參考、內嵌認證資訊以及片段都會被拒絕。接著工具會將語系標籤正規化、透過瀏覽器等級的解析器將網址標準化,並在輸出 HTML 前跳脫 &、引號及其他屬性敏感字元。
每一列的語系端可以是兩個字母的語言代碼、可選的四個字母的書寫代碼,以及可選的兩個字母的區域代碼,依此順序。國家代碼不能單獨出現在第一個位置;fr-CA 是有效的,CA-fr 則無效,單獨的 US 也會被拒絕。大小寫會在解析後被正規化,這就是為什麼你可以輸入 en-us 而在輸出中看到 en-US,或輸入 zh-hant 而看到 zh-Hant。下表顯示產生器強制執行的格式規則:
| 輸入列片段 | 正規化形式 | 代表意義 |
|---|---|---|
| en-us | en-US | 美國使用的英文 |
| fr-ca | fr-CA | 加拿大使用的法文 |
| fr | fr | 通用法文備援 |
| zh-hant | zh-Hant | 繁體中文書寫系統 |
| zh-hans-cn | zh-Hans-CN | 中國大陸使用的簡體中文 |
| x-default | x-default | 未符合語系的特殊備援 |
重複的語系值會在正規化後以不區分大小寫的方式被拒絕,因此將 en-US 與 en-us 列成兩列會讓整組輸入失敗。完整輸入必須包含至少兩列(含目前頁面),且總列數上限為一百列。對單一格式錯誤的列就讓整組失敗,可避免在複製時輸出不完整的區塊、卻悄悄漏掉某個國家或語言版本。若需並列參考每種接受格式,Hreflang 產生器速查表會以範例逐一說明列的語法規則。
特殊代號 x-default 並不是一個語言。它代表一個為設定值不符合其他任何 listed alternate 的使用者所設計的頁面(通常是國家選擇器或通用登陸頁),且一組中只能出現一個 x-default 列。產品契約強調,產生器只驗證保守的標籤格式,而非搜尋引擎目前可能支援的完整 ISO 語言與國家註冊表,因此結構上整潔的程式碼仍可能不被支援。部署前,請將每個預定的語言與區域與 Google 的本地化版本說明文件 以及每個頁面背後的受眾進行比對確認。
在 Mac 上建立 Hreflang 標籤:三步驟工作流程
- 在 Safari、Chrome、Firefox 或 Arc 中開啟 Hreflang 產生器。盤點網站上每個對應的在地化頁面,為每個語言或區域寫下一列,包含你目前正在編輯的網址。僅在確實存在備援頁面時,才新增最後一列 x-default | line。
- 將各列以「語系 | 完整網址」的格式貼入文字區域,每列一行,僅使用單一「|」字元。工具會即時標示格式錯誤的列,確保你絕不會複製到不完整的輸出。
- 複製產生的 rel="alternate" 區塊,在網站上每個 alternate 頁面的 <head> 中安裝完全相同的集合,然後從每個語言叢集中各挑一個網址進行爬取,確認每個頁面都宣告了完整集合,且每個 alternate 都回傳 200。
這三個步驟大致只需在試算表、瀏覽器分頁與你的 CMS 之間切換的時間,且對你的發佈系統如何儲存 head 中介資料沒有任何假設。無論是靜態網站產生器、無頭 CMS、帶有自訂欄位的 WordPress 佈景主題,或是純 HTML 檔案,都能接受同一段貼上的區塊,這也是為什麼產生器刻意輸出標準 HTML,而非 CMS 專屬的短代碼。
在每個 Alternate 頁面的 Head 中安裝區塊
部署是最常出錯的步驟,因為叢集上的每個 alternate 頁面都必須發佈完整集合,而不僅是連結到自己和一個鄰居。WHATWG HTML alternate-links 規範 將這個關係描述為一組帶有 rel="alternate" 與 hreflang 屬性的 link 元素,Google 的官方指引也呼應該結構,用於 <head> 中的 link 元素。自我參照是用來告訴爬蟲哪一列適用於目前網址的部分,而每個鄰居的回連參照則是用來證明叢集本身對於其結構已有共識。
在 Mac 上,部署例行程式通常從將產生的區塊複製到剪貼簿開始,接著切換到管理頁面範本的文字編輯器或 CMS,並將區塊貼在 title 與 meta description 標籤下方。如果網站使用範本引擎,相同的區塊可以透過 partial 或 layout include 注入,讓每個在地化路由自動渲染出相同的集合,無需手動編輯。如果網站交付的是純 HTML,則需逐檔更新每個在地化檔案,並透過 TextEdit、BBedit 或 VS Code 重新儲存,再透過版本控制推送回去。
相同的完整集合絕不能同時分散在 HTML head、HTTP 標頭與 XML sitemap 中。Google 將這些實作方式視為等價,因此在某個網址變動的瞬間,維護多份複本就會產生漂移。請挑選你的 CMS 能維持完整且同步的單一通道(靜態與無頭網站通常使用 HTML head),並在上線前移除 HTTP 標頭與 sitemap 中的任何重複宣告。
發佈後驗證自我與回連連結
部署完成後,請在 Mac 瀏覽器中開啟每個語系,檢視原始碼以確認區塊看起來正確,接著開啟瀏覽器的開發者控制台,檢查解析後的 <head>,確認屬性已正確跳脫。接著可使用 Screaming Frog 或 Sitebulb 等桌面爬蟲,從每個語言叢集載入一個網址樣本,比對宣告集合與設定的 alternate,標記出任何宣告集合與鄰居不符的頁面。若需更深入的驗證例行程式與重要訊號說明,多語系 SEO hreflang 標籤準確度檢查指南 會列出 Mac 稽核可執行的確切檢查項目。
每個 alternate 都必須回傳可用的 200 頁面。重新導向鏈、軟式 404 以及被 robots.txt 封鎖的頁面,都會讓叢集失效,即使 head 中的標籤看起來正確也一樣。產生器無法連到線上網站證明雙向連結,因此持續的品質取決於在新增、移除、重新導向或遷移到新的標準網址時更新每個成員。一個有幫助的 macOS 小習慣:維護一份單一試算表,列出每個語系、其網址、上次通過稽核的日期,以及一個重新導向欄位,讓季度檢查只需幾分鐘而非一整個下午。
在 macOS 上產生 hreflang 時的常見陷阱
大多數失效的 hreflang 部署都以同樣的方式出錯:A 頁面將 B 頁面列為替代版本,但 B 頁面卻從未將 A 頁面列回來。Mac 端的產生器能幫您產生一組完全相同的內容供您貼到各處,但它無法強制確保您真的在每個頁面都貼上。在複製該區塊之前,請先計算您預期會有的本地化頁面數量,並確認您的 CMS 範本、版面配置或靜態檔案是否已正確接入以接收該內容。
第二個常見陷阱是在同一個叢集中混用了大小寫與指令碼子標籤,導致 en-us 與 en-US 兩列同時出現在不同檔案中。經過標準化處理後,這些重複項目會發生衝突,產生器會拒絕整組輸出,而這其實是安全的結果。請一律以工具在輸出中印出的標準大小寫為準,然後透過 Mac Terminal 工作階段使用 grep 稽核實際上線的頁面,確認舊有檔案中沒有殘留舊式的大小寫。
第三個陷阱是將 x-default 視為一種語言。它是針對設定與其他替代版本不符的使用者所設計的後備標記,且在同一個叢集中只能有一列使用它。如果您發現自己加了兩次 x-default,則應移除第二個宣告,僅保留真正的後備 URL。最後,hreflang 並不會翻譯內容、偵測語言,也無法保證搜尋結果 — 它只是描述一組實質等價的本地化頁面之間的關係。這些標記並不能取代翻譯後的主要內容或完善的國際化架構,而 Google 仍可能根據連結區塊以外的許多訊號,以演算法決定要顯示哪個本地化版本。