一个商品列表页挂上颜色、尺码、价格区间、排序方式之后,URL 组合很容易涨到几千条。蜘蛛顺着这些链接一路走下去,抓取时间大多花在同一批内容上。参数本身不是错,问题在于站点没有明确告诉蜘蛛:哪些组合值得抓,哪些只是给用户临时用的视图。
蜘蛛眼里的参数页长什么样
多数蜘蛛把带 a=b 这类参数的地址当作独立 URL 处理。它不会先判断这页和那页内容是否相同,而是先排队、再抓取、后去重。于是站点会看到几种后果:
- 抓取队列被大量低价值地址占据,真正想被收录的页面回访变慢;
- 同一份内容对应多个地址,彼此分散信号;
- 访问日志里抓取量看着很大,实际覆盖的独立内容没有增加;
- 筛选查询通常较重,服务器压力随之上升。
哪些参数页值得放行
判断标准可以简化成两条:这页有没有独立的搜索需求,内容是否稳定且可复现。
可以放行的类型
- 有真实搜索量的聚合页,例如某个品类的固定筛选组合;
- 结果稳定、顺序不随会话变化、不依赖随机推荐;
- 页面文字描述完整,不只是结果列表。
建议收紧的类型
- 排序方式、每页条数、视图切换等纯展示参数;
- 会话 ID、来源跟踪、广告点击等非内容参数;
- 多维叠加的组合,例如颜色加尺码加价格再加排序;
- 站内搜索结果页,除非它确实有独立价值。
几种收口手段与各自边界
不同手段解决的是不同环节的问题,混用容易互相抵消。
- robots.txt 禁止抓取:适合会话类、跟踪类参数。要注意被禁止的地址如果被外链指向,仍可能以无摘要形式出现在结果里。
- canonical 指向主版本:用于告知一组参数属于同一内容,能减少信号分散,但不阻止蜘蛛实际抓取。
- 不生成链接:从源头上让蜘蛛走不到,是最干净的做法。筛选条件用按钮提交而非 a 链接时,要确认核心内容仍可通过普通链接到达。
- 前端渲染筛选结果:能降低被抓概率,但不要用它来隐藏你真正希望被看到的页面。
把该留的参数页放进抓取地图
Sitemap 里只列确定要收录的参数页,不要把全部组合都塞进去,否则地图本身就成了新的噪音源。内链只指向主版本,翻页保留可抓取的链接但限制深度,让蜘蛛在有限层数内触达全部结果。
怎么验证收紧是否生效
- 看日志:参数类地址的抓取占比是否下降,目标页面的回访频次是否上升;
- 看索引:同内容多地址的情况是否减少,覆盖情况是否更集中;
- 看服务器:筛选查询相关的响应时间与错误率是否回落。
收紧参数的目的不是让蜘蛛少来,而是把它的时间换到更值钱的页面上。改动之后留出几周观察期,再决定要不要继续收。
参数页的处理属于长期工程:业务的筛选维度会不断变化,规则也要跟着调整。把判断标准写下来,交给负责模板和链接的人,比事后从日志里猜要省力得多。