Hreflang 有一個屬性,使得調試變得特別煩人:每個故障模式都會產生看起來正確的標記。沒有控制台錯誤,瀏覽器中沒有紅色徽章,沒有建置失敗。標籤呈現,頁面驗證為 HTML,註釋沒有任何作用。幾週後,您會從搜尋控制台報告或其他國家/地區的某人那裡發現他們得到了錯誤的頁面。
我現在已經調試了足夠多的這些內容,以建立一個清單。這就是那個列表,大致按照我找到每個列表的頻率排序,以及您將觀察到的症狀和修復。它位於下面 完整的 hreflang 指南 與碎片一起 x-預設 和 赫雷夫朗與規範.
TL;DR: 最常見的人字形錯誤是缺少返回標籤、非 ISO 代碼等
en-UK,相對 URL,跨語言的規範,缺失x-default,以及相同 URL 的混合實作方法。它們都是靜音的:標記渲染並且什麼都不做。搜尋控制台'國際目標報告大規模捕獲回傳標籤和未知程式碼錯誤;其餘的則需要爬行或查看渲染的 HTML。這 hreflang 標籤產生器 在部署之前驗證程式碼、URL、重複項和遺失的後備項。
1。 缺少返回標籤
症狀: 搜尋控制台報告和報價;無返回標籤和報價;語言版本不會交換正確的市場,整個集合的行為就好像不存在 hreflang 一樣。
原因: A 頁聲明 B 頁為其備用頁,但 B 頁不聲明 A 頁。Google 要求雙方確認關係並丟棄未得到回報的註釋。
修復: 在群組中的每一頁上放置完整、相同的註釋集,包括自引用條目。不要試圖巧妙地了解哪個頁面需要哪個條目。英文頁面列出了英文、法文、德文和 x-default;法文頁面也是如此;德文頁面也是如此。到處都是相同的區塊。
這在很大程度上是最常見的失敗,幾乎總是由每頁手動編輯或渲染 " 的模板引起的。其他語言&引用;而不是&引用;所有語言和引用;。
2。 使用非ISO區域代碼
症狀: 搜尋控制台報告和引用;未知語言代碼和引用;或者根本什麼都沒有,而註釋卻被悄悄地忽略。
原因: en-UK 引領領域。 UK 不是 ISO 3166-1 alpha-2 代碼;英國是 GB. 發明了區域代碼,例如 en-EU 和 es-LATAM 是同一類錯誤,也是如此 en-uk 外殼錯誤,與已失效的區域配對。
修復: 語言來自 ISO 639-1,ISO 3166-1 alpha-2 中的區域,以連字符連接。對於拉丁美洲,有效答案是 UN M49 代碼 es-419. 對於中文,更喜歡腳本子標籤: zh-Hant 和 zh-Hans.
| 錯 | 正確的 | 為什麼 |
|---|---|---|
en-UK |
en-GB |
UK 不是 ISO 3166-1 代碼 |
en-EU |
每個國家或平原單獨條目 en |
歐盟不是國家代碼 |
es-LATAM |
es-419 |
拉丁美洲的 UN M49 區域代碼 |
zh-CH |
zh-Hans 或者 zh-CN |
CH 是瑞士 |
CA |
en-CA 和 fr-CA |
僅區域無效 |
3。 僅區域註釋
症狀: 什麼也沒發生。註釋被完全忽略。
原因: 試圖在不命名語言的情況下瞄準一個國家,如 hreflang="US" 或者 hreflang="CA". Hreflang 在設計上是語言優先的;該區域是一種語言的可選縮小範圍,而不是單獨的目標。
修復: 命名語言。如果您以兩種語言為加拿大提供服務,則有兩個條目: en-CA 和 fr-CA.
4。 相對網址
症狀: 註釋被忽略。經常伴隨 "這適用於我的機器"因為相關 URL 在瀏覽器中解析得很好。
原因: href="/fr/pricing" 代替 href="https://example.com/fr/pricing". Hreflang 需要完全合格的絕對 URL,包括協定和主機。
修復: 發出絕對的網址。如果您在模板中建立它們,請從配置的網站來源而不是硬編碼字串建立它們,因此暫存部署不會發布生產 URL,反之亦然。
5。 跨語言的規範
症狀: 整個語言版本從索引中消失。 Hreflang 看起來正確且沒有任何效果。
原因: 法文頁面聲明英文頁面為其規範。這指示 Google 刪除法語 URL,並且無論 hreflang 說什麼,已被規範化的 URL 都不能提供給任何人。規範是更強的信號,它會獲勝。
修復: 每一頁都規範化。赫弗朗描述了這些自我規範頁面之間的關係。這本書值得一讀: hreflang 與規範 透過包括參數化 URL 在內的組合進行工作。
6。 沒有 x 預設值
症狀: 來自您不瞄準的國家的訪客登陸明顯隨機的語言版本。
原因: 沒有聲明後備,所以谷歌選擇。它的選擇是基於您看不到的相似性訊號,這就是荷蘭訪客最終出現在德語頁面上的方式。
修復: 添加一個 x-default 每組條目,指向語言選擇器或您的主要國際版本。這 x-預設指南 涵蓋指向何處以及使其無用的錯誤。
7。 混合實施方法
症狀: 間歇性、難以重現的行為。有些頁面交換正確,而有些頁面則不正確。
原因: HTML <link> 標籤和 XML 網站地圖 xhtml:link 兩個條目都聲明相同 URL 的 hreflang。每個都單獨有效。它們一起是兩個漂移的真相來源,當他們不同意時,你無法知道谷歌使用了哪一個。
修復: 每個 URL 集選擇一種方法。大多數網站的 HTML 標籤、當您有許多區域設定並需要精益頁面頭時的網站地圖條目、PDF 等非 HTML 檔案的 HTTP 標頭。然後刪除另一個而不是將其保留為備份。
8。 尾隨斜線和協定不符
症狀: 即使兩頁都帶有註釋,返回標籤也會失敗。
原因: 註釋指向 https://example.com/fr 而可索引 URL 是 https://example.com/fr/. 或指向 http:// 在 HTTPS 網站上。這些是不同的 URL,因此真實頁面上的返回標籤與其他指定的頁面的 URL 不符。
修復: 使用每個 URL 的精確規範形式,與您在網站地圖中放置的字串相同。從規範標籤使用的相同 URL 建構器產生 hreflang,因此兩者不能不同意。
9。 指向重定向或 404
症狀: 部分或降級行為;搜尋受影響對上的控制台錯誤。
原因: 一個區域設定已退役,其 URL 現在已重定向,或者翻譯的頁面已被刪除,而命名它的註釋則保留。重定向目標仍然會解析,因此它並不致命,但它添加了跳躍,並且最終 URL 上的返回標籤可能與指定的 URL 不匹配。 404 目標徹底毒害了這對。
修復: 爬行您自己的 hreflang 目標並檢查狀態代碼。這是無人執行的檢查,並且是在寫入時正確的集合中發現腐爛的檢查。
10。 註解非索引頁面
症狀: 此集合的行為不一致;有些替代品從未出現。
原因: 頁面在廣告中被宣傳為語言交替攜帶 noindex。 您已告訴 Google 將此 URL 投放市場並將其排除在索引之外。矛盾得到了有利於的解決 noindex.
修復: 要嘛放下註釋,要嘛放下註釋 noindex. 分期剩餘頁和未翻譯的佔位符頁面是常見的罪魁禍首。
11。 阻止機器人中的 hreflang 目標。txt
症狀: 替代者永遠不會得到確認。搜尋控制台會顯示明顯帶有返回標籤的頁面的返回標籤錯誤。
原因: robots。txt 中不允許使用該目標,因此 Googlebot 無法取得該目標,也無法看到返回標籤。你這邊的註釋很好;另一邊的確認無法到達。
修復: 允許在 hreflang 註釋中抓取您命名的每個 URL。如果某個部分確實不應該被抓取,那麼它也不應該位於 hreflang 集合中。這 robots.txt 產生器 對於審核當前規則區塊非常有用,該規則區塊通常比預期更廣泛。
12。 一組內重複的代碼
症狀: 不可預測。谷歌可能會拿走第一個、最後一個,或丟棄這兩個。
原因: 兩個具有相同 hreflang 值的條目指向不同的 URL,通常是因為兩個系統都發出註釋,或者因為區域設定映射具有重複的鍵。二 x-default 條目最常見的形式是同一問題。
修復: 每組每個代碼一個條目。查看渲染的來源而不是模板;僅從模板中看不到添加第二個區塊的插件。這 免費 hreflang 產生器 標誌會重複您建立的集合中的程式碼,儘管它看不到頁面還發出什麼。
您如何有系統地發現這些錯誤?
按此順序進行三次通過,因為每次都接住不同的類別。
首先搜尋控制台。 國際目標報告涵蓋了整個屬性,並發現了兩個按比例縮放的錯誤:缺少返回標籤和未知語言代碼。無論完全重新抓取需要多長時間,它都會落後於您的部署,因此請像往常一樣對待一周沒有變化的情況。
爬行一秒。 任何提取 hreflang 的爬蟲都會為您提供每個 URL 的集合。按簇分組並比較計數:一個頁面有四個條目,每組五個條目是錯誤。然後檢查每個目標的狀態代碼,即發現錯誤 8、9、10 和 11 的通道。
最後渲染 HTML,適用於行為不端的特定頁面。 curl 它,數註釋塊,數 x-default 條目,並將 URL 逐個字元與規範進行比較。這是出現重複項和尾隨斜線不匹配的地方,也是唯一可以看到插件在運行時注入的內容的通道。
生成器值得在任何一個之前運行,因為在編寫它時驗證該集合可以消除錯誤 2、3、4、6 和 12,然後才能發貨。任何工具都無法強制執行的是互惠,因為這是除您面前的頁面之外的頁面的屬性。為此,紀律是結構性的:一張區域設定圖、一張渲染器、每頁上的完整區塊。這 下一個。js 和 字出版社 指南顯示了程式碼中的外觀。
常見問題
最常見的 hreflang 錯誤是什麼?
缺少返回標籤。 A 頁將 B 頁命名為備用頁面,但 B 頁沒有命名 A 頁,因此 Google 放棄了該關係。修復方法是在群組中的每個頁面上放置完整相同的註釋集,包括自引用條目。
為什麼搜尋控制台說我的 hreflang 沒有返回標籤?
因為您指向的頁面沒有指向匹配的註釋,或者它指向稍微不同的 URL。尾隨斜線、協定差異以及 www 與非 www 均算作不同的 URL。
en-UK 是有效的 hreflang 代碼嗎?
不。 UK 不是 ISO 3166-1 alpha-2 代碼。英國的正確代碼是 GB,所以值是 en-GB. en-UK 被默默地忽略。
hreflang URL 可以是相對的嗎?
Hreflang 不需要完全合格的絕對 URL,包括協定和主機。即使相對 URL 在瀏覽器中正常解析,它們也會被忽略。
規範標籤會覆蓋 hreflang 嗎?
實際上是的。如果頁面規範化為不同語言版本,則該 URL 會從索引中刪除,並且 hreflang 無法將其恢復。每個頁面都必須規範化。
hreflang 修復需要多長時間才能出現?
幾天到幾週。 Google 必須重新抓取該集中的每個頁面才能確認返回標籤,並且搜尋控制台報告更新時間相同。
我可以使用 HTML 標籤和網站地圖 hreflang 嗎?
你可以,但不能。相同 URL 的兩個來源會分開,當他們不同意時,無法判斷使用了哪一個。每個 URL 集選擇一種方法。
hreflang 目標需要可爬行嗎?
是的。如果目標在 robots。txt 中被封鎖或標記為 noindex,Google 無法確認返回標籤,並且即使您的標記正確,註釋也會失敗。



