先分清:线上是新的,索引里可能是旧的
页面改完、发布上线,浏览器里看到的是新版,但搜索引擎索引中保存的是上一次抓取并处理后的版本。这中间隔着抓取、解析、入索引几个环节,所以出现“我明明改了,搜索里还是旧的”非常常见。多数情况下不是出错,只是索引还没刷新。
一次更新要走完的几段路
- 重新抓取:蜘蛛按自己的节奏回来取一次新版 HTML。
- 重新解析:正文、标题、结构、链接被重新抽取;如果内容依赖 JavaScript 渲染,这一步还要看渲染结果能否拿到。
- 索引更新:新版本替换旧版本,或与旧版本合并判断。
- 展示层更新:搜索结果里的标题、摘要、时间由系统按查询自行组合,通常比索引本体更晚,也更不稳定。
所以“收录没变化”有可能只发生在第四步,并不代表第三步没做。
改了 title,搜索结果里的标题却不一样
搜索结果的标题并不完全是 title 标签的原文,系统会结合页面主标题、正文中的突出文字、外链锚文本等重新生成一版更贴合查询的标题。摘要同理,通常按查询从页面内容里抽取片段,不一定采用 meta description。判断索引有没有更新,看正文内容比看展示标题更可靠。
怎么确认是延迟还是别的问题
- 先确认线上确实是新版:浏览器缓存、CDN 缓存、服务端缓存都可能让你或蜘蛛看到旧内容。
- 再看蜘蛛抓到的 HTML 是新版还是旧版。如果抓到的就是旧版,问题在服务端或渲染,不在索引。
- 查看最近一次抓取时间。如果时间还停在改动之前,说明页面尚未被重新抓取。
- 检查是否有 noindex、robots 屏蔽,或 canonical 指向了别的地址,导致新版没被当作这个 URL 的当前版本。
哪些因素会影响刷新的快慢
没有固定时间表,从几小时到几周都可能。相对更容易被及时重抓的页面,通常有这些特征:
- 站点本身抓取频率不低,页面不是内链深处的孤岛;
- 改动幅度明显,比如正文主体、主要栏目结构发生变化;
- 页面在站内有稳定的内链入口,也有外部引用;
- sitemap 中的 lastmod 与实际修改时间一致。
反过来,只改了一个标点、只调整了排序,系统可能判断变化不大,刷新被放到后面处理。
不值得做的几件事
为了让索引快点更新,反复手动提交、每天改动 sitemap 的 lastmod、批量伪造更新时间,短期内也许能带来一点抓取,但时间一长这些信号会被忽略,反而让真正重要的更新失去可信度。
- 不要每次小改都改 lastmod;
- 不要为了催抓取把同一批 URL 反复提交;
- 不要只靠前端替换正文,而让蜘蛛只能拿到空壳,除非渲染确实能被执行;
- 不要改完一次就以为结束,更新后的一两周内继续观察。
把这件事放进日常检查
对于经常更新的栏目和重点页面,可以定期抽查:线上版本、蜘蛛抓取到的版本、索引里的版本三者是否一致。不一致时按“抓取层 → 索引层 → 展示层”的顺序排查,比反复提交有效得多。索引刷新本身就有延迟,给它一点时间,同时把抓取入口和页面质量做扎实,才是更稳的做法。