搜索抓取

追踪参数与会话 ID:同一页面被重复发现的常见来源

同一个页面往往有多条带参数的地址,站内链、Sitemap、外部推广各推一个版本,搜索蜘蛛就会把它们当成不同地址分别发现和抓取。本文梳理重复地址的常见来源,给出从日志核对到入口收敛的处理顺序,以及几个容易做过头的地方。

搜索抓取

追踪参数与会话 ID:同一页面被重复发现的常见来源

为什么同一个页面会有多条地址

页面本身只有一个,但站内链出去、Sitemap 里写、外部推广带上的地址可能都不一样。搜索蜘蛛是按 URL 走的,不同 URL 就是一个新地址,它会分别发现、分别抓取、分别判断。发现入口越多,重复的那部分就越容易被放大。

最常见的几类重复来源

  • 营销追踪参数:utm_source、from、ref 之类,渠道一多,同一条链接能生成几十个版本。
  • 会话与用户标识:sessionid、sid、uid 出现在 URL 里,几乎每次访问都可能生成新地址。
  • 排序与筛选参数:?sort=、?order=、?page= 在列表页上随手就能拼出大量组合。
  • 缓存与调试参数:v=1、时间戳,上线时为了绕开缓存加上,之后忘了去掉。
  • 大小写、斜杠、默认页:这类属于地址形态不统一,常常和参数问题一起出现。

重复发现会带来什么成本

抓取配额是有限的。同一份内容被几十个地址访问,花在别处的请求就少了。更麻烦的是判断:日志里几千条记录看起来像几千个页面,真实页面只有几十个,排查问题时很难看出哪里出了状况。此外,当 Sitemap、内链和 canonical 各自指向不同版本时,传给搜索蜘蛛的信号本身就是矛盾的。

处理顺序:先看日志,再动手

  1. 从服务器日志或搜索后台的抓取统计里,找出请求次数最多、路径相同只是参数不同的那一批 URL。
  2. 确认哪个是规范版本:一般是不带任何参数、和页面内容一一对应的那个地址。
  3. 页面上的 canonical 指向规范版本,并且这个标签要能在源码里直接看到,不要依赖脚本后期写入。
  4. 站内链接和 Sitemap 统一写规范版本,别再顺手带上追踪参数。
  5. 如果某些参数组合确实没有独立内容价值,可以用 robots.txt 的 Disallow 或搜索后台的参数设置工具处理,但要先确认屏蔽后不会挡住真正需要被抓取的地址。
  6. 改完观察一到两个抓取周期,看重复 URL 的请求量是否下降,而不是当天就下结论。

几个容易做过头的地方

不要一刀切屏蔽所有带问号的地址

站内搜索、分页、部分筛选页本身可能是有价值的入口,粗暴屏蔽会连带影响这些页面被发现。更稳妥的做法是先分清楚哪些参数会改变页面内容,哪些只是记录来源。

canonical 和实际入口要一致

如果 canonical 写的是 A,内链和 Sitemap 都在推 B,搜索蜘蛛更容易相信它实际抓到的那个。三者对齐,比单点优化更有效。

外链上的参数不必强行回收

别人怎么做链接你控制不了。能做的是让自己站内的入口保持干净,让规范版本在内链和 Sitemap 里得到足够多的指向。

重复地址的治理是收敛入口,不是消灭所有参数。目标是把抓取和判断集中到少数几个地址上,而不是把所有带问号的链接都堵死。

小结

同一页面出现多条地址,多数时候来自自己站内的入口写法。先把日志看清,确定规范版本,再让 canonical、内链、Sitemap 三处保持一致。收敛是一个持续的过程,渠道活动、埋点调整都可能重新引入参数,需要定期回头看一眼。