改完一篇文章的标题、价格或正文,隔天去搜,看到的还是几个月前的旧摘要——这是做站点运营时常见的困惑。要理解这件事,先得接受一个前提:索引里保存的不是你的页面,而是蜘蛛某次抓取后留下的快照。
索引存的是快照,不是实时页面
蜘蛛抓取一次,搜索引擎拿到一份 HTML,抽取正文、建立索引、生成摘要。从那之后到你下次被重新抓取之前,索引里的内容就固定在那一次的结果上。页面在服务器上怎么改,索引都不会自动同步。
所以“改了但没更新”通常不是失败,而是流程还没走完。真正需要判断的是两件事:蜘蛛有没有再来过,来过之后索引有没有重算。
从改动到索引刷新,中间隔着三段等待
一、重新抓取的等待
蜘蛛不会因为你改了内容就立刻回来。它回访的频率,主要看这个 URL 过去的更新历史。一个长期稳定、几个月不动一次的页面,抓取频率本来就低;经常有小幅更新的页面,回访会更勤。
站点整体也是如此:更新有规律、抓取顺利、错误率低的站,重新抓取的等待时间通常更短。
二、判断这次改动值不值得重算
抓到新版本之后,搜索引擎还要判断这次改动是否构成实质变化。改一个错别字、调一下段落顺序,很可能被认为与原版本等价,索引里不动也正常。标题、主体内容、价格、关键结论的改动,才更可能触发重算。
三、索引重算本身的排队
即使确认要更新,重算也不是即时的,站点规模较大时尤其明显。这段等待你基本无法干预。
确认蜘蛛来过没有,看这几处
- 服务器日志里这个 URL 最近的抓取时间和状态码,有没有 200 的成功抓取;
- 站点后台或 URL 检查工具显示的“上次抓取时间”;
- 用搜索指令看索引中当前展示的标题与摘要,是不是旧版本;
- 如果日志里只有很早的一次抓取,说明问题在抓取环节,不在索引环节。
分清这两者很重要:没重抓,要处理的是入口、内链和抓取频率;重抓了但没更新,才是索引层面的判断问题。两者的排查方向完全不同。
想让更新被更快发现,可以做几件事
- lastmod 写真实修改时间,不要每次全站刷新,否则这个信号会失效;
- 从首页或栏目页给这个 URL 一个较近的入口,入口本身的变化也是信号;
- 标题或页面结构变化较大时,主动提交该 URL;
- 保持站点更新节奏稳定,比偶尔一次集中提交更有效。
不要为了催更新而反复提交同一个 URL、反复微调内容。这类操作通常不会加快重算,还可能让抓取预算浪费在无意义的重复抓取上。
三种容易被误判的情况
看到旧摘要就以为没收录
收录和更新是两件事。页面一直在索引里,只是展示的是旧快照,这跟“没被收录”完全不同,处理方式也不一样。前者等,后者要查入口和质量。
只改了前端展示,服务端 HTML 没变
如果内容依赖 JS 渲染,而蜘蛛拿到的是未更新的 HTML 或不完整的 HTML,那它看到的确实还是旧内容。改动要落到蜘蛛实际能取到的那份 HTML 上。
同一内容有多个 URL
如果同一内容存在多个版本,更新可能只反映在其中一两个上,其余版本仍是旧的。这种情况下先收敛版本,再谈更新。
小结
页面更新后索引没变,先别急着判断“收录出了问题”。按抓取日志、上次抓取时间、索引展示版本依次核对,多数情况只是流程还没走完。把更新真正落到服务端 HTML、让入口可被发现、保持节奏稳定,比反复提交更靠得住。