很多站点在筛选、排序、分页、分享链接里都会附带参数。对用户来说,这些参数只是当前视图的状态;对搜索蜘蛛来说,它们却可能变成一条条新的 URL。蜘蛛并不总是能判断“?color=red”和“?color=blue”背后是同一套内容,于是同一页面被拆成多个地址,抓取路径也跟着变散。
参数 URL 通常从哪里进入抓取队列
蜘蛛发现参数 URL 的入口,往往不只在 Sitemap 里。常见的来源有:
- 页面上筛选、排序、分页的链接,直接带着参数输出。
- 分享按钮或营销链接里的跟踪参数,比如 utm 系列。
- 站内搜索、会话 ID、来源标记等动态参数。
- 外部站点复制过去的带参链接。
- JavaScript 渲染后才出现的筛选链接。
如果这些入口在站内反复出现,蜘蛛就会沿着它们不断扩展。它可能觉得每个参数组合都是一个独立页面,还会把其中一部分当作需要抓取和更新的 URL。
抓取注意力被分散之后会发生什么
最直接的影响是抓取资源被摊薄。假设一个列表页有颜色、尺码、排序、页码四类参数,每类又有多个取值,组合出来的 URL 会迅速膨胀。蜘蛛每次来访能抓的页面数量有限,如果大量请求都花在参数组合上,真正需要更新的内容页反而可能被推后。
其次,日志里会出现大量状态正常、内容相近的 URL。它们互相之间没有明确的主次,蜘蛛在计算权重和判断重复内容时容易摇摆。更麻烦的是,某些参数组合可能返回空结果或错误页,这些地址一旦被大量发现,也会进入抓取队列,消耗站点响应能力。
参数本身没有错。问题在于同一种内容有没有稳定的规范地址,以及站内是否把规范地址当作唯一入口。
先区分哪些参数值得保留
整理的时候,不建议一刀切。可以先把参数分成三类:
- 影响内容的参数:比如分页的 page、商品筛选里会改变结果集的关键参数。这些页面用户能看到不同内容,通常需要让蜘蛛抓取。
- 只影响展示的参数:比如排序方式、每页条数、主题样式。内容主体接近,最好只保留一个默认地址。
- 跟踪与临时参数:比如 utm、session、来源标记。它们不改变页面内容,通常不需要被蜘蛛抓取和收录。
分类之后,规范 URL 的选择会更清楚。分页参数一般保留,排序和跟踪参数尽量从可抓取路径里拿掉。
用 canonical 和内链统一主路径
对于内容相同但参数不同的地址,可以在页面里输出指向规范 URL 的 canonical。canonical 需要稳定、可访问,并且和站内主要链接指向的地址一致。如果 canonical 指向 A,内链却大量指向 B,蜘蛛会收到相互矛盾的信号,抓取路径仍然会分叉。
内链是蜘蛛最常走的路径。列表页、详情页、相关推荐里的链接,最好都使用不带多余参数的地址。筛选链接如果必须存在,可以做成用户点击时才展开,或者用按钮配合脚本提交,而不是在 HTML 里直接铺出成百上千条参数链接。
Sitemap 也一样。它适合放规范 URL 和重要分页,不适合把各种参数组合都塞进去。Sitemap 越干净,蜘蛛从这里继承到的抓取优先级就越集中。
robots 与抓取控制要谨慎
有些站点会用 robots.txt 屏蔽参数目录或参数关键词。这个做法可以减轻抓取负担,但要避免误伤。比如分页参数、筛选后能看到独立内容的关键参数,一旦被屏蔽,蜘蛛就无法继续沿着列表发现更深的 URL。屏蔽之前,最好先看服务器日志:哪些参数 URL 被频繁抓取、返回什么状态、是否有内链指向它们。
如果只是不想让跟踪参数进入索引,可以用 canonical 加上页面级 noindex 来处理,而不是直接切断整段路径。具体用哪种方式,取决于该参数是否影响用户看到的内容,以及站点是否依赖这条路径做 URL 发现。
服务器日志是检验整理效果的起点
参数整理不是一次性工作。改完内链、canonical 和 Sitemap 之后,可以观察一段时间服务器日志,看带参 URL 的抓取比例有没有下降,规范 URL 的响应是否稳定。如果参数 URL 仍然大量出现,要回头检查是不是还有旧模板、外部链接或 JS 生成链接在持续输出。
同时留意服务器稳定性。参数 URL 变多时,单位时间内的请求数可能上升,动态查询也会更重。抓取高峰期如果响应变慢,蜘蛛的调度节奏会受影响,规范 URL 的抓取也可能被拖后。把无意义参数从抓取路径里清理掉,本身也是在给服务器减负。
总结一下:参数 URL 不一定要全部封死,但需要有一条清晰的主路径。先分类,再统一内链、canonical 和 Sitemap,最后用日志验证。蜘蛛的抓取注意力有限,把入口收拢到真正重要的地址上,URL 发现和抓取路径都会更可控。