搜索抓取

分页与筛选参数:蜘蛛抓取时的路径膨胀怎么收敛

列表页、分页和筛选参数组合起来,很容易让站内出现大量相似 URL。蜘蛛沿着这些链接抓取时,会把有限的抓取次数分散到低价值页面上。本文从路径来源、蜘蛛取舍逻辑和收敛做法三方面,说明如何让抓取回到有内容、有更新的 URL 上。

搜索抓取

分页与筛选参数:蜘蛛抓取时的路径膨胀怎么收敛

列表页、分页链接和筛选参数,是站内 URL 增长最快的几个位置。一个商品列表加上排序、价格区间、品牌、尺码等条件,很容易组合出成百上千个 URL。蜘蛛顺着这些链接走,抓取次数会被迅速摊薄,真正需要更新的页面反而等得更久。

路径膨胀通常从哪来

常见来源有这几类:

  • 分页:列表页翻到第几十页,内容重复度高,更新频率低。
  • 排序参数:同一批结果换一个排序方式,URL 就变一次。
  • 筛选组合:多个筛选条件自由叠加,产生大量内容相近的页面。
  • 标签与归档:标签页、日期归档在内容少时会形成空壳。

它们本身不一定有问题。有搜索需求、有独立内容的筛选页,可能值得被抓取。问题在于自动生成、没有维护、内容大量重复的那部分。

蜘蛛会怎么取舍

蜘蛛没有无限预算。它更愿意把时间花在链接位置明显、层级较浅、历史更新稳定的 URL 上。如果一个筛选组合只在内页深处出现,且长期没有内容变化,被抓一次之后往往很久不再回来。

所以路径膨胀的代价不只是多占几个 URL,而是把本来可以给新页面、更新页面的抓取次数,分给了大量低价值地址。表现可能是:新文章提交后迟迟不见抓取,老列表页却被反复访问。

收敛路径的几种做法

先区分要抓和不用抓

不要一刀切地把所有参数都屏蔽。可以先看日志和站内搜索数据:哪些筛选组合真的有用户访问、有独立内容、与其他页面差异明显,保留;纯粹为了排序或空结果生成的 URL,考虑在 robots.txt 中屏蔽参数,或让页面返回合适的 404/410,而不是 200 空页。

分页保留,但控制深度

分页对发现旧内容仍有价值,不必全部砍掉。可以只保留前若干页的可抓链接,更深的页码不再通过链接暴露,或者用加载更多替代无限翻页。注意分页页不要 canonical 到第一页,那样会让后续页面的内容失去被抓的理由。

把有价值的入口固定下来

如果某些筛选组合确实有搜索需求,最好给它们固定的内链入口,比如从分类页或导航中链接过去,而不是只靠参数自动生成。这样蜘蛛看到的是一条稳定路径,而不是随机组合。

Sitemap 只放稳定 URL

Sitemap 适合提交内容稳定、需要持续抓取的页面。把参数组合、临时排序页塞进去,反而会稀释清单的作用。分页页是否放进 Sitemap,可以根据内容更新情况决定,但不必把所有页码都列上。

留意服务器承接能力

参数页数量多时,蜘蛛集中抓取会给服务器带来额外压力。如果这些页面查询慢、响应时间长,可能影响同一时间其他 URL 的抓取。把低价值参数挡在抓取之外,也是在减少无谓的服务器消耗。

定期检查调整效果

调整之后,可以看几件事:抓取日志里参数 URL 的占比是否下降;新内容从发布到首次被抓的间隔是否缩短;返回 200 但内容重复的页面是否减少。若发现某个筛选页有稳定流量,再单独放出来也不迟。

路径收敛的目标不是把所有参数都消灭,而是让蜘蛛把有限的抓取次数用在有内容、有更新、有入口的 URL 上。

分页和筛选参数本身是正常的站内结构,只要入口清晰、内容有区分、数量可控,就不必过度处理。真正需要警惕的是自动生成、无人维护、内容雷同的那部分 URL,它们最容易让抓取路径失控。