同一个列表页,加上排序参数、筛选参数、追踪参数之后,可能对应几十甚至上百个可访问的 URL。这些地址都能返回内容,也都可能被内链或外部链接指向,蜘蛛一旦开始跟,抓取配额就会被慢慢摊薄。参数本身不是错误,问题在于没有边界。
参数是怎么把 URL 空间撑大的
参数对抓取的影响来自组合爆炸。一个页面有三个筛选维度,每个维度五个取值,理论组合就上百。如果筛选结果页之间还能互相链接,蜘蛛会顺着这些链接继续扩散,而这些页面大多内容高度相似,对用户价值有限。
追踪参数更隐蔽。分享链接带上 utm_source、fbclid、ref 之类,用户复制传播,外部平台也可能带来这种带参数的地址。它们指向同一份内容,却各自独立成一条抓取路径。
先分清哪些参数该留,哪些该收
判断标准可以简单一点:这个参数会不会改变页面的主要内容。
- 改变内容的参数:分类筛选、分页、语言、商品规格。这些通常值得保留,但要有明确的可抓边界。
- 不改变内容的参数:会话 ID、排序方式(默认排序除外)、追踪参数、纯展示开关。这类应尽量统一到规范 URL。
判断一个参数值不值得被索引,可以问一句:用户会想把这个 URL 收藏或分享出去吗?
收敛 URL 的几种做法
内链只指向规范版本
站内链接是最可控的入口。分类导航、面包屑、相关推荐里的链接,都应指向不带追踪参数、参数顺序固定的版本。蜘蛛主要跟着内链走,内链干净,抓取路径就干净。
canonical 要指向真正的规范 URL
带参数的页面可以保留访问能力,但 canonical 应统一指向不带参数的主版本。注意 canonical 是提示而不是指令,如果站内大量链接仍指向参数 URL,效果会打折,所以内链统一要优先做。
robots.txt 屏蔽要谨慎
直接屏蔽参数确实能阻止抓取,但如果这些 URL 有外链,被屏蔽之后蜘蛛拿不到页面,也就看不到页面上的 canonical,容易造成判断混乱。屏蔽更适合那些确定不需要被索引、也没有外链价值的技术参数,比如会话 ID。
Sitemap 只放规范 URL
Sitemap 里出现的每一条都会被当作候选抓取目标。把带参数的变体写进去,等于主动增加抓取负担。只提交确定要索引的规范地址即可。
筛选页要不要让蜘蛛抓
这取决于筛选页有没有独立价值。像“某城市某价位的房源”这种组合,用户会直接搜索,页面内容也足够独立,可以考虑保留并给它规范 URL。而纯粹的组合筛选、结果很少、内容和父级几乎一致的页面,更适合用 nofollow 控制内链被发现,或者不生成可抓链接,由前端状态实现。
怎么验证收敛有没有生效
- 看服务器日志里带参数的请求占比,做收敛前后的对比。
- 在搜索控制台查看已索引的地址中有多少是参数版本。
- 抽查几个主要列表页,确认站内链接是否统一指向规范 URL。
这些指标不会立刻变化,通常需要几周时间让抓取队列自然更新。
小结
参数管理的核心不是把所有参数都砍掉,而是让 URL 空间有边界:站内链接指向同一版本,canonical 明确,Sitemap 只放该索引的地址,剩下的技术参数尽量不进入抓取路径。做到这几点,抓取配额才会更多地花在真正需要被索引的页面上。