現象:收錄有了,但不是你要的那個地址
在索引报告或 site 查询里,经常能看到這样的结果:頁面本身内容没問题,也确實被抓取和收錄了,但索引里顯示的地址是另一個 URL,可能是首頁、栏目頁,也可能是带參數的版本。点進去内容大致一样,于是有人以為“收錄正常”,忽略了真正參與索引的並不是目标地址。這種错位多數和 canonical 标簽有關,也可能是重定向、内鏈、站点地图几處口径不一致叠加的结果。
canonical 常见的几種寫错方式
- 全站寫死同一個地址。模板里把 canonical 寫成首頁或某個固定 URL,所有頁面都指向它,等于告诉搜尋引擎“這些頁面都是同一份内容的副本”。
- 列表頁、篩選頁统一指向第一頁。翻頁和篩選後的地址各自有内容,却都被声明為第一頁的副本,時間一長,被索引的是第一頁,後面的内容無處安放。
- 示例地址没替換。開發阶段留下的 example.com 或測試域名忘了改,canonical 指向了站外地址。
- 一個頁面出現多個 canonical。头部由不同组件重复輸出,搜尋引擎只能挑一個,结果往往不是你想要的那個。
- 桌面版和移動版互指混乱。移動端頁面 canonical 指向桌面版、桌面版又指回移動端,形成循环。
canonical 不是“必须收錄我”的声明
canonical 表達的是“這几份内容里,我認為哪一份更有代表性”,它是一條建议,不是命令。搜尋引擎會结合内鏈、站点地图、重定向歷史、内容相似度一起判断,最终挂哪個地址,不一定和 canonical 一致。
所以当 canonical 指向的地址本身不可抓取、被 robots 屏蔽、返回 404 或 5xx 时,這個信号會被忽略,甚至起到反效果。寫 canonical 之前,先確認目标地址是能正常訪問、能被抓取的 200 頁面。
自查與修复的顺序
- 先在索引里確認實际挂的是哪個地址,再看這個地址和目标地址各自的 canonical、狀態碼、可抓取性是什么。
- 检查模板輸出,確認 canonical 是“每頁自指”還是“统一指向”。
- 核對内鏈、站点地图、分頁 rel 是否和 canonical 口径一致。
- 修好後重新提交,等重抓生效,再观察索引里的地址是否變化。
如果某份内容确實應该登出索引,用 noindex 或 301,比在 canonical 上做文章更直接:canonical 既不保證彻底移除,也不保證一定合並。
几個容易混淆的分工
- 去重合並:canonical 适合表達同類内容中哪一版更有代表性。
- 舊地址退场:永久迁移用 301,比 canonical 更明确。
- 整頁不參與索引:用 noindex,但不要同时屏蔽抓取,否則信号讀不到。
把這三件事分開處理,地址關系會比“全站都寫一個 canonical”清楚得多。