網站收錄

canonical 标注之後的收錄變化:两個地址分別會怎样

canonical 常被当成收錄開關,其實它只是一條建议。文章說明标注之後,被指向和被标注的两個地址分別會怎样,哪些场景它替代不了 301 和 robots.txt,以及两個地址都被收錄时的自查顺序。

網站收錄

canonical 标注之後的收錄變化:两個地址分別會怎样

同一篇内容存在多個地址,是很多站点都會遇到的情况:篩選參數、跟踪參數、大小寫、带不带尾斜杠,或者 PC 與移動两套地址。canonical 是最常被拿来“收口”的工具,但它在收錄上的作用经常被高估。把它当成一條明确的建议,而不是一道命令,判断會更准。

canonical 到底做了什么

canonical 的作用是声明“這一组相似頁面里,我認為哪個是主版本”。搜尋引擎收到這個信号後,會把它作為合並依據之一,尽量把多個地址的表現归到主版本上。它不阻止抓取,也不會让被标注的地址马上從索引里消失,更不保證一定被采纳。

換句话说,它是在告诉搜尋引擎你的判断,而不是替搜尋引擎做决定。

被标注的地址會怎样

  • 常见结果是留在索引之外,或者作為备用版本存在,參與召回但不作為主要答案出現。
  • 仍然可能被抓取。搜尋引擎需要定期確認两個地址是否還是相似内容,标注關系是否還成立。
  • 如果两個地址的正文差异較大,标注很可能被忽略,结果是各自被單獨收錄。
  • 如果頁面自己寫了 noindex,canonical 基本失去意义,抓取和索引的判断會以 noindex 為准。

被指向的地址會怎样

主版本會承接大部分信号,但前提是它本身没有障碍:能正常返回 200、没有被 robots.txt 拦住、没有 noindex、内容和被标注頁面确實對應。如果主版本自己都進不了索引,那這组标注就等于把信号指向了一個空處。

canonical 替代不了的事

  • 整站換域名、跨域搬迁:這類场景用 301 更直接,canonical 只能作為辅助。
  • 阻止抓取:它不减少蜘蛛對頁面的訪問,想减少抓取要靠 robots.txt 或調整内鏈入口。
  • 處理内容完全不同、只是模板相似的頁面:這類頁面本来就该各自獨立,硬合並只會让信号混乱。
  • 解决多條冲突声明:一個頁面上出現两條以上互相矛盾的 canonical,通常等于没有声明。

想让收口真正生效,可以配合這几步

  1. 確認規范地址可訪問、返回 200,並且没有被 noindex 或被 robots.txt 挡住。
  2. 規范頁面自己指向自己,避免出現整站都指向首頁這種寫法。
  3. 内鏈、導航、面包屑尽量只使用規范地址,不要同时混用两種寫法。
  4. sitemap 里只列規范地址,不要两種地址都提交。
  5. 篩選、排序、跟踪參數這類地址,如果确實不需要被收錄,用 robots.txt 或 noindex 做收口,而不是只靠 canonical。
  6. 跨域或換域名,優先用 301,再辅以 canonical 和内鏈更新。

两個地址都被收錄时,按這個顺序查

  1. 用站点查询或後台的頁面检查工具,確認目前被索引的是哪個地址。
  2. 查看工具里“用戶声明的規范地址”和“搜尋引擎選擇的規范地址”是否一致,不一致說明标注没有被采纳。
  3. 检查是否存在互指、循环指向、指向重定向地址或 404 的情况。
  4. 對照 sitemap、内鏈、hreflang 等信号,看是否有相互矛盾的地方。
  5. 如果两個地址内容差异明顯,先决定是否真的應该合並,再考虑技術手段。
canonical 是一條建议,不是開關。它能不能生效,取决于規范地址本身是否健康,以及其他信号是否一致。

實际處理时,先分清問题属于哪一類:是同一個頁面的多種寫法,還是同一主题的不同頁面。前者靠規范地址和内鏈收口,後者往往需要重新考虑内容结构。把這两件事分開看,收錄狀態會清楚很多。