同一個頁面在搜尋引擎眼里變成好几個地址,是收錄里很常见的一類問题。表現是索引中出現多個相似 URL,權重被分散,内容改了一版却只更新了其中一個。多數情况不是蜘蛛抓错了,而是站点自己给了它太多入口。
常见的 URL 分裂来源
- 大小寫:/Page 與 /page 在部分服務器上属于两個地址。
- 结尾斜杠:/a 與 /a/ 同时可訪問,且都返回 200。
- 协议與域名:http、https、www、非 www 混用。
- 跟踪參數:?from=xxx、?utm_source=xxx 生成大量變体。
- 參數顺序與重复:?a=1&b=2 與 ?b=2&a=1。
- 分頁、排序、篩選參數被当成獨立内容頁處理。
- 會话 ID、打印頁、移動獨立域名等歷史遗留地址。
先分清哪些算同一個頁面
判断依據不是 URL 長得像不像,而是主体内容是否一致:标题、核心正文、主要模块是否相同。只有參數不同、结果集完全一样,通常算同一頁面;篩選後展示的是另一批商品或另一组文章,它其實是不同的頁面,需要單獨考虑是否值得收錄。
该合並的
- 只差跟踪參數、大小寫、斜杠、协议域名的地址。
- 排序方式不同,但内容集合相同的列表頁。
该單獨對待的
- 篩選出真實不同结果集,並且确實有搜尋需求的頁面。
- 分頁中的關键頁,尤其是有内鏈入口、深度較大的頁。
收口的顺序建议
- 先定一個規范地址:协议、域名、路径寫法全站统一。
- 服務端做 301:把舊寫法、大小寫變体、带跟踪參數的地址跳到規范地址,而不是都返回 200。
- 内鏈全部指向規范地址:導航、面包屑、正文連結、分頁連結都要改,別只改一處。
- canonical 與 301 保持一致:canonical 指向的地址應就是 301 的目标,不要互相矛盾。
- 站点地图只提交規范地址,减少額外入口。
- 參數頁按價值處理:無價值的篩選组合用 noindex 或 robots 收口,结果唯一且有價值的保留,並给獨立标题。
收口之後要观察什么
- 日誌中這些變体地址的抓取是否下降,是否轉向規范地址。
- 索引里相似 URL 的數量是否在减少,這通常需要時間,不會立刻變化。
- canonical 是否被采纳,可以看搜尋引擎最终選擇的規范地址。
- 規范地址自身的收錄與表現是否稳定,而不是只看索引總數。
301 是给蜘蛛的强信号,但不是立刻生效的開關。舊地址在索引里存在一段時間属于正常現象,重点是不让多個可訪問、可被抓取的版本長期並存。
几個容易踩的坑
- 用 JS 跳轉代替 301,蜘蛛未必按预期跟随。
- canonical 指向一個本身返回 404 或需要登入的地址。
- 把所有參數頁一刀切屏蔽,连有搜尋需求的篩選頁也一起挡掉。
- 只改站点地图不改站内連結,蜘蛛仍能從内鏈發現舊地址。
URL 收口本质上是减少重复入口,让同一個頁面只留下一個明确身份。先把地址统一,再谈收錄推進速度,顺序反了往往會反复返工。