網站收錄

多語言站点分語言核對收錄:canonical、hreflang 與切換入口的检查顺序

多語言站点的收錄要對每個語言版本分別核對,而不是只看總索引量。先確認各語言有獨立可抓取的 URL,再检查 canonical 是否自指、hreflang 是否双向回鏈,最後看語言切換入口是否用可抓取的連結。任何一环缺失,都可能让某一门語言長期進不了索引。

網站收錄

多語言站点分語言核對收錄:canonical、hreflang 與切換入口的检查顺序

多語言站点做收錄核對时,最容易犯的错誤是把所有語言当成一個整体看。用一次 site 查询看總量,數字似乎對得上,實际上可能是某一门語言被索引了几千條,另一门語言一條都没有。收錄狀態是按 URL 計算的,而每個語言版本通常都是獨立 URL,所以核對必须按語言拆開做。

先確認每個語言版本都有獨立可抓取的 URL

常见的三種结构里,子目錄和子域相對稳妥:

  • /en/、/zh/ 這類子目錄,配置简單,也便于统一管理;
  • en.example.com 這類子域,隔离性好,但需要單獨驗證並單獨配置站点地图;
  • ?lang=en 這類參數,容易被折叠或誤判為同一頁面的變体,排查成本最高。

無论選哪種,都要保證每個語言版本在關閉 Cookie 和 JavaScript 的情况下也能直接打開,返回 200,正文是该語言的真實内容。如果站点靠浏览器語言或 Cookie 自動跳轉,爬虫很可能只看得到預設語言那一版,其他語言永遠不會被獨立發現。

canonical 與 hreflang 要能對上

這一段最容易出错,核對顺序建议是:

  1. 每個語言版本的 canonical 指向自己,而不是统一指向預設語言。如果所有語言都 canonical 到 /en/,其他版本基本等于主動放弃收錄归属。
  2. hreflang 必须双向回鏈。A 頁面寫了指向 B,B 也要寫回 A,單向标注通常不會被采用。
  3. hreflang 的代碼和地区寫法要規范,en、en-US、zh-Hans 各有含义,不要自造寫法。
  4. 如果存在預設兜底頁,用 x-default 标注,而不是让某一種語言兼职。

做完這几步後,挑两個語言版本各看一次頁面源代碼,確認輸出的是這一版自己的地址,而不是模板里寫死的預設語言 URL。

語言切換入口要是可抓取的連結

不少站点的語言切換是一個下拉框,靠 JavaScript 提交或跳轉。人能用,爬虫用不了。更稳妥的做法是在頁头或頁脚放一组普通的 a 标簽連結,指向各語言版本的首頁或目前頁的對應版本。這样每個語言版本都能通過站内連結被發現,而不只依赖站点地图。

語言版本之間的互鏈,本质上也是一條内鏈路径。入口越清晰,各語言被獨立發現的机會越多。

按語言的收錄核對清單

  • 分別用 site 查询或索引报告,记錄每種語言的收錄數量,不要只看總數;
  • 每種語言各抽 3 到 5 個頁面,检查是否被索引、展示的 URL 和語言是否正确;
  • 检查站点地图是否按語言拆分,或至少正确标注了 hreflang;
  • 在服務器日誌里看各語言目錄的抓取频次,長期為零的目錄通常說明發現路径断了;
  • 比對語言版本之間的正文差异,机器翻译或只換几行文案的版本,容易被当作重复内容處理。

几種常见的異常表現

某一门語言只有首頁和分類頁進了索引,内容頁几乎没有,通常指向内鏈或站点地图的問题;几個語言版本互相被替換展示,多半是 canonical 和 hreflang 打架;新增加的語言長期零收錄,先回头看切換入口是不是可抓取的連結,再確認新語言用的是不是獨立 URL。

多語言站点的收錄問题很少是單一原因造成的,但排查顺序是固定的:先確認 URL 能被獨立發現和抓取,再看归属信号是否自洽,最後才去比較内容差异。跳過前两步直接改内容,通常解决不了問题。