搜尋抓取

站内搜尋與篩選參數:蜘蛛容易在這里绕圈,怎么收口

站内搜尋頁和篩選组合會生成大量带參數的 URL,内容又高度相似,蜘蛛很容易把抓取次數耗在這些入口上。本文梳理這類動態入口的识別方式,以及 robots.txt、noindex、canonical、内鏈收口几種處理思路的取舍與驗證方法。

搜尋抓取

站内搜尋與篩選參數:蜘蛛容易在這里绕圈,怎么收口

站内搜尋頁和篩選组合,是抓取里很典型的一類“看起来有用、實际很耗”的入口。它們通常即时生成、返回 200、内容随參數變化,但彼此差异很小。蜘蛛一旦走進去,往往會沿着參數组合一路展開。

為什么這類入口容易被反复抓

  • 每個參數组合都是一個獨立 URL,蜘蛛没法從地址上判断它有没有價值;
  • 頁面返回 200 且正文有内容,不會触發软 404 那類過滤;
  • 结果頁里往往又連結着詳情頁,蜘蛛會顺着繼續走,形成“入口到结果頁、到詳情頁、再回结果頁”的循环;
  • 排序、每頁數量、時間范围這類參數,只是同一批内容換了個顺序。

先分清三類動態入口

站内搜尋

關鍵詞由用戶輸入,理论组合無限。這類頁面一般不建议被抓取,也不适合被收錄。

篩選與排序

分類、價格区間、品牌、排序方式。其中一部分组合确實對應真實搜尋需求,例如“某品類加某品牌”,可以考虑保留少量内容足够的固定组合,其余收口。

日歷與時間參數

按年月日翻档的頁面容易产生大量空白结果,需要限制可抓范围,或只保留确實有内容的月份。

常见的收口方式與取舍

  • robots.txt 屏蔽參數路径:见效快,但被屏蔽的 URL 無法被抓取,頁面上的 noindex 也就讀不到。如果這個地址已经被外鏈指向,仍可能出現,只是缺少描述。
  • 頁面加 noindex:适合希望“可抓但不想收錄”的搜尋頁。要注意 noindex 得能被讀到,頁面就不能同时被 robots 屏蔽。
  • canonical 指向主列表頁:适合篩選结果與主列表内容高度重合的情况,有助于合並信号,但不能替代内容质量判断。
  • 减少内鏈入口:很多參數頁是被站内連結“喂”出来的。把篩選連結改成点击後才加载,或只在有限场景出現,往往比事後补救更省事。
  • 分頁單獨處理:正常的列表分頁是抓取路径的一部分,不宜一刀切屏蔽,真正要限制的是分頁上叠加的參數组合。
robots.txt 挡的是抓取,不是收錄。想控制收錄,通常還是要让頁面能被抓到,再给出 noindex 或規范連結。

怎么驗證收口有没有效果

  • 看抓取日誌里带參數 URL 的請求占比,收口前後做對比;
  • 用站内搜尋或頁面查询,检查還有多少结果頁被收錄;
  • 检查 Sitemap 是否混進了带參數的地址;
  • 观察主列表頁與深层詳情頁的抓取频次有没有變化。

收口的目标不是把動態頁面全部封掉,而是让蜘蛛把有限的抓取次數花在有差异的内容上。哪些组合值得留、哪些只是換個顺序,需要结合站内真實搜尋需求和日誌資料判断;調整之後也要留一段時間观察,別指望一次改動就立刻见效。