新板块上线了,抓取侧没动静

给一个站群补新板块,事情本身不复杂。内容准备好,挂到现有页面的新增区块里,旧页面导航加上入口。做完这些我们盯着抓取记录看,什么变化都没有。新板块里的内容没有触发额外的抓取,旧页面的抓取频次也没有波动。

原因很简单。这个新板块没有产生新的文章URL,所有内容都是挂在已有页面上的。爬虫判断一个页面有没有值得重新抓取的变化,主要参考lastmod。我们这些页面的lastmod一动不动,对爬虫来说,这次内容更新等于不存在。

我们记下来的数据显示,新板块上线前后,站群页面的抓取请求数几乎没有变化。内容确实变了,但爬虫那边接收不到任何信号。

先确认问题出在判断标准上

发现这个现象之后,我们把当天做过的操作全部列出来核对。新内容没有生成新URL,页面模板没改,sitemap没动,lastmod也没更新。每一项单独看都合理,合在一起就出现了一个盲区:爬虫没有其他途径知道页面结构发生了变化。

问题不在内容本身,而在我们给爬虫留下的线索太少。文章有新的URL,爬虫跟着链接就过去了。可这次新板块挂在旧页面上,入口是文字导航,爬虫就算重新抓了旧页面,也不一定知道这个区块是新增的。没有信号提示它该重新评估页面,它就按原来的节奏来。

所以我们后来把这类情况单列出来,叫它结构性内容变更。区别于文章级更新,结构性变更没有新地址,但页面承载的信息范围变了。

加一个字段,让变更被看见

确定了问题性质,处理办法是加一个字段。名字叫结构性内容变更日。这个字段记录的是页面在结构层面发生变动的时间,跟文章发布时间分开。新板块上线这类操作就更新这个字段。

重要的一步是这个字段要并进lastmod。字段一变,lastmod跟着变。爬虫再来看,lastmod跟上次看到的不一样了,就会把这个页面放进重新评估的队列。做完这个调整之后,新板块里的内容开始被识别到,抓取行为也跟上了。

这个字段解决了不产生新URL的更新怎么告知爬虫的问题。文章有新地址,走文章级路数就行。可改动已有页面的结构,以前一直没有合适的通知方式。现在有了一个明确的信号通道。

反面教训,lastmod不能写得太勤

处理完上面的事,我们又在另一个方向上踩了坑。有一段时间,我们把非文章页的lastmod直接写成当天。理由是这些页面每天都有小改动,推荐位轮换,时间戳变了,顺手就更新了。

这样做了一两周之后发现不对。lastmod每天都在变,爬虫来看,每个页面都像天天有更新。真正重要的内容更新埋在里面,看不出哪条值得优先处理。噪声盖过了信号。

爬虫的抓取资源是有限的。当所有页面都显示刚刚更新过,它不知道该优先看谁。我们把这种做法停掉,恢复到只更新值得重新评估的变更。lastmod不是用来刷存在感的,它是用来提示爬虫这里有实质变化。

两套告知办法的分界

现在我们的操作里,新增内容和改动已有页面走不同的路。新增内容产生了新URL,按文章级更新处理,lastmod正常记录,sitemap正常提交。新增内容没有产生新URL,只是动了已有页面的结构,走结构性内容变更日这个字段,并进lastmod。

两条路的边界是新URL有没有产生。有就有,没有就没有。不需要模糊处理,也不要把非文章页的lastmod写得频繁。写得太多,真的更新会被稀释。完全不写,爬虫又看不见结构变化。这个尺度需要自己拿捏。

这次调整之后,我们处理涉及站群的操作,会先判断改动属于哪一类。产生新URL的走一条路,只动已有页面结构的走另一条。抓取侧的行为比之前清晰很多,我们至少能看到哪些更新被爬虫接收到了,哪些还被忽略着。

桐灼(淄博)网络科技有限公司做全域AI搜索的GEO优化。如果你的站群或网站也遇到过改了内容爬虫看不见的情况,可以打 17852030756 聊聊。