把“有效地址集合”定义成站点真正承认、且允许抓取工具访问的那一组URL,而不是robots规则能匹配到的全部字符串。当分页、筛选、排序、会话等参数可以自由组合时,字符串空间接近无限,但有效集合应当是有限的:它由站点愿意对外提供的内容入口、可稳定返回实质内容的地址,以及robots允许访问的范围共同决定。缺少完整日志或搜索后台权限时,仍可从站点自身的链接结构、规范声明和robots规则入手,先划出一个可复查的候选集合,再逐步收窄;但这样得到的只是待验证集合,不能直接当成搜索引擎实际抓取或收录的地址集合。
参数组合爆炸时,最容易被误判的现象是:只要允许参数存在,抓取工具就可能构造出大量URL;但站点真正有内容、有入口、有规范指向的地址远少于字符串组合数。两者不一致,并不说明站点配置错了,而说明“可构造”与“有效”本来就不是一回事。
有效地址集合至少要同时满足三个条件:有稳定的内容或功能输出;能被站内链接、站点地图或规范声明指向;没有被robots规则明确拒绝抓取。只满足其中一条,都不足以把它算进有效集合。比如一个筛选参数单独出现时可能返回正常列表,但和排序、分页、会话参数叠加后只返回空结果或重定向,这种组合应排除在有效集合之外。
面对“参数组合无限增长”,通常有两种解释。
这两种解释对应的处理方向不同:前者要收敛入口,后者要收敛规则。若只改robots,却不处理站内链接暴露,参数组合仍会继续增长;若只删链接,却保留过宽规则,抓取工具仍可能从外部链接或历史记录进入无效组合。
在缺少完整日志和搜索后台权限时,可以优先收集三类证据。
这三类证据不能单独下结论。例如,抓取量下降可能来自规则收紧,也可能来自入口减少、服务器响应变化或抓取工具自身调度调整;请求量归零同样不能单独证明某组参数已被正确排除。需要把入口变化、返回结果变化和规则变化放在同一时间窗口内对照,才能判断是哪一种解释更成立。
如果拿不到完整日志或搜索后台数据,仍可执行一个最小动作:从站点自身出发,先定义“候选有效地址集合”,再验证它的边界。
具体做法是:选取一类参数(例如排序或筛选),列出它单独出现时返回实质内容的地址;再把它与分页、会话等参数两两组合,记录哪些组合仍返回实质内容、哪些返回空结果或重定向。把返回实质内容且被规范声明指向的组合保留,其余标记为待排除。这个动作的结果会直接影响下一步:如果保留的组合数量很少,说明有效集合可以收窄,优先处理站内链接暴露;如果保留的组合数量仍然很多,说明站点确实提供了大量参数化内容,需要先确认这些内容是否值得被抓取,再决定robots规则的宽窄。
假设一个站点允许“颜色+尺码+排序+页码”四类参数自由组合,字符串上可能有数千种排列。小样本检查后若发现只有“颜色+尺码”返回实质内容,排序和页码只改变顺序或分页,那么有效集合应围绕“颜色+尺码”定义,排序和页码可作为同一内容的变体处理。这个例子只用于说明比较方法,不代表任何真实站点的抓取结果。
robots.txt的抓取限制不等于可靠的索引移除。被robots拒绝抓取的地址仍可能因外部链接被索引,只是抓取工具无法获取内容来更新摘要。因此,不能用“robots已拒绝”推断“索引中一定没有”。
站点地图也不保证收录。它表达的是站点希望被抓取的地址清单,是否抓取、是否索引仍取决于抓取工具的判断。把无限参数组合塞进站点地图,只会扩大候选集合,不会自动让它们变成有效地址。
不同搜索引擎对参数处理和robots规则的支持情况须分别核查。同一个规则在不同抓取工具下的行为可能不同,不能用一个工具的结果直接推断另一个。
因此,定义有效地址集合时,应把robots规则当作抓取边界,把站点地图当作候选清单,把规范声明当作站点意图,把实际返回结果当作内容依据。四者一致的部分,才更接近有效集合;四者冲突的部分,应先解决冲突,而不是继续增加参数组合。