有效地址集合不是“日志里出现过的所有URL”,而是“你愿意让它继续被当作独立地址、并承担后续维护成本的那一组URL”。当筛选参数、排序参数、会话参数可以任意组合时,日志会不断冒出新的参数排列,但其中绝大多数只是同一内容的访问路径变体。定义有效地址集合,本质上是先定规则,再让规则去覆盖日志,而不是让日志反过来定义规则。
假设某旧内容系统保留着?cat=、?sort=、?page=、?ref=四类参数,任意两类以上同时出现就会生成新路径。抓取日志里这类路径持续增加,至少有两种合理解释。
解释一:这些参数确实产生了不同的内容或不同的可访问状态。例如sort改变了列表顺序,page指向不同分页,二者组合后确实是一组新的可浏览结果。此时它属于“应当被承认的地址”,只是需要判断是否值得独立存在。
解释二:这些参数只是入口差异或追踪残留,返回的是同一份内容。例如ref只记录来源,cat与默认分类等价,组合后页面主体、标题、主要链接完全相同。此时它属于“应当被合并的地址”,继续保留只会让日志越来越难读。
两种解释都会表现为“日志里URL数量增长”,所以不能只看数量下结论。参数组合增长本身既可能是内容结构复杂,也可能是无效入口扩散。
要判断某组参数属于哪一类,应抽样对比响应本身,而不是比较被抓取了多少次。抓取次数高,可能只是因为某条路径被多个内链或外链指向,也可能只是爬虫在试探参数边界,它不能单独证明该地址有价值。
?a=1&b=2与?b=2&a=1。这类成对出现是参数被当作地址维度、而非内容维度的典型信号。这里有一个需要提前说明的适用条件:robots.txt的抓取限制不等于可靠的索引移除。即使你屏蔽了某类参数,已经进入索引的地址仍可能以其他形式出现,所以“定义有效地址集合”和“让无效地址退出”是两件需要分别处理的事。
可操作的顺序是:先写规则,再验证规则,最后才决定保留与退出。规则可以围绕三个问题展开。
一个假设例子:若?sort=price与默认列表返回相同商品集合、仅顺序不同,且没有任何站内链接指向它,那么它可以被归入“合并”类;若?page=3返回的是默认列表之外的商品,则应归入“保留”类。这个判断不依赖抓取次数,只依赖响应差异与引用情况。
动作与结果的关系在这里很直接:如果你先按“是否改变核心内容”筛一遍,日志中需要逐条判断的地址会大幅减少;剩下的少量地址再按“是否被引用”二次筛选,退出清单就不会误伤仍有入口价值的页面。反之,若跳过第一步直接按抓取频率排序,很可能会把高频但内容重复的参数路径当成重点保留对象。
定义完有效地址集合后,退出动作通常包括规范链接指向、站内链接改写、以及对已索引地址的处理。需要注意两点:站点地图不保证收录,把有效地址写进站点地图只是声明,不是收录承诺;robots.txt限制抓取也不等于移除索引,二者不能互相替代。
因此,退出后的监测重点不是“日志里这类地址是否归零”,而是“有效地址集合是否保持稳定、无效组合是否不再被站内引用”。日志中某类参数路径数量下降,也可能只是爬虫调整了抓取节奏、或站点整体抓取量变化,不能单独作为处理正确的证据。把有效地址集合写成一份可复核的规则清单,比追求某个参数路径在日志中彻底消失更可靠。