很多站点上线筛选和排序功能后,服务器日志里会突然多出一大批带参数的 URL。它们指向的内容可能和主列表差不多,只是顺序、颜色、价格区间不同。蜘蛛如果把这些组合都当成独立页面抓取,抓取预算很快就会被消耗在低价值页面上,真正需要更新的内容反而排到后面。
参数为什么容易失控
一个列表页如果允许用户同时选择多个筛选条件、多种排序方式,再加上分页,URL 组合数量会成倍增长。如果链接里还带着会话 ID 或追踪参数,同一个页面还会被拆成更多版本。这些页面在蜘蛛看来都是可访问的 URL,但其中大部分对用户和搜索都没有额外价值。
先分清四类参数
- 排序类:如按价格、销量、上架时间排序。默认排序通常应该保持无参数,其他排序只是同一批内容的不同排列。
- 筛选类:如颜色、尺寸、品牌、价格区间。部分筛选组合可能有真实搜索需求,但绝大多数组合是长尾中的长尾。
- 追踪与会话类:utm、gclid、session id 等。它们不改变页面内容,只是记录来源或用户状态。
- 站内搜索类:搜索结果页往往能生成无限组合,内容也多为列表拼合,通常不适合被大量索引。
自查:从日志和索引里找线索
- 抽取一段服务器日志,统计带问号的 URL 占蜘蛛总抓取量的比例。如果长期偏高,说明参数页面在持续消耗抓取资源。
- 在站长平台查看已收录或已抓取的样本,观察参数页是否在索引中大量出现,以及它们是否有独立的标题和描述。
- 检查站内搜索、排序和筛选链接的写法,看看默认状态是否也会生成参数。
- 用几组典型参数组合在浏览器中打开,确认它们返回的是正常内容还是空结果。空结果页尤其容易被当成低质页面。
收敛思路:保留、规范、屏蔽
保留少数有价值的组合
如果某些筛选组合确实有用户搜索,比如固定品牌加品类,可以为它们保留独立 URL,并配上独立的标题、描述和内容说明。但要有明确的取舍标准,不要因为技术上能生成就全部放开。
用 canonical 指向默认版本
对于排序、追踪参数这类不改变内容的 URL,可以在页面 head 中用 rel=canonical 指向无参数的默认版本。canonical 是提示而不是强制指令,所以最好同时让内部链接尽量只出现干净 URL,减少蜘蛛接触到参数版本的机会。
robots.txt 与 noindex 不要混用
如果决定不让某个参数页被索引,可以选择 noindex,或者用 robots.txt 阻止抓取。但两者不要针对同一个 URL 同时使用:robots.txt 阻止抓取后,蜘蛛看不到页面上的 noindex,反而可能因为外链存在而继续保留 URL。站内搜索结果页通常更适合 noindex,而不是直接屏蔽抓取,因为屏蔽后你无法看到页面上的其他指令。
参数页面的处理目标不是让蜘蛛完全看不到,而是让有价值的页面被优先发现,低价值组合不占用太多抓取额度。
从链接源头控制
参数问题往往不是搜索引擎造成的,而是站内链接自己带出来的。可以在几个地方做调整:导航和面包屑只链接到干净的分类页;筛选和排序操作尽量用表单或交互组件触发,而不是把可爬链接直接铺在 HTML 里;追踪参数通过脚本写入或放在 Cookie 中,避免出现在蜘蛛可抓到的 href 里;分页链接不要叠加过多筛选参数,必要时只保留核心路径。
持续观察,不要一次改完
参数收敛通常需要观察一段时间。每次调整后,留意日志中参数 URL 的抓取比例、索引中参数页的数量,以及核心页面的抓取频次是否回升。不要一次性把所有参数都屏蔽,否则可能误伤有真实搜索需求的组合。把参数当成站点结构的一部分来管理,蜘蛛的抓取路径会清晰很多。