很多站点运营者盯的是“蜘蛛今天有没有来”,却很少盯“蜘蛛一般什么时候来”。实际上,同一个站点的抓取量在一天之内可能相差几倍,凌晨、上午、下午的分布并不一样。把抓取当成一件有时间分布的事情来看,很多让人头疼的问题会变得好解释:为什么刚发布就被抓走了旧版本,为什么改动第二天才生效,为什么维护那两小时刚好被撞上。
一、抓取时段的分布并不均匀
从访问日志里按小时统计蜘蛛的请求数,通常能看到一条有明显起伏的曲线。常见的形态是:凌晨到清晨出现一个相对集中的批次,白天保持低频巡查,晚间再有一波。这个形态不是固定的,它会跟着站点自身的变化而移动。
- 更新频率高的站点,抓取分布更平,全天都有请求,峰值不那么突出。
- 更新频率低的站点,抓取更像“定期巡查”,集中在少数几个时间点。
- 栏目之间也不一样,首页和列表页可能一天多次,深层详情页可能几天才轮一次。
还要注意日志时区。服务器日志按 UTC 记录、你自己按本地时间看,很容易把“凌晨三点的高峰”错看成“上午十一点”。先把时区对齐,再谈规律。
二、发布节奏和抓取窗口的错位
不少团队习惯每天固定时间批量发布,然后立刻检查标题、调整摘要、替换配图。问题在于,如果这些页面在发布瞬间就已经可被抓取,蜘蛛完全可能在你还改着的时候就把第一个版本取走了。等你改完,它已经拿着旧内容走了,下次再来是几小时还是几天,不好说。
比较稳妥的做法是把“可被抓取”和“人工编辑完成”两个时点尽量分开:
- 内容定稿、标题和摘要确认之后再让它进入可抓取的链接路径,草稿和预览页不要出现在任何站内链接里。
- 批量发布时不必一次性放出全部,分散到不同时间段,避免自己制造一个瞬时高峰。
- 发布后短时间内的大改,尽量在可抓取之前完成;发布后只做小幅修正。
三、改动的生效时间和抓取时段有关
已收录页面的修改,能不能被很快看到,取决于蜘蛛下次来访的时间点。如果这个页面的抓取频率本来就不高,改动以后可能要等上不短的时间。想让重要改动更快被注意到,可以配合站内链接更新或者 Sitemap 里的时间标记,但不要为了让改动显得更新而反复改时间标记,那只会让这些信号变得不可信。
反过来,长期不动的页面,抓取频率会自然下降。这不是惩罚,只是资源配置的结果。真正需要保持新鲜度的栏目,应该靠实际内容更新来维持,而不是靠形式上的改动。
四、维护窗口尽量避开抓取高峰
服务器维护、数据库迁移、批量重定向这类操作,如果恰好落在抓取集中的时段,代价会明显放大:本来只是几分钟的不可用,可能被放大成一整轮抓取失败。可以先按小时看一段时间的抓取分布,把维护排在请求最少的时段,并且尽量缩短影响时间。
抓取时段本身不完全由你决定,但发布的时间点、改动的时间点、维护的时间点,都是可以选的。把这三件事从抓取高峰上挪开,比事后补救要省力得多。