同一個頁面,服務器常常愿意用很多種地址把它打開:http 和 https、带 www 和不带 www、末尾有斜杠和没有斜杠、參數顺序換一下、大小寫改一下。對訪問者来说還是一頁,對搜尋引擎来说可能是好几條不同的 URL。這些地址一旦都能正常返回,抓取、去重、索引選擇几個环节都會受影响,最後表現出来往往是收錄數量虚高、真正想推的版本反而不占優势。
常见的變体来源
- 主机與协议:http 與 https、www 與非 www、带端口與不带端口。
- 路径寫法:末尾斜杠有無、大小寫混用、路径里出現重复的斜杠。
- 查询參數:排序、篩選、分頁、打印版、utm 追踪參數、會话 ID。
- 預設文档:目錄地址與 /index.html、/default.aspx 並存。
- 编碼差异:中文參數未编碼、空格寫成加号或 %20。
這些大多不是故障,而是配置長期累积的结果。麻烦之處在于它們各自都能返回 200,站点自己不说哪條是正主,引擎就得自己挑。
變体為什么會牵扯到收錄
搜尋引擎在抓到一個 URL 之後,第一步是判断它和已有内容是不是同一份。判断依據包括正文相似度、canonical 指向、内鏈指向、sitemap 里列的是哪一條。如果站点從没明确表態,引擎通常會把它們归到同一组,選一條当代表,其余的進入“重复”“备用”一類的狀態。
结果是两個方向的:一是索引报告里的數字看着不少,但真正能带流量的只有其中一版;二是抓取预算被摊薄,同样一批新 URL 要等更久。參數组合一旦是自動生成的,條目數還可能成千上萬地膨胀。
自查顺序
- 先在索引报告和訪問日誌里統計:带參數的 URL 占比多少,哪几類參數出現最频繁。
- 抽查几個典型頁面,把各種變体實际打開一遍,看返回狀態碼和頁面内容是否完全一致。
- 核對 canonical:各變体是否都指向同一個自認為規范的版本,指向的地址本身能否正常打開。
- 核對内鏈與 sitemap:站内連結和 sitemap 里出現的是規范版本,還是随手寫的那一版。
- 核對主机與协议:是否存在两個域名或两種协议同时對外服務,且没有互相跳轉。
這几步做完,通常就能分清哪些變体是歷史遗留、哪些是目前模板還在持續产出。
收敛手段怎么挑
能用 301 的優先用 301,尤其是域名、协议、末尾斜杠這類结构性差异:一次跳轉把入口收干净,後續不用反复解释。
參數類變体适合單獨判断。真正产生不同内容(比如分頁、必要的篩選)的可以保留;只影响展示顺序、来源标记、會话狀態的,一般没有單獨被抓取的價值,可以用規范連結或參數處理規則来收敛。這里的取舍标准很简單:這條參數有没有可能被用戶搜尋到,有没有獨立的正文。
canonical 是“建议”性质,跳轉是“强制”性质,两者不要在同一批 URL 上互相打架。同一頁面同时声明 canonical 又做 301 到另一個地址,容易让引擎反复试探。
改完不要只看首頁。變体最多的地方通常在列表頁、篩選頁和詳情頁模板里,改一處模板可能一次性收掉几千條 URL。
改完之後看什么
收敛動作生效需要時間。可以观察三件事:索引报告里重复類的條目是否在减少;日誌里带參數的訪問是否變少;規范版本的抓取频次和展現是否稳定。如果只是數字降了、規范版本没有任何變化,可能是收敛動作把不该收的也收掉了,需要回头核對。
URL 變体這件事没有一劳永逸的開關,更像定期打掃。模板改版、新渠道投放、第三方參數接入时,都值得顺手看一眼又多出了哪几類地址。