打開 Search Console 的頁面索引报告,经常會看到一類狀態:重复網頁,Google 選擇的規范網頁與用戶指定的不同。它不像 404 那样一眼就是故障,也不像 noindex 那样明确表示拒绝,很多站長看到就急着改代碼,其實先要弄清楚它在说什么。
這個狀態在说什么
頁面被正常抓取和處理過,内容本身没有硬伤,只是 Google 認為站点里還存在另一個地址,和它内容几乎一样,于是從這一组里挑了一個作為代表放進索引,而挑中的那個並不是你在 canonical 里指定的那個。
有两点要分清:頁面不是被拒绝收錄,而是被合並進了同一组;被選中的那個地址仍然在索引里,只是代表權不在你指定的地址上。所以它不等于“没收錄”,更接近“收錄在別的地址上”。
常见的触發场景
- 商品篩選、排序、分頁參數生成了大量高度相似的頁面,canonical 都指向主商品頁,Google 却選了其中一個參數頁做代表。
- 同一篇内容在多個栏目下都有入口,各處 canonical 各寫各的,互相冲突。
- 移動端和桌面端分属不同域名,两邊给出的代表地址不一致。
- canonical 指向的地址本身返回 404、發生跳轉或带 noindex,Google 只能自己另選一個。
- 内鏈、sitemap 和 canonical 三處给出的代表地址不一样,信号互相打架。
- 内容经過改寫但差异很小,被算法判定為近似副本,聚類时換了你没预料到的那個。
先判断要不要處理
並不是每一條這样的提示都需要動手。判断标准其實很简單:Google 選中的那個頁面,是不是你也認可的代表地址。
- 如果它選中的正是你希望被收錄的地址,這條狀態可以先放着,只是报告文字不好看。
- 如果它選中的是带參數、带追踪碼、已经下线的地址,或者選中的頁面内容會随時間大幅變化,那就值得收敛。
- 如果同一组里有几十上百個 URL 反复互換代表權,通常說明站内信号混乱,需要系統性處理,而不是逐個頁面打补丁。
想收敛的话,按這個顺序做
- 先确定唯一代表地址。從用戶和业務角度選一個長期稳定的 URL,不要今天指向 A、明天改成 B。
- 让三處信号一致。頁面的 canonical、站内連結的指向、sitemap 里出現的地址,都寫成同一個 URL,尽量用绝對地址、统一协议和域名寫法,去掉無意义的參數。
- 检查代表地址是否健康。目标頁返回 200,不處于跳轉鏈中間,也没有被 robots.txt 挡住或被 noindex 标记。
- 處理内容近乎相同的頁面。能合並的合並,该 301 的做 301;只是參數不同、主体内容相同的,用 canonical 指向主地址即可,不必全部重定向。
- 减少無效入口。站内搜尋结果頁、标簽聚合、自動生成的分類列表往往批量制造近似頁面,先判断這些入口是否真的需要被爬。
改完之後看什么
這類調整不會立刻见效。Google 需要重新抓取相關頁面,再重新做一次聚類判断,观察周期通常以周為單位。改完後重点看三件事:报告里這類狀態的數量是否下降;你指定的代表地址是否開始出現在索引记錄里;搜尋结果中的落地頁是否逐步统一到那個地址。
如果只是數量小幅波動,且没有落到明顯错誤的地址上,可以先记錄再观察,不必每次變化都去動代碼。频繁改動 canonical 反而會让信号更不稳定。
收錄相關的多數狀態是“信号問题”而不是“開關問题”。canonical、内鏈、sitemap 给出的说法越一致,Google 越不需要替你做决定。