蜘蛛池知识

蜘蛛池入口页的URL参数与重复内容:一个页面被蜘蛛当成好几个之后

蜘蛛池入口页常常能以多条地址打开:跟踪参数、排序筛选、大小写与结尾斜杠差异,都可能让蜘蛛把同一页当成几个页面。本文梳理重复地址的常见来源、对抓取预算与统计口径的影响,以及从生成端统一、canonical 兜底到日志复核的处理思路。

蜘蛛池知识

蜘蛛池入口页的URL参数与重复内容:一个页面被蜘蛛当成好几个之后

在蜘蛛池里,同一个入口页常常能以好几种地址打开。带来源参数的、带排序参数的、结尾多一个斜杠的、大小写不同的,返回的内容几乎一样。对访客来说无所谓,对搜索蜘蛛来说却是好几个地址,而它们指向的是同一份内容。

同一页为什么会裂成多个地址

大多数情况下不是有人刻意做的,而是程序默认行为叠加出来的结果。链接在传递过程中被自动加参数,模板里对地址的处理不统一,历史改版留下的旧路径仍然可达,都会让一个页面出现多条 URL。

跟踪参数与来源标记

utm_source、from、ref、spm 这类参数只记录来源,不影响页面输出。但它们改变了 URL 字符串,蜘蛛按字符串区分地址,于是同一页被当成多个页面分别抓取。

排序、筛选与分页

列表页的排序方式、筛选条件、分页页码都属于这一类。如果每个组合都生成一条可访问地址,入口页很容易膨胀出成百上千条近似 URL,而这些页面之间的内容差异可能只有几行。

形态上的细节差异

  • 大小写不同:/Page 与 /page 在部分服务器上都能打开
  • 结尾斜杠:/a 与 /a/ 被当作两条地址
  • 默认文件:/a 与 /a/index.html 同时可达
  • 协议与主机名:http 与 https、带 www 与不带 www 并存
  • 参数顺序:?a=1&b=2 与 ?b=2&a=1 是两个不同的字符串
  • URL 编码差异:中文路径被编码成不同形式

对蜘蛛池运营的实际影响

  • 抓取预算被分摊:同一份内容占用多条地址的抓取额度,真正需要被发现的页面分到的次数变少。
  • 发现信号被稀释:外链、主动提交、内链指向不同形态,抓取提示难以集中到一条地址上。
  • 统计口径失真:日志里的抓取量看起来很高,去重之后可能只剩一半,容易误判入口页的实际表现。
  • 淘汰判断失准:替换旧资源时若按未归一的 URL 统计,可能把同一页的不同形态当成两个资源分别处理。

处理思路

从生成端统一

入口页输出的链接、sitemap 里的地址、提交时使用的地址,尽量保持同一种形态:统一小写、统一结尾斜杠策略、不带多余参数。内部链接不要随手拼接来源标记。

用 canonical 与 robots 兜底

对确实需要保留的带参地址,可以在页面里用 canonical 指向规范地址,减少蜘蛛在多个形态之间做选择。对完全无内容价值的参数组合,可以用 robots.txt 屏蔽抓取,但要注意屏蔽之后蜘蛛也无法通过该地址发现规范页。

  1. 先跑一遍日志,把访问过的 URL 做归一化,看去重前后差多少
  2. 列出差异最大的参数类型,判断哪些是必要的、哪些是噪音
  3. 在生成端收敛地址形态,再补上 canonical
  4. 观察一到两周,看规范地址在抓取中的占比是否上升
canonical 是提示而不是命令,蜘蛛有自己的判断逻辑,处理之后仍需以实际抓取与收录情况为准。

复核方式

归一化后的抓取统计、被收录地址的形态抽查、新入口页上线时提交的地址是否唯一,这三项结合起来看,比单看总抓取量更能说明问题。地址越干净,后面判断资源好坏时越不容易被干扰。