站点运营

站点运营:canonical 與重复地址自查,別让同一内容被拆成多個入口

同一篇内容出現多個可訪問地址,是站点运营中很常见却容易被忽略的問题。本文從參數、大小寫、尾斜杠、打印頁、分頁等来源入手,整理一份 canonical 自查清單與修正思路,帮助把抓取和信号集中到主地址上。

站点运营

站点运营:canonical 與重复地址自查,別让同一内容被拆成多個入口

站点运营做久了,常會遇到一種情况:同一篇内容可以用好几個地址打開。带跟踪參數的、带尾斜杠的、大小寫混用的、移動端专用路径的,甚至還有從舊版栏目複製過来的。對用戶来说,這些連結可能只是長得不一样;但對搜尋引擎和蜘蛛来说,每一個能正常返回的地址,都是一個需要單獨抓取、單獨判断的 URL。地址越多,抓取预算越分散,頁面之間原本應该集中的信号也容易被拆開。

重复地址通常從哪来

先弄清楚来源,比急着加标簽更有用。常见的几類来源如下:

  • URL 參數:跟踪參數、排序參數、篩選參數、會话 ID,都會让同一個頁面生成大量變体地址。
  • 书寫差异:大小寫、结尾斜杠、带不带 index 文件,服務器如果都返回 200,就會形成多份内容。
  • 协议與域名:http 與 https、带 www 與不带 www,如果同时可訪問且没有跳轉,等于同一内容有两個站点入口。
  • 特殊版本路径:打印頁、AMP 頁、移動版獨立路径,如果没有做好指向關系,會被当成獨立内容。
  • 分頁與聚合:列表翻頁、标簽聚合頁、专题頁,容易和原始内容頁产生大量重叠。

一份可执行的自查清單

不必全站铺開,先随机抽二三十個内容頁,按下面几步走一遍,問题通常就能暴露出来:

  1. 用带參數、大寫、無尾斜杠等不同寫法分別訪問同一個頁面,看是否都返回 200。
  2. 查看頁面源碼,確認 canonical 指向的是自身的主地址,而不是別的栏目或首頁。
  3. 检查 canonical 是否被模板寫死成同一個值,這種情况在改版後特別常见。
  4. 對照 sitemap,看提交的是哪一個版本的地址,和 canonical 是否一致。
  5. 检查站内連結、面包屑、相關推荐,指向的是主地址還是带參數的地址。
  6. 確認參數地址是否有 301 或規則拦截,而不是長期可訪問。

canonical 寫法的几個注意点

  • 使用完整的绝對地址,不要寫相對路径,避免解析歧义。
  • 指向的目标應当是正常返回 200 的主地址,不要指向 404 或已重定向的地址。
  • 避免 A 指向 B、B 又指向 C 的鏈式寫法,鏈條越長,越容易被忽略。
  • 分頁列表中,每一頁通常指向自身,而不是全部指向第一頁。
  • 同一内容的不同版本不要各自指向不同的地址,否則等于同时發出互相矛盾的信号。

只加 canonical 還不够

需要說明的是,canonical 對搜尋引擎而言是一種提示,並不保證一定被采纳。真正稳妥的做法,是让多個入口指向同一個结果:能跳轉的用 301 跳到主地址,站内連結尽量只鏈主地址,sitemap 里也只提交主地址。三者方向一致时,蜘蛛遇到的重复路径會明顯减少,判断成本也更低。

另外,規范化不是一次性工作。新增栏目、改版、切換 CDN、調整伪静態規則之後,舊的地址可能又冒出来。建议把這項检查放進运营例行動作里,每次结构有變動就抽查一轮。

重复地址本身不算错誤,真正麻烦的是它們長期共存、互相没有關系說明。把入口收拢到一個地址上,抓取和信号才有机會集中起来。