当查询参数可以任意排列、任意组合时,把每个参数组合都当作独立地址,集合会无限膨胀,抓取预算和索引容量都会被耗空。实际做法是:先定义哪些参数真正改变页面内容,再决定对剩余参数保留、改写还是退出。这个定义必须能被不同角色核对,否则分歧会一直存在。
有效地址集合的边界,不是由参数个数决定,而是由参数是否改变页面主体内容决定。可以按下面三类判断:
判断依据要落到可核对的证据上:同一组参数下,页面标题、主体文本、主要链接是否出现实质差异。若两个地址只有参数顺序不同、内容完全一致,它们就不应被当作两个有效地址。
三种取舍各有成立条件,不能一刀切。
当参数确实产生用户需要的内容变体,且组合数量可控时,保留是合理的。前提是:变体有独立搜索需求,且能被站内链接或站点地图稳定发现。保留不等于放任,需要为每个变体设置明确的规范地址,并限制参数取值范围。
当参数只影响排序、视图或会话,但地址仍被外部链接引用时,改写比直接退出更稳妥。做法是把参数地址重定向或规范到无参数版本,让已有链接继续可用。前提是确认这些地址没有独立内容价值,否则改写会丢掉真实变体。
当参数组合由程序无限生成、没有独立内容、也没有外部引用时,退出是必要的。退出方式包括:在 robots.txt 中限制抓取、在页面层面返回明确的不可索引信号、以及停止在站内链接中暴露这些组合。需要注意,robots.txt 的抓取限制不等于可靠的索引移除;它只约束抓取行为,已收录地址仍可能留在索引中,需要配合其他信号处理。
多个角色对同一批地址有不同理解时,争论“该不该收录”往往没有结果。更有效的做法是把分歧拆成可核对的条目:
站点地图不保证收录,它只是发现渠道之一。因此不能把“已提交站点地图”当作地址有效的证据,也不能把“未出现在站点地图”当作地址无效的证据。核对时应以页面内容差异和链接关系为主。
假设某列表页支持 sort、page、view 三个参数,每个参数有若干取值,程序会生成全部组合。可以这样处理:
page 改变内容,保留,但限制最大页数,并为每页设置自引用规范地址。sort 改变内容顺序,保留默认排序,其余排序若没有独立搜索需求则规范到默认版本。view 只改变展示样式,退出索引,统一规范到默认视图。执行后,有效地址集合从“所有组合”收敛为“页数 × 默认排序”。下一步应抽样核对:被退出的组合是否仍有外部链接;若有,先做改写而不是直接退出。这个顺序会影响后续工作量——先处理有外部引用的地址,再清理纯程序生成的组合,能减少链接失效带来的额外排查。
有效地址集合不是永久固定的。当参数语义变化、页面主体改版或外部链接结构改变时,原来的保留或退出结论可能需要重新评估。写清适用条件,比给出一个静态清单更有用:
把这些条件写进项目文档,不同角色就能在同一组事实上核对,而不是各自凭理解争论。有效地址集合的定义,最终要落到“哪些地址值得被抓取和索引”这一可执行的判断上。