站内搜尋頁和篩選頁是很多站点抓取日誌里出現频率很高的一類 URL。它們通常由參數拼出来,數量大、内容相似,蜘蛛一旦進入就容易反复抓取。要不要让這些地址被抓,不能一概而论,需要结合頁面是否有稳定搜尋需求、是否會产生大量重复内容来判断。
先看這類 URL 的三個特征
- 由關鍵詞參數或篩選條件生成,同一批内容可能存在多種參數组合。
- 頁面主体多為列表,内容與分類頁、标簽頁高度重合。
- 部分搜尋頁在無结果时仍返回 200,容易形成空壳頁。
這三点的直接後果是:蜘蛛把抓取配額花在低差异頁面上,重要詳情頁的抓取频次被摊薄。核對时可以在日誌里按路径前缀統計訪問量,看搜尋頁占比是否明顯高于内容頁。
三種處理方式及适用场景
是否放開抓取,取决于頁面能否带来獨立價值。常见有三種做法:
- 允许抓取並保留:搜尋頁本身有稳定流量或承担導航作用,比如品牌词聚合頁、热门标簽頁。這類頁面應给出獨立标题與說明文字,避免只有列表。
- 限制抓取但保留入口:頁面需要有真實用戶入口,但不希望蜘蛛遍歷參數组合。可以用 robots.txt 屏蔽带參數的路径,同时在内鏈中保留一個不带參數的規范地址。
- 直接屏蔽:纯篩選、排序、會话跟踪類參數,通常没有獨立需求,屏蔽後能减少 URL 被發現的數量。
屏蔽前先確認该路径没有被 Sitemap 或其他内鏈大量引用,否則會出現“已声明但被禁止”的矛盾,抓取日誌里也會留下反复尝试的记錄。
用内鏈控制抓取路径
蜘蛛的抓取路径主要由内鏈决定。如果每個篩選條件都生成一個可点击連結,參數组合會快速膨胀。更稳妥的做法是:
- 篩選入口只保留必要维度,其余條件用表單或前端交互實現。
- 列表頁的分頁連結保持可抓取,但排序、视图切換等參數不生成獨立連結。
- 在頁面中给出明确的規范地址,方便蜘蛛归拢同一批 URL。
從日誌核對實际抓取情况
調整後需要回到日誌確認效果,可以關注以下几個指标:
- 搜尋頁或篩選頁的抓取請求數占總抓取的比例是否下降。
- 同一路径下不同參數组合的抓取數量是否收敛。
- 重要詳情頁的首抓時間與回訪間隔是否更稳定。
- 是否仍有被屏蔽路径的抓取尝试,以及来源是内鏈還是外部連結。
如果屏蔽後抓取量下降但重要頁面没有明顯變化,說明之前的抓取预算确實被低價值頁面占用。如果重要頁面訪問也同步减少,需要检查内鏈是否過于單薄,蜘蛛找不到新的入口。
Sitemap 與 canonical 的配合
Sitemap 只放希望被抓取的規范地址,不要把搜尋结果頁、篩選頁批量寫進去。對于确實要保留的搜尋聚合頁,放在 Sitemap 中的數量應可控,並保證頁面内容與普通列表頁有区分。canonical 用于把參數變体指向主地址,但它只是建议,不能替代 robots.txt 的屏蔽或内鏈的取舍。
服務器稳定性带来的影响
搜尋頁通常涉及查询計算,响應時間可能比静態頁長。如果這類頁面频繁超时或返回 5xx,蜘蛛的抓取节奏會受到影响,嚴重时连正常頁面的抓取也可能被拖慢。日誌里可以按狀態碼和响應時間篩選,確認問题是否集中在參數化地址上。
整体思路並不复杂:先判断頁面價值,再决定放開、限制還是屏蔽,最後用日誌核對抓取分布是否回到重要頁面上。這個過程不需要一次做完,按路径分批調整、逐步观察,更容易看出哪一類 URL 在消耗抓取资源。