站内搜索框和列表筛选器,是访客用得比较顺手的功能,但它们同时也是站点最容易制造出大量地址的地方。一个搜索词是一个地址,两个筛选条件组合又是另一个地址,再加上排序、分页、每页条数这些参数,地址数量可以近乎无限增长。这些页面通常内容稀薄、彼此高度相似,如果没有做任何处理,搜索蜘蛛会顺着这些链接一路爬下去,把抓取时间花在几乎没有价值的地方。
为什么站内搜索和筛选会撑出无限地址
- 搜索词由访客输入,等于任何词都能生成一个页面。
- 多个筛选条件可以自由组合,条件越多组合越多。
- 排序、每页条数、显示方式等参数,往往只改变展示,不改变内容主体。
- 分页参数可以一直翻下去,部分站点甚至没有翻页上限。
这些页面本身不是错误页面,状态码通常是 200,但标题、正文常常由模板拼接而成,重复度很高。对站点来说,它们消耗的是服务器资源和抓取时间,却很难带来实际价值。
先看清楚:哪些地址被生成了,哪些被爬了
不要凭印象处理,先把实际情况查清楚。
- 在服务器日志里筛选带搜索参数、筛选参数的请求,看看数量和占比。
- 观察这些请求来自哪些蜘蛛、访问频率如何、是否在持续增长。
- 在搜索引擎的站长工具里查看已抓取的地址样本,确认是否存在大量参数地址。
- 用抓取工具模拟一次全站爬取,看看从首页出发能不能通过链接走到搜索页和筛选页。
做完这几步,通常能得到两个结论:搜索页和筛选页确实被抓了,而且入口主要是站内的搜索框提交结果和筛选链接,而不是外部链接。
三个处理方向,按页面价值分别对待
1. 没有保留价值的地址:不让蜘蛛进入
搜索结果页、无意义的参数组合页,通常属于这一类。可以用 robots.txt 统一拦截,也可以在页面加 noindex。
注意:如果先用 robots.txt 屏蔽,蜘蛛就读不到页面上的 noindex 了,两者不要叠加使用,选一种执行方式即可。
2. 有价值的筛选页:保留并做成规范页面
有些筛选组合确实对应访客的真实需求,比如“城市+分类”这类固定搭配。这类页面适合做成独立的规范地址,有独立的标题和描述,而不是靠参数临时生成。
- 固定几个高频组合,改写成静态路径或可读的干净地址。
- 页面内容不能只是列表,补一段说明文字,让页面有自己的信息。
- 在页面上放 canonical,指向规范地址,避免同类页面互相竞争。
3. 中间状态:先收敛入口,再看表现
不好判断价值的页面,可以先把站内链接收一收:搜索结果页不主动输出链接,筛选栏只保留有限的条件,分页加上合理上限。入口少了,蜘蛛自然也就少爬。
几个常见的坑
- 搜索页互相链接:热门搜索词、相关搜索如果没有加限制,很容易形成一张互相指向的网。
- 参数顺序不同:同一组条件因为参数顺序不同生成两个地址,需要做统一或规范处理。
- 空结果页面:搜索无结果时也返回 200,且内容为空,这类页面更不该被抓取。
- 屏蔽规则写得太宽:用通配符一刀切,可能连带把正常的列表页、分页一起挡住。
处理之后要验证
改完不是结束。过一段时间回到日志里,看带参数的请求是不是明显减少,看之前被频繁抓取的地址是否还出现。站内搜索和筛选的处理逻辑,也应该写进站点改版和栏目规划的检查项里,避免下次重做功能时又把老问题带回来。
说到底,站内搜索和筛选服务的是访客,不是蜘蛛。把入口收敛好、把有价值的组合固化下来,剩下的交给站内链接和站点地图去引导,抓取就会更集中在你真正希望被看到的内容上。