很多栏目页刚上线时只有一页列表,运营几个月后,一统计可抓地址就是几千个。翻回去看,大部分不是新内容,而是筛选条件、排序方式、会话标识这些参数层层叠加出来的组合。这些地址单看都能打开,内容却高度重复,蜘蛛抓得越多,真正有搜索价值的页面分到的抓取次数就越少。
先分清参数是不是“内容”
判断标准很简单:换掉这个参数,页面主体内容有没有实质变化。
- 内容型参数:品牌、型号、固定档位的价格区间、地区等,会产生新的结果集,用户确实会这样搜。这类地址可以考虑保留并可抓。
- 视图型参数:排序方式、每页条数、列表与网格切换、颜色偏好、会话 ID、来源追踪(utm、ref)等。页面内容基本一致,只是展示顺序或入口不同。
视图型参数是治理重点。它们通常不进入任何站内链接,却能被外部链接、用户复制分享、爬虫自行拼接等方式发现,然后在日志里反复出现。
三种常见手段,边界不一样
robots.txt 拦的是抓取,不是索引
Disallow 能减少抓取压力,但被拦的地址仍可能因为外链出现在搜索结果里,标题摘要还可能不完整。所以只有在“这些地址永远不该被抓”时才用它,比如带会话 ID、带站内搜索关键词的地址。
noindex 是明确表态,但要防止误伤
对确实存在、内容有价值但不需要独立参与排名的筛选页,可以给 noindex,follow。前提是这些页面本身能正常访问,不要和 robots.txt 同时用——被挡住的页面,蜘蛛看不到 noindex。
canonical 更适合处理近似重复
排序、每页条数这类参数,页面内容一致,把 canonical 指回不带参数的规范地址是更自然的做法。注意它只是建议值,别指望解决所有问题,尤其是站内链接和站点地图还在大量指向带参数版本的时候。
从可发现面下手,比逐条屏蔽省事
- 筛选链接不要全部写成 a 标签硬编码。次要筛选可以放在交互之后再生成链接,或者用表单提交。
- 同一组参数保持顺序和命名统一,不要今天 ?color=red&size=m,明天 ?size=m&color=red。
- 站内链接和站点地图只收录规范版本,不给带参数版本喂入口。
- 翻页与筛选不要互相嵌套出无限组合,该收口的地方就收口。
上线前后的检查清单
- 拉一份近 30 天的服务器日志,统计带参数 URL 的占比和抓取频次。
- 抽样打开几个高频参数地址,确认返回的是 200,还是已经被规范到主页面。
- 确认 robots.txt 与 noindex 没有互相冲突。
- 检查站点地图里是否混进了筛选地址。
- 观察一到两周,看核心页面的抓取次数有没有回升。
参数治理没有一次性做完的方案。栏目改版、筛选功能迭代、运营活动加参数,都会重新引入问题。把它当成例行检查项,比一次大清扫更现实。