站点运营

站点运营:canonical 自查,別让一個标簽把頁面指向別處

canonical 标簽寫错,可能让蜘蛛把多個頁面当成同一個地址。本文整理一套可执行的自查流程:從模板輸出、分頁、篩選頁到移動端與多語言版本,逐個確認每個頁面声明的是自己,改完後再用抓取工具和訪問資料驗證效果。

站点运营

站点运营:canonical 自查,別让一個标簽把頁面指向別處

canonical 标簽大多由模板自動輸出,装好 CMS 之後很少有人再回头看它。平时站点不出問题,但一旦改版、換域名、上线篩選參數,這個标簽就可能把一批頁面指向另一個地址。自查的目的不是追求完美,而是確認每個頁面声明的是不是自己。

第一步:確認 canonical 指向的是目前頁面

判断标准很直接:頁面里的 canonical 地址,應当與浏览器地址栏中那個規范、希望被訪問的地址一致。可以逐項對照:

  • 协议:HTTPS 頁面的 canonical 不要寫成 http,否則等于告诉蜘蛛還存在一個明文版本。
  • 域名:带 www 與不带 www 只能保留一個,全站统一。
  • 路径:结尾斜杠、大小寫、預設首頁寫法要保持一種形式。
  • 參數:追踪參數、會话 ID 不應该出現在 canonical 里。

分頁與列表頁最容易出問题

  • 分頁:第 2 頁之後的 canonical 指向哪里,全站要一致。有的站点让每頁指向自己,有的统一指向第一頁,两種思路各有取舍,但不要一半指向自己、一半指向第一頁。
  • 篩選頁:颜色、價格、排序等參數组合會生成大量地址。要么让這些頁面 canonical 到無參數的栏目頁,要么用 robots 規則限制抓取,注意两種做法不要互相矛盾。
  • 标簽與聚合頁:内容單薄时可以考虑指向主栏目,但先確認這些頁面确實没有獨立價值,別顺手把所有聚合頁都指走。

几個高频错誤场景

全站模板寫死一個地址

主题或模板里硬编碼了首頁的 canonical,结果每個頁面都在声明自己是首頁。這類問题通常出現在換主题、改版之後,用浏览器查看源碼就能發現。

詳情頁指向栏目頁

部分程序在文章頁輸出了所属栏目的 canonical,本意是合並權重,實际等于让蜘蛛忽略文章本身的地址。除非确實要做内容合並,否則不要這么做。

移動端與桌面端互指

如果站点有獨立的移動域名,canonical 一般指向桌面版地址,移動版自身不要再指向自己,两套規則同时存在會让判断變乱。

多語言版本用错

語言版本應各自 canonical 到自己,再用 hreflang 互相标注。把英文頁 canonical 到中文頁,等于主動放弃英文頁面的獨立地址。

canonical 是建议而不是指令,蜘蛛會结合頁面内容和其他信号做判断。寫错不等于頁面一定不被收錄,但會让判断變复杂,也會让你排查問题时多绕几圈。

自查怎么落地

  1. 從栏目頁、文章頁、分頁、篩選頁、移動版各抽几條地址,用浏览器查看源碼里的 canonical。
  2. 用抓取工具批量跑一遍,導出每個地址與其 canonical 的對照表。
  3. 筛出 canonical 與自身地址不一致的行,逐條判断是刻意設定還是模板错誤。
  4. 修改模板或規則後,重新抓取一批地址確認輸出正确。
  5. 過几周再看服務器日誌和站長平台的抓取資料,確認没有明顯異常波動。

改完之後別急着下结论

canonical 的調整不會立刻反映到抓取和收錄上,通常需要一段時間。期間尽量不要再叠加其他大改動,否則很难判断是哪一步起了作用。如果只是修掉了明顯的模板错誤,保持观察即可,不必因為短期資料波動就来回改回去。

把這項自查放進改版清單里,每次換主题、換域名、上线新栏目时顺手過一遍,比事後猜原因要省事得多。