蜘蛛在爬行时並不理解參數的含义,它只看到一個又一個 URL。带參數的地址會進入抓取队列,但是否值得抓取,取决于這個參數是否對應獨立内容。
蜘蛛怎么看待带參數的 URL
從爬虫视角,URL 只要不同,通常就算不同地址。它會按發現顺序去抓,抓完後判断内容是否重复。如果多個參數版本最终渲染出几乎一样的頁面,蜘蛛可能選一個作為代表,也可能分別收錄,造成重复。
關键在于參數有没有改變主体内容:
- 篩選與排序參數:如 ?color=red、?sort=price。若列表结果确實不同,可能值得被抓;若只是顺序不同,價值很低。
- 跟踪參數:如 utm_source、gclid。通常不改變内容,最好別让蜘蛛大量抓取。
- 分頁參數:如 ?page=2。分頁是真實内容序列,蜘蛛需要能顺着走。
- 會话或打印參數:如 sid、print=1。一般不應進入抓取路径。
抓取路径會被參數怎样带偏
内鏈和 Sitemap 是蜘蛛發現 URL 的主要入口。如果内鏈里夹杂跟踪參數,蜘蛛會把這些地址也当候選,抓取预算被分散到無差异頁面上。更常见的是篩選组合:一個列表頁有颜色、尺寸、排序多個參數,组合出的 URL 數量可能遠超實际内容量。
參數越多,蜘蛛越容易在“看起来不同、内容相同”的地址之間来回走,真正需要更新的頁面反而排到後面。
站内可以做的几件事
- 規范内鏈:站内連結尽量指向不带跟踪參數的干净 URL,篩選和排序若不需要收錄,用按钮或表單提交,而不是大量 a 标簽。
- 统一規范地址:對同一内容的不同參數版本,用 canonical 指向首選 URL。若服務器能判断,也可以 301 到規范地址。
- 谨慎使用 robots.txt:屏蔽跟踪參數可以节省抓取,但被屏蔽的 URL 不會再被抓取,也不會传递信号。若某些篩選頁希望被收錄,不要直接屏蔽,改用 canonical 或 noindex。
- Sitemap 只放規范 URL:提交带參數的地址會让蜘蛛優先抓這些版本,和 canonical 信号容易冲突。
- 處理大小寫、斜杠與參數顺序:/Page 和 /page、/a?b=1&c=2 和 /a?c=2&b=1 最好由服務器统一重定向,否則蜘蛛會当成多個地址。
分頁參數要單獨看
分頁不是重复内容,它是列表的连續部分。蜘蛛需要從第一頁走到後面,才能發現更多詳情頁。所以分頁連結應保持可抓,別用 rel=nofollow 全部切断,也別只靠 JavaScript 点击。若分頁 URL 參數過多,可保留 page 參數,去掉其他跟踪參數。
观察與調整
想確認參數是否影响抓取,可以看服務器日誌中带參數的請求比例、蜘蛛在哪些參數组合上停留、這些頁面返回的内容是否相似。若發現大量參數 URL 被抓但内容重复,優先收内鏈、加 canonical、统一重定向,而不是一味屏蔽。
简單说,蜘蛛對參數没有偏好,它跟着連結走。站内把有價值的 URL 路径做清晰,把無差异的參數地址收敛掉,抓取效率會更集中。