给站内做一次链接盘点,常会发现同一批商品或文章对应着几十条甚至上百条带参数的 URL:?utm_source=xxx、?sort=price_desc、?filter=red。这些链接有的被分享出去,有的写在广告素材里,还有的只是筛选器自动生成的。它们会不会被收录、要不要被收录,其实是两件需要分开判断的事。
先把带参链接分成几类
- 纯跟踪参数:utm_source、gclid、fbclid 之类,只用于归因,不改变页面呈现的内容。
- 排序与视图参数:?sort=、?order=、?view=list,页面主体集合相同,只是排列或样式不同。
- 筛选参数:?color=red&size=40,内容是对主集合的收窄,组合数量往往成倍增长。
- 分页与游标参数:?page=2、?offset=60,属于同一列表的延续。
分类的意义在于:这四类链接对应的处理方式并不一样,混在一起谈“要不要屏蔽”,很容易做出互相矛盾的决定。
爬虫为什么容易顺着参数抓下去
蜘蛛发现 URL 的主要途径还是站内链接、sitemap 和外链。只要筛选器是可点击的 a 标签而不是纯 JS 交互,爬虫就会顺着点进去;再加上筛选条件可以两两组合,URL 的数量会迅速膨胀。抓取本身不等于收录,但大量低价值 URL 会占用抓取配额,也会让日志和收录报告更难读。反过来,如果这些页面确实承接了搜索需求,一刀切屏蔽又会白白丢掉入口。
不同类别的处理思路
跟踪参数
最干净的做法是让站内所有链接都不带跟踪参数,只在广告、邮件、社媒等对外投放渠道上附加。页面本身用 canonical 指向不带参的规范版本。如果某个带参地址已经积累了较多外链,可以保持可访问,同时把它规范到主版本,而不是让它单独参与索引。
排序与视图参数
这类地址通常没有独立搜索需求。方向是让页面上的链接统一使用默认排序的 URL,排序状态尽量通过前端交互实现;对已经存在的排序地址,canonical 指向默认版本即可。注意别让导航、面包屑和相关推荐里也挂着 ?sort,否则带参链接就成了站内主路径。
筛选参数
这一类需要逐个看。像“红色连衣裙”“两千元以内手机”这种有明确搜索意图的组合,值得作为可索引的落地页,配独立标题和描述;而颜色乘尺码乘品牌叠加出来的长尾组合,多数只是给用户现场用的,可以让 canonical 指回上级分类页,或用 noindex, follow 保留链接传递。做这类改动时,先小范围测试再推广到全站。
分页参数
分页是列表内容的延续,一般不建议用 robots.txt 整体屏蔽,否则列表后半段的内容会长期缺少被发现的机会。更稳妥的是让分页可访问、可抓取,同时保证每一页都有唯一的标题和自指的 canonical。
几个容易踩的坑
- canonical 自指:筛选页的 canonical 写成了自己,等于告诉搜索引擎“这就是规范版本”,重复内容就此散开。
- sitemap 混入参数链接:把筛选、排序地址一起写进 sitemap,等于主动把爬虫引向低价值页面。
- 只改 canonical 不改内链:页面上仍在大量输出带参链接,规范信号会被内链不断抵消。
- 用屏蔽代替判断:把有搜索需求的筛选页也一起屏蔽,等于把一个流量入口关掉。
自查可以看这几处
- 在服务器日志或抓取统计里筛出带问号的请求,看它们占总抓取请求的比例和变化趋势。
- 抽查若干筛选页,确认 canonical 指向的是预期版本,而不是它自己。
- 在搜索结果里看看带参页面是否有排名和点击,有真实需求再考虑保留为独立页面。
- 调整之后持续观察一段时间,重点看抓取结构、收录分布和筛选页的自然流量有没有异常波动。
参数本身不是问题,问题是同一份内容被拆成了多少条可访问地址,以及其中哪些真的值得出现在搜索结果里。
没有一套参数规则能套用所有站点。先把链接按类型分好,再按“有没有独立搜索价值”逐类决定保留、归一还是不参与索引,比笼统地讨论“参数会不会影响收录”要实用得多。