很多站点上线筛选、排序、追踪功能后,URL 数量会成倍增长。对用户来说方便,对蜘蛛来说可能是大量重复或低价值路径。参数本身不是问题,问题在于没有告诉蜘蛛哪些值得抓、哪些只是同一页面的变体。
参数 URL 通常从哪来
- 筛选条件:颜色、价格区间、品牌、地区,组合后数量巨大。
- 排序方式:按销量、价格、上新时间,产生多个排序变体。
- 分页参数:page=2、offset=20,属于列表翻页。
- 追踪与广告参数:utm_source、ref、from,用于统计来源。
- 会话或用户标识:sid、sessionid、uid,通常不该出现在可抓链接里。
蜘蛛会不会抓参数 URL
如果内链、Sitemap 或外链里出现参数链接,蜘蛛可能发现并安排抓取。但是否抓完、抓多深,取决于站点权重、页面质量、服务器响应和抓取预算。参数 URL 越多,越容易让蜘蛛把时间花在相似页面上。
参数 URL 不一定被全部抓取,但会占用被发现和排队的机会;真正需要收录的页面可能因此被延后。
哪些参数适合保留,哪些需要收口
可以保留的参数
- 分页参数:如果列表内容确实分页,保留并确保第 2 页可正常访问。
- 有搜索价值的筛选:如品牌、品类等用户会主动搜索的组合,可以有选择地保留。
- 必要的语言或地区参数:若没有独立目录,可用参数区分,但配合 hreflang 和 canonical。
建议收口的参数
- 排序参数:默认排序可收录,其他排序页用 canonical 指向默认排序 URL。
- 追踪参数:链接中尽量不写,或由前端统计脚本动态附加;不要放在静态链接里。
- 会话 ID:不要出现在 URL 里,改用 Cookie 或服务端会话。
- 无搜索量的筛选组合:用 robots.txt 禁止抓取,但注意被禁止抓取的 URL 仍可能因外链被索引为无描述结果;更稳妥的是 noindex 或 canonical。
内链和 Sitemap 怎么配合
蜘蛛主要顺着链接走。如果页面上所有筛选组合都以内链形式出现,等于主动把大量参数 URL 交给蜘蛛。可以这样调整:
- 只把默认列表页、重要筛选页放进导航和正文内链。
- 筛选结果页的链接用按钮或表单提交,减少静态可抓链接;但不要指望 JS 完全隐藏,因为渲染后仍可能被发现。
- Sitemap 只提交干净、规范的 URL,不要提交带 utm、排序和会话参数的版本。
- 如果某些参数页需要收录,给它们独立的标题、内容和自指 canonical,而不是简单复制主列表。
用日志验证参数抓取
查看服务器日志时,可以筛选带问号的请求,统计:
- 哪些参数最常被蜘蛛访问;
- 这些请求返回 200、301 还是 404;
- 抓取频次是否挤占了重要栏目;
- 被 robots.txt 拦截的 URL 是否仍大量出现。
如果发现蜘蛛反复抓取无价值参数页,先检查内链和 Sitemap,再考虑用 canonical、noindex 或 robots 调整。不要只依赖一种方式。
常见误区
- 用 robots.txt 屏蔽参数,以为就不会被索引。实际上,若其他页面有链接,URL 仍可能出现在搜索结果中,只是没有摘要。
- 所有筛选页都提交 Sitemap,结果抓取预算被大量相似页面占用。
- 排序参数不处理,导致同一商品列表出现多个可抓版本。
- 追踪参数写死在站内链接里,蜘蛛和用户访问都带上同一串参数。
参数 URL 管理不是一次清完就结束。站点功能会变,链接会新增。建议定期抽查内链、Sitemap 和日志,把参数 URL 分成需要抓、可以抓但不必收录、不必抓三类,分别用内链、canonical、noindex 和 robots 处理。抓取资源有限,让蜘蛛优先走真正有内容的路径,比追求 URL 数量更有意义。