做蜘蛛池入口頁时,很多人會顺手给目标連結加上渠道參數,例如 ?utm_source=xxx&from=pool。這類連結搜尋蜘蛛會不會抓、抓的是哪一個版本,是经常被問到的問题。
先说结论:參數本身就是 URL 的一部分,搜尋蜘蛛在發現阶段通常照抓不誤;但抓取不等于會被索引,也不等于會按你期望的地址收錄。带參數和不带參數,對搜尋引擎来说是两個 URL。
搜尋蜘蛛怎么看待带參數的連結
發現阶段基本不受影响
只要參數連結寫在入口頁的 a 标簽 href 里,入口頁本身可被抓取,蜘蛛一般都會把带參數的完整地址放進待抓取队列。參數不會让它“看不见”這個 URL。
後續會做規范化判断
搜尋引擎會對内容相近的 URL 做聚類,再挑一個主版本。带跟踪參數的版本,多數情况下會被判為重复或非規范版本,抓了但未必留在索引里。
實际可能出現的几種情况
- 參數版本被蜘蛛抓取,占用一部分抓取量;
- 參數版本被判定為重复,只抓取、不進入索引;
- 參數顺序、大小寫、空值寫法不同,生成多個近似 URL;
- 連結里带會话 ID、時間戳等動態參數,每次地址都變,容易制造大量無效 URL;
- 同一内容存在多個地址,抓取频次被摊薄,主版本的更新反而更慢被看到。
入口頁放带參數連結的几條建议
- 入口頁里優先寫規范地址(裸鏈)。如果要区分渠道,在自己的統計系統里做,不必寫進入口頁的 href。
- 确實需要带參數时,让目标頁用 canonical 指向規范版本,並保持參數值稳定、可预期。
- 不要在參數里塞随机數、時間戳、會话 ID,這類地址每次都不同,只會持續增加無效 URL。
- 如果某些參數确實没有内容價值,可以在目标站 robots.txt 里做模式屏蔽,但這只能阻止抓取,不能替代規范化處理。
- 同一個目标 URL 在入口頁尽量只保留一種寫法,减少蜘蛛在近似地址之間反复選擇。
怎么確認實际發生了什么
- 看服務器日誌:带參數版本和不带參數版本各自的抓取次數、狀態碼和响應時間;
- 用站長平台的 URL 检查工具分別查两個版本,看系統選中了哪一個作為規范;
- 在收錄相關报告里搜參數特征,確認是否有參數版頁面被收錄;
- 观察入口頁整体抓取量變化,判断是否被無效參數地址消耗掉。
參數問题本质上是 URL 規范化和抓取分配的問题,不是“能不能被發現”的問题。入口頁的作用是让蜘蛛發現地址,至于哪個版本進入索引,主要取决于目标站的規范化設定和頁面本身。
小结
入口頁里的带參數連結一般能被搜尋蜘蛛發現並抓取,但參數版本通常不會被当成主版本。入口頁尽量寫規范 URL,目标站做好 canonical 和參數治理,才能把抓取用在有價值的地方。入口頁只是發現渠道,最终收錄情况仍取决于目标頁面的内容质量和站点整体结构,任何方法都不能保證收錄或排名。