很多站点上线篩選、排序、追踪功能後,URL 數量會成倍增長。對用戶来说方便,對蜘蛛来说可能是大量重复或低價值路径。參數本身不是問题,問题在于没有告诉蜘蛛哪些值得抓、哪些只是同一頁面的變体。
參數 URL 通常從哪来
- 篩選條件:颜色、價格区間、品牌、地区,组合後數量巨大。
- 排序方式:按销量、價格、上新時間,产生多個排序變体。
- 分頁參數:page=2、offset=20,属于列表翻頁。
- 追踪與广告參數:utm_source、ref、from,用于統計来源。
- 會话或用戶标识:sid、sessionid、uid,通常不该出現在可抓連結里。
蜘蛛會不會抓參數 URL
如果内鏈、Sitemap 或外鏈里出現參數連結,蜘蛛可能發現並安排抓取。但是否抓完、抓多深,取决于站点權重、頁面质量、服務器响應和抓取预算。參數 URL 越多,越容易让蜘蛛把時間花在相似頁面上。
參數 URL 不一定被全部抓取,但會占用被發現和排队的机會;真正需要收錄的頁面可能因此被延後。
哪些參數适合保留,哪些需要收口
可以保留的參數
- 分頁參數:如果列表内容确實分頁,保留並确保第 2 頁可正常訪問。
- 有搜尋價值的篩選:如品牌、品類等用戶會主動搜尋的组合,可以有選擇地保留。
- 必要的語言或地区參數:若没有獨立目錄,可用參數区分,但配合 hreflang 和 canonical。
建议收口的參數
- 排序參數:預設排序可收錄,其他排序頁用 canonical 指向預設排序 URL。
- 追踪參數:連結中尽量不寫,或由前端統計脚本動態附加;不要放在静態連結里。
- 會话 ID:不要出現在 URL 里,改用 Cookie 或服務端會话。
- 無搜尋量的篩選组合:用 robots.txt 禁止抓取,但注意被禁止抓取的 URL 仍可能因外鏈被索引為無描述结果;更稳妥的是 noindex 或 canonical。
内鏈和 Sitemap 怎么配合
蜘蛛主要顺着連結走。如果頁面上所有篩選组合都以内鏈形式出現,等于主動把大量參數 URL 交给蜘蛛。可以這样調整:
- 只把預設列表頁、重要篩選頁放進導航和正文内鏈。
- 篩選结果頁的連結用按钮或表單提交,减少静態可抓連結;但不要指望 JS 完全隐藏,因為渲染後仍可能被發現。
- Sitemap 只提交干净、規范的 URL,不要提交带 utm、排序和會话參數的版本。
- 如果某些參數頁需要收錄,给它們獨立的标题、内容和自指 canonical,而不是简單複製主列表。
用日誌驗證參數抓取
查看服務器日誌时,可以篩選带問号的請求,統計:
- 哪些參數最常被蜘蛛訪問;
- 這些請求返回 200、301 還是 404;
- 抓取频次是否挤占了重要栏目;
- 被 robots.txt 拦截的 URL 是否仍大量出現。
如果發現蜘蛛反复抓取無價值參數頁,先检查内鏈和 Sitemap,再考虑用 canonical、noindex 或 robots 調整。不要只依赖一種方式。
常见誤区
- 用 robots.txt 屏蔽參數,以為就不會被索引。實际上,若其他頁面有連結,URL 仍可能出現在搜尋结果中,只是没有摘要。
- 所有篩選頁都提交 Sitemap,结果抓取预算被大量相似頁面占用。
- 排序參數不處理,導致同一商品列表出現多個可抓版本。
- 追踪參數寫死在站内連結里,蜘蛛和用戶訪問都带上同一串參數。
參數 URL 管理不是一次清完就結束。站点功能會變,連結會新增。建议定期抽查内鏈、Sitemap 和日誌,把參數 URL 分成需要抓、可以抓但不必收錄、不必抓三類,分別用内鏈、canonical、noindex 和 robots 處理。抓取资源有限,让蜘蛛優先走真正有内容的路径,比追求 URL 數量更有意义。