很多站点為了帮用戶找内容,會開放站内搜尋、分類篩選、排序、分頁等入口。對用戶来说方便,對搜尋蜘蛛来说却可能是一張不断膨胀的 URL 網。尤其是多個參數自由组合时,同一個列表可以生成成百上千個地址,真正需要被發現的内容反而被挤到後面。
先看這些 URL 是怎么被發現的
蜘蛛通常不是凭空猜到參數,而是顺着站内連結一路走。常见来源包括:
- 搜尋结果頁里的“相關搜尋”“热门搜尋”連結;
- 列表頁的篩選條件,如價格区間、颜色、地区、時間;
- 排序切換,如按销量、按人气、按更新時間;
- 分頁參數與篩選參數叠加;
- 頁面底部的标簽云、聚合入口。
如果這些連結預設可抓取,蜘蛛就會把它們当作正常頁面加入队列。久而久之,抓取日誌里會出現大量相似 URL,而核心内容頁的抓取频次可能被摊薄。
判断哪些參數頁面值得保留
不是所有參數頁都要删。先問三個問题:
- 有没有稳定搜尋需求?如果某個篩選组合确實有人搜,並且頁面内容有差异,可以考虑保留並做規范化。
- 内容是否重复?如果只是排序不同,頁面主体几乎一样,通常不需要單獨作為可抓取入口。
- 是否有利于用戶?如果篩選结果對用戶有帮助,但又不适合被索引,可以保留功能,收紧抓取。
判断时不要只看技術,也要看栏目运营目标。站内搜尋是工具,不一定要變成内容頁。
自查與處理清單
可以按下面顺序检查一遍:
- 打開抓取日誌,篩選带問号的 URL,按參數名归類,看哪些參數出現最多。
- 在站内搜尋框輸入不同關鍵詞,观察结果頁是否被連結到、是否進入 sitemap。
- 检查篩選和排序連結是否用了可抓取的 a 标簽,還是按钮加 JS 跳轉。
- 確認搜尋结果頁、空结果頁、參數错誤頁返回的狀態碼是否合理,別让空结果頁變成可索引内容。
- 检查 canonical 是否指向了正确的列表頁,而不是指向搜尋结果頁自身。
- 如果使用 robots.txt 屏蔽參數,注意不要连带屏蔽正常内容路径。
- 检查 sitemap 里是否混入了搜尋、篩選、排序類 URL,有就清理掉。
几種常见的收紧方式
- robots.txt 屏蔽:适合明确不想被抓取的參數路径,但要小心通配符范围。
- meta robots noindex:适合頁面能被訪問但不想被索引的情况,注意 noindex 和 nofollow 的区別。
- canonical:把多個參數變体指向一個主列表頁,帮助蜘蛛理解主版本。
- 連結属性:對站内搜尋、排序等連結使用 rel='nofollow' 或改用按钮交互,减少蜘蛛跟進。
- 參數規范化:在服務器或 CDN 层處理無意义參數,减少重复 URL。
這些方式不是越多越好。先用日誌確認問题,再選一两種组合,改完观察抓取率和索引變化。
改完後要看什么
調整後不要只看“收錄量”一個數字。更實用的是看:
- 抓取日誌里參數 URL 的占比是否下降;
- 核心内容頁的抓取频次有没有回升;
- 站内搜尋頁是否還在产生新的索引;
- 用戶是否因為篩選入口變化而找不到内容。
如果發現正常栏目頁被誤伤,要及时回滚規則。站内搜尋和篩選是运营工具,處理目标是让蜘蛛把精力放在真正需要發現的内容上,而不是把功能入口全部關掉。
站内搜尋和篩選參數不是越開放越好。先確認哪些 URL 值得被蜘蛛發現,再决定保留、規范還是收紧,才能让抓取額度用在刀刃上。