搜索抓取

给蜘蛛留几条路:URL 发现的冗余设计怎么做

同一批页面只有一条抓取路径时,中间环节一出问题就容易集体失联。本文讲 URL 发现的冗余设计:内链、Sitemap、外链各自负责什么,枢纽页与翻页路径要怎么维护,以及如何用日志确认多条路径是否真的走通。

搜索抓取

给蜘蛛留几条路:URL 发现的冗余设计怎么做

单一入口的问题

很多站点的 URL 发现路径其实只有一条:首页 → 栏目页 → 列表页 → 详情页。看起来清晰,但只要中间任意一环出问题,比如栏目页改版没保留旧链接、翻页参数被挡、某个中间页抓取失败,后面整串 URL 就会集体失联。蜘蛛不会绕路,它只会沿着能走通的链接继续往下。

还有一种常见情况:新内容只出现在首页最新区块,几天后被顶下去就不再有任何入口。这条路径的生命周期太短,URL 一旦没在第一轮被抓走,后面再被发现的概率就很低。

三种发现来源各管什么

  • 内链:负责持续、稳定地暴露 URL,是日常发现的主力,也是权重传递的通道。
  • Sitemap:负责兜底和补充,把内链覆盖不到的 URL 交给蜘蛛,尤其是新发布、层级较深的页面。
  • 外链:负责把蜘蛛带到站内,通常指向首页或少数重点页,不要指望它来发现所有详情页。

三者不是替代关系。只靠 Sitemap,蜘蛛拿到了清单,但仍需要站内路径来确认页面在结构中的位置;只靠内链,深层页面可能永远等不到机会。

冗余不等于堆链接

给同一批 URL 留多条路径,重点是路径的类型不同,而不是数量多。比较有效的冗余通常长这样:

  • 栏目页列表里出现一次;
  • 正文里的相关阅读、上下篇指向一次;
  • 标签页或聚合页再出现一次;
  • Sitemap 中登记一次。

这几条路径从不同位置出发,其中一条断了,其他几条还能把蜘蛛送到目标页。反过来,如果只是在页脚堆几百个链接,本质仍是同一个入口,一旦页脚被降权或改版,冗余就归零。

枢纽页要定期体检

枢纽页指的是那些被大量链接指向、同时向外输出很多链接的页面,例如分类首页、专题页、标签聚合页。它们决定了蜘蛛能走多宽。体检时重点看三点:

  1. 翻页是否可抓取。用参数实现的翻页如果被 robots.txt 挡掉,或者靠 JS 点击才加载,后续页面的入口就断了。
  2. 链接是否直出。用 href 输出真实 URL,不要只给 onclick,蜘蛛读不出目标地址。
  3. 列表是否长期不变。固定不动的列表会反复暴露老 URL,新 URL 却始终排不上队。

怎么确认冗余真的生效

可以从日志入手,挑几个目标 URL,看它们最近一次被抓取时,前一步请求来自哪个页面。如果每次都只有同一个来源,说明其他路径蜘蛛并没有走通,需要检查那条路径上是否有断链、跳转或屏蔽。

另一个动作是抽样检查内链是否可点击、可爬取:把某条内链在测试环境临时改错,看蜘蛛是否还能从别的入口到达该页面。这只是验证手段,正式环境不要故意留错误链接让蜘蛛踩。

冗余的目标不是让蜘蛛多抓几次,而是让每条 URL 至少有一条稳定、可走通的到达路径。