直接回答:把“有效地址集合”定义为可枚举、可判定、可退出的白名单,而不是让爬虫去穷举参数排列。做法是先按参数语义分组,只保留会改变页面主体内容的键,对分页、排序、筛选、追踪等键分别给出保留或归一规则,再用规范链接、robots.txt 和站点地图把可抓取范围收窄到这份白名单。旧内容、旧系统或旧合作关系退出时,仍然有价值的地址进入白名单,其余地址要么归一到少数代表页,要么明确返回 404 或 410。
第一种条件:参数只影响展示形式,不影响主体内容。典型是排序、每页条数、会话标识、来源追踪。这类参数组合即使无限增长,也不应产生新的有效地址。选择把它们归一到无参数或单一规范形式,是成本最低的做法。
第二种条件:参数确实改变主体内容,例如筛选出某个品牌、某个价格区间、某个地区的独立结果页。这类地址有被搜索需求命中的可能,但数量会随条件组合膨胀。选择是只保留有稳定搜索需求或内部链接支撑的少量组合,其余组合不进入白名单。
判断依据不是参数个数,而是“同一主体内容是否重复”。可以抽一组参数地址,去掉参数后对比正文主体、标题和主要数据是否一致。若一致,归入第一种;若明显不同,归入第二种。这个动作的结果决定下一步:第一种走归一,第二种走限量白名单。
把站点参数先列成表,按语义分成四类:内容选择类(品牌、品类、地区)、展示控制类(排序、视图、每页数量)、追踪类(来源、活动、会话)、分页类。每类给一个明确处置:
这里的关键动作是“不生成链接”,而不是只靠 robots.txt 拦截。robots.txt 的抓取限制不等于可靠的索引移除,被拦截的地址仍可能因外部链接出现在结果里。要真正退出,需要让地址返回 404 或 410,或归一到有效代表页。
旧系统或旧合作关系下线时,参数组合往往已经散落在外部链接和站点地图里。此时不要一次性全部删除,而是先做一次地址清点,按“是否仍有独立搜索需求”和“是否有可替代的新地址”两个维度分堆:
执行后观察抓取和索引数据的变化。如果某批地址的抓取量下降但索引量没有同步下降,说明还有外部链接或站点地图在持续暴露它们,需要继续清理来源,而不是直接判定处理成功。抓取量或某项统计归零,也可能只是爬虫调度周期变化,不能单独作为处理正确的证据。
最终的有效地址集合应当写成一份可判定的规则,例如:只允许 ?category= 和 ?page= 两个键,且 category 取值必须在已登记列表中,page 不超过已登记的最大页码。任何不满足的地址一律不输出链接,并返回 404 或归一到代表页。
例外情况需要单独登记:合作方要求保留的落地页、历史活动页中仍有外部流量的少数地址、以及法律或合同要求保留的页面。这些例外进入白名单,但要有负责人和复核周期,避免白名单再次无限增长。
站点地图只放白名单内的地址。站点地图不保证收录,它只是告诉搜索引擎哪些地址是你认可的有效地址。HTTPS 也不保证安全无漏洞或排名,它只是传输层的基本要求,不能替代地址集合的治理。不同搜索引擎对参数处理和规范链接的支持情况须分别核查,不能假设一套规则在所有引擎上表现一致。
假设某旧站有品牌、地区、排序三个参数,组合数随品牌和地区数量相乘增长。清点后发现排序参数不改变主体内容,地区参数只有少数几个地区有独立需求,品牌参数全部有独立需求。处置动作是:排序参数全部归一到默认视图;地区参数只保留有需求的两个值,其余 301 到无地区版本;品牌参数全部保留。结果是有效地址集合从“品牌数 × 地区数 × 排序数”收缩为“品牌数 + 2 个地区代表页”。这个结果让后续的站点地图生成和内部链接维护都变成可枚举的有限集合,而不是每次新增品牌或地区就自动膨胀。
如果白名单规则执行后仍有大量参数地址被抓取,先检查是否有外部链接、旧站点地图或站内搜索框在持续生成这些地址,再决定是继续清理来源还是调整规则。只有在来源清理和规则收口都完成之后,抓取数据的变化才适合用来判断处理是否生效。