查sitemap时看到的情况

我们做GEO优化日常巡检,看到一个20站的城市分站工程。页面层的sitemap一切都正常,每个页面的lastmod都按真实变更日给,改哪天就是哪天。翻到索引层的sitemap,问题就出来了。

索引层里列了20个子站的sitemap,每个子站后面都跟一个lastmod。这些lastmod的值全是当天的日期。今天看全是今天,昨天看全是昨天。索引层天天把20个子站标成最新,没有一个例外。

页面层没问题,问题只在索引层。我们记下来的数据是,修完之后这个20站工程里,lastmod分成了4个不同的日期。改之前全是同一天,一个日期盖住20个站。

爬虫拿lastmod做什么

爬虫抓sitemap会重点看lastmod。这个字段最直接的作用就是告诉爬虫,某个内容最近什么时间改过。爬虫拿这个日期跟自己上次抓取的时间做比较。日期比上次抓取时间新,才会考虑重新抓一次。日期没变或者更旧,通常就跳过了。

页面层lastmod正常给的时候,爬虫能分清哪些页面真改了,哪些页面没动。但索引层天天写当天,等于天天对爬虫说,这20个子站全都变了,没有一个不新。爬虫一开始可能会多跑几趟,时间稍长它就摸出规律了。怎么每天都是全站新,没有一个旧的。天天喊狼来了,喊多了以后,这个字段在爬虫那里就不值钱了。

等哪天真有一个子站改了一大片内容,索引层还是写着当天,跟平常没区别。爬虫已经把这个字段当成噪音,不会因为又写了个当天就多抓一遍。

我们怎么改的

修复动作很简单,就是把索引层里每个子站sitemap的lastmod改成真实值。真实值应该取那个子站最近一次实际内容发生变化的日期。不用当天日期统一填。

操作的时候,索引层不再用当天日期去盖,而是让它去读每个子站自己页面sitemap里最新的lastmod。哪个子站最近真改过页面,就把那个日期提上来。哪个子站最近没动过,就继续用之前记录的真实日期,不去乱动。

改完之后的结果很直接。我们记下来的数据是,这个20站工程里,lastmod分成了4个不同的日期。改之前全是同一天。修完以后,有些子站日期近一点,有些子站日期旧一点,各自回到各自真实的状态。

改完的效果和边界

主要收获是字段可信度回来了。爬虫再来看索引层sitemap,能看到不同的子站日期不一样,有新有旧。这个差异本身就是信号。哪些子站最近真有变化,哪些子站暂时不用看,爬虫一眼能看个大概。

这里也得说清边界。不是所有爬虫都会严格按lastmod来,主流搜索引擎的爬虫会参考,但不会完全照做。我们做的也不是什么增长手段,只是把一个基础字段从谎报状态改回真实状态。天天写今天等于没写,这句话在索引层特别准。

这个改动不会直接带来流量上涨,也不会让某个页面立刻被引用。它只是让爬虫少被误导,让真实的页面变更能被看见。GEO优化里这种索引层的问题容易被漏掉,因为平时大家看页面sitemap多,看索引层sitemap少。

这事对GEO的提醒

桐灼(淄博)网络科技有限公司做全域AI搜索GEO优化的时候,会顺手查这类索引层问题。真实更新比天天谎报更省爬虫耐心,也省服务器带宽。有sitemap结构问题的朋友可以打17852030756聊。