核心答案:不要把“有效地址”理解成所有能返回200的URL,而要先定义一组代表业务实体的规范地址,再把参数URL按规则归并到这些规范地址上。无限参数增长本身不是问题,问题是爬虫预算被大量语义重复的地址消耗。下面用一个假设情境说明变化前后如何切换决策。
假设某电商站原先只有“颜色、尺码、排序”三个筛选维度,每个维度取值有限,可枚举的URL大约几百个。后来业务上线了“多选标签+价格区间+库存状态+自定义排序”,参数可以任意叠加,组合数迅速变成天文数字。变化前,站点地图可以覆盖主要列表页;变化后,继续把每种组合都当独立地址,既不现实,也会让抓取信号变得稀薄。此时应切换决策:从“枚举所有地址”转为“定义有效地址集合”。
有效地址不是“能打开”,而是同时满足下面三个条件:
按这三个条件,可以把参数URL分成三类:规范地址、可归并地址、应屏蔽地址。规范地址进入有效集合;可归并地址通过 canonical 或 301 指向规范地址;应屏蔽地址用 robots.txt 限制抓取,但要记住:robots.txt 的抓取限制不等于可靠的索引移除,已收录的URL仍可能出现在结果中。
定义有效集合时,最怕规则停留在“只保留重要参数”这种模糊表述。应写成可执行清单,例如:
这份清单的作用是让开发、运营和SEO对“什么算有效地址”有同一套判断,而不是每次靠人肉争论。
假设你决定把排序和追踪参数全部归并。动作是:从服务器日志或抓取记录中抽取一批带参数的URL,按规则归并后,检查归并目标是否真的返回了预期内容。结果可能出现三种情况:
这个动作的结果直接决定下一步:是扩大归并规则,还是回退部分参数。没有这一步,规则很容易把有价值的长尾地址误杀。
有效地址集合确定后,站点地图只应包含规范地址,而不是所有参数组合。但要清楚:站点地图不保证收录,它只是提交候选地址的一种方式。robots.txt 可以用来阻止爬虫抓取无限参数,但它不能替代 noindex 做索引移除;如果页面已经被收录,仅靠 robots.txt 限制抓取,搜索结果中仍可能保留该地址。对于确实需要从索引中移除的地址,应结合页面级 noindex 或删除处理,并分别核查不同搜索引擎的支持情况。
变化前,参数组合有限且可枚举,可以继续用站点地图和站内链接覆盖主要组合。变化后,组合数超过可维护范围,就应切换到“规范地址集合+归并规则+抽样验证”的模式。判断切换的时机不是看参数数量本身,而是看维护成本是否已经超过收益:当新增参数维度需要人工逐条添加地址,且大部分组合没有独立搜索需求时,就是切换的信号。切换后,爬虫抓取会更多集中在有效地址上,但这只是假设情境下的预期方向,实际效果取决于规则是否被正确执行以及页面本身是否值得收录。