很多站点的地址会随着用户操作不断变长:点一次筛选加一个参数,换个排序再加一个,从外部渠道进来还带着一串跟踪码。对用户来说,这可能只是地址栏长了一点;对搜索引擎蜘蛛来说,却是同一批内容被拆成了几十上百个地址,抓取时间被大量消耗在重复页面上。
参数都从哪里来
先做一件事:把站点上所有会让地址出现问号和连接符的地方列出来。常见的来源大致有这几类。
- 列表的筛选与排序,例如 sort=price、order=asc
- 多条件筛选,颜色、尺码、品牌叠加,组合数量随选项指数增长
- 分页,既有路径式也有参数式,两种还经常混用
- 跟踪参数,utm_source、gclid、fbclid 之类
- 会话与身份标识,例如 sessionid、sid
- 展示选项,例如 print=1、view=mobile
- 站内搜索,例如 q=关键词
这份清单不需要多精确,但要尽量全。后面所有的判断,都建立在这份清单上。
为什么要花时间处理
原因并不复杂,但影响是叠加的。
- 同一份内容有多个地址,权重被摊薄,哪个才是规范版本自己也说不清
- 抓取资源是有限的,蜘蛛在同一批内容上转圈,真正需要更新的页面就排不上队
- 参数组合可以无限生成,蜘蛛很容易陷进抓取循环
- 访问日志和统计报表被参数地址污染,看不出真实的热门页面
按“是否影响内容”分三类处理
最实用的切分方式不是按参数名,而是按它到底改变了什么。
第一类:不影响内容的参数
utm、gclid、fbclid、sessionid 这类参数,改变的只是来源统计,页面本身一模一样。首选做法是让它们不要出现在站内链接里,内链自己夹带跟踪码是最常见的自找麻烦。对于从外部带进来的这类地址,可以在服务器端做一次轻量跳转,去掉参数后指向干净地址;也可以让页面上的规范链接指向不带参数的版本。
第二类:改变展示但内容重复的参数
排序、每页条数、视图切换属于这一类。它们确实会改变页面呈现,但内容主体相同。常见做法是只保留一个默认形态可被抓取,其余交给规范链接来汇聚信号。这里有个容易踩的坑:如果直接在 robots.txt 里屏蔽所有带参数的地址,蜘蛛就读不到页面里的规范链接提示,反而失去了自我纠正的机会。允许抓取、再用规范链接引导,通常更稳妥。
第三类:真正产生独立内容的参数
例如 的商品详情、q=品牌词 的聚合页,这些本身可能是有效页面。要判断的是它有没有稳定的搜索需求、有没有独立价值。没有的话,让搜索结果页保持不被索引;有的话,就考虑改造成路径式的静态地址,而不是长期靠参数维持。
一份可以照着做的自查清单
- 导出最近一个月的服务器访问日志,按地址里是否带参数分组,看哪些参数被蜘蛛抓得最多。
- 把参数分成三类:不影响内容、改变展示但内容重复、产生独立内容。
- 检查站内链接是否混入跟踪参数,重点看分享按钮、活动页、邮件模板。
- 检查分页,列表翻到第三十页之后还有没有抓取价值,是否需要设置合理上限。
- 检查多条件筛选,是否允许同时勾选十几个条件,能不能限制组合数量或只开放单条件。
- 检查规范链接是否指向不带参数的规范版本,且使用完整地址。
- 在站长后台看索引报告,找出被大量收录的参数化地址,逐个决定处理方式。
几个容易踩的坑
- 以为屏蔽等于解决。robots.txt 只是阻止抓取,并不阻止收录,外部链接仍可能让地址进入索引。
- 全站统一规范到首页。这会把本该独立的内容页也指向首页,属于过度规范。
- 前端动态改地址却不更新规范链接。用户复制分享的地址和蜘蛛看到的不一致。
- 只处理 utm。忘了广告平台自动附加的点击标识参数,它们同样是成批出现。
判断一个参数该不该留,可以问自己一句:如果这个地址被单独分享出去,用户打开后看到的还是不是一份完整、有用的内容?
处理完之后
参数治理不是一次性的工作。站点每加一个新功能,都可能带出一批新参数。比较务实的做法是把它写进改版检查项:新上线的筛选、排序、分享功能,上线前先确认地址会长成什么样、规范链接怎么给、站内链接会不会夹带参数。之后定期回看访问日志里带参数请求的占比,这个比例在下降,就说明这一轮整理是有效果的。