搜索抓取

链接挂多久才算数:临时入口与 URL 发现的窗口期

蜘蛛不是实时爬虫,一条链接只有在它到访时还挂在页面上,后面的 URL 才有机会进入抓取队列。本文从首页轮播、限时活动、需登录入口等常见场景出发,说明链接存活时间与抓取周期如何错位,并给出把临时入口改造成可复用入口的具体做法。

搜索抓取

链接挂多久才算数:临时入口与 URL 发现的窗口期

很多站点运营者遇到过这种情况:一个活动页上线时明明挂在首页最显眼的位置,几天后去翻抓取日志,蜘蛛一次都没访问过。不是 robots 挡住了,也不是页面打不开,而是蜘蛛到访的时候,那个入口链接已经被换掉了。

蜘蛛发现链接的前提,是链接还在

搜索蜘蛛不是实时爬虫。一个首页它可能几小时来一次,也可能几天来一次,取决于站点体量、更新频率和抓取预算。它每次来访都会解析当页链接,把没见过的 URL 放进待抓取队列。这意味着:一条链接必须至少被蜘蛛在页面里看到一次,它背后的 URL 才有机会进入队列。

如果某条链接只在页面上挂了六个小时,而蜘蛛恰好这段时间没来,那么它指向的页面就相当于从未被链接过——至少在发现层面是这样。

最容易踩坑的几类临时链接

  • 首页轮播与焦点图:运营按排期轮换,一个位置一天换好几批,早期批次可能被完全跳过。
  • 限时活动入口:上线两三天就下线,蜘蛛还没排到就消失了。
  • 需要登录才能看到的入口:隐藏在账号中心或后台的链接,蜘蛛看不到,页面等于没有入口。
  • 短链与带跳转的分享链接:短链服务不在你的控制范围内,跳转链路也不稳定,蜘蛛可能只停在中间那一跳。
  • 只在特定时机出现的弹窗、浮层:渲染时机不确定,蜘蛛拿到的版本里可能根本没有这个链接。

链接存活时间与抓取周期怎么错位

抓取周期不完全由你决定,但可以估算。观察日志里蜘蛛对首页和几个主要栏目的访问间隔,取一个典型值。如果这个间隔是三天,而链接只挂一天,那就得假设大概率会被错过。

判断标准很简单:链接的存活时间,要明显长于蜘蛛对该页面的抓取间隔。

还要注意,同一条链接出现在多个位置,命中概率会提高。只放在首页是窗口最窄的方式;放在栏目页、列表页、侧边常驻位,窗口就宽得多。

把"临时入口"变成"可复用入口"

  1. 设置一个长期存在的聚合页,比如"往期活动""历史专题",每次新内容都往这个页面加链接,而不是只在首页轮换。
  2. 活动结束后不要直接删页面,把入口从首页撤下但保留在聚合页里,页面本身保持可访问状态。
  3. 把这类页面写进 Sitemap,即使当前没有站内链接指向,也能给蜘蛛留一条稳定的发现通道。
  4. 用内链把活动页与相关品类页、内容页互相连起来,让入口不只依赖一个位置。

链接已经下线了怎么办

如果页面还有价值,最直接的办法是在别的页面重新挂上链接,并在下次更新 Sitemap 时把它带上。蜘蛛对"已发现未抓取"的 URL 会有一定记忆,重新给出入口通常比从零开始快一些。

如果页面确实不再需要,让它返回 404 或 410,比留着一个空壳页更清楚。空页会继续被爬,也继续占预算。

怎么验证入口是否真的被看到

在抓取日志里,把目标 URL 的首次访问时间,和它在页面上首次出现的时间做个对比。如果两者相隔很久,说明发现链路偏长;如果目标页始终没有访问记录,而入口页面有被抓记录,那基本可以判断入口出现过又消失了。同时留意蜘蛛对入口页面的访问频次,频次低就意味着窗口期需要设计得更宽。

小结

URL 发现的第一道门是链接,而链接是有寿命的。在安排页面上下线的时候,顺手想一下蜘蛛这个周期里会不会来、来的时候还能不能看到这个入口,很多"蜘蛛不抓我"的问题就不用再逐条排查了。