蜘蛛池知识

蜘蛛池入口页的 URL 参数:哪些参数会引来重复抓取

入口页带上会话、追踪或排序参数后,同一个页面可能被蜘蛛当成几十个不同地址,抓取预算被大量消耗在重复内容上。本文按参数类型拆开说明,哪些该保留、哪些该清理,以及 301、canonical、静态化几种处理方式的取舍与自查要点。

蜘蛛池知识

蜘蛛池入口页的 URL 参数:哪些参数会引来重复抓取

入口页的 URL 一旦带上参数,同一个页面对蜘蛛来说就变成了多个地址。池子本来就靠数量换发现机会,如果每个入口页都自带十几个变体,抓取预算很快会被这些重复地址吃掉。下面按参数类型拆开看。

参数制造的三种重复

  • 纯状态参数:sessionid、sid、随机数、时间戳。它们只服务于访问状态,与内容无关,每次请求都可能不一样。
  • 追踪参数:utm_source、from、ref、share 之类。用于统计来源,页面内容完全相同。
  • 内容参数:page、cat、sort、filter 等。这类参数确实会改变页面上展示的内容集合。

前两类是纯粹的重复,第三类要看实现方式。不少站点用同一个模板渲染不同排序结果,本质上还是同一批链接,只是顺序变了。

该清理的参数

与内容无关的参数应尽量不出现在入口页的链接里。做法分两层:链接层面不生成,服务器层面做归一。

  • 站内所有指向入口页的链接,统一使用无参数或固定参数的地址。
  • 对带追踪参数、会话参数的访问,返回 301 跳到干净地址。
  • 参数顺序固定,值做小写化、去空格处理,避免 a=1&b=2 与 b=2&a=1 被视为两个页面。
  • 会随请求变化的随机数,尽量改成服务端生成一次、长期复用。
参数归一的目标不是讨好某一个搜索引擎,而是让同一份内容只有一个稳定地址,减少池子里的无效地址。

该保留的参数

分页、分类、筛选这类会真正改变内容集合的参数,不必强行去掉,但要控制组合数量。两三个筛选条件、每个条件取几个值,组合数就会暴涨。建议只给蜘蛛保留一条主路径,其余组合用 robots.txt 屏蔽,或在页面上用 canonical 指回主路径。

静态化的取舍

把带参数的地址改写成 /list/page-2/ 这类路径,好处是地址稳定、便于统计;代价是规则写错容易出现循环或死链。改造时先在测试环境把重写规则跑一遍,确认 301 链路只有一跳。

canonical 不能当万能药

canonical 是提示而不是指令,蜘蛛可能忽略。参数地址如果本身还能正常访问并返回内容,仍然可能被单独抓取。更彻底的做法是让带参数的地址返回 301,或者干脆不生成这样的链接。

自查清单

  1. 抓取日志里同一路径出现大量不同参数版本,说明归一没做干净。
  2. 随机数、时间戳出现在入口页 HTML 中,优先处理。
  3. 站内链接与 sitemap 中的地址写法是否一致。
  4. 分页参数是否可被无限组合,机器生成的分页链接要设上限。
  5. 重定向链是否超过一跳,链路过长会持续消耗抓取配额。

参数处理的收益不会立刻体现在蜘蛛数量上,但能减少池子里的无效地址,让有限的抓取预算落在真正需要被发现的 URL 上。池子越大,这件事越值得先做。