网站收录

内容更新后索引里还是旧版本:从抓取返回到索引刷新的核对顺序

页面内容更新后,搜索结果里仍是旧标题和旧摘要,很多人会误以为页面没有被收录。本文把抓取与索引更新分开,从日志返回内容、缓存层、改动幅度、sitemap 的 lastmod、URL 是否变更几个角度,给出一套可执行的核对顺序,帮助你判断问题出在服务端还是索引刷新环节。

网站收录

内容更新后索引里还是旧版本:从抓取返回到索引刷新的核对顺序

页面改了内容,过一段时间去搜,结果摘要还是旧版本,甚至标题也停留在上一版。这种情况容易被理解成“没被收录”,但更常见的是页面早就在索引里,只是索引里那份副本还没被替换。把“抓取”和“索引更新”分开看,排查会顺很多。

先确认抓取有没有带来新内容

第一步不是看搜索结果,而是看服务器日志里最近一次抓取返回了什么。

  • 抓取时间:最近一次访问是什么时候,间隔是否合理。
  • 状态码:返回的是 200,还是被重定向、被拦截、超时。
  • 响应内容:服务端返回的 HTML 里,是不是已经是你更新后的版本。缓存层、CDN、页面缓存插件都可能让爬虫拿到旧 HTML。

如果日志里返回的就是旧内容,问题在服务端而不是搜索引擎,先把缓存和渲染问题解决,再谈索引。

抓取成功不等于索引立刻换新

爬虫拿到新 HTML 之后,还要经过解析、去重、质量判断,才会决定是否替换索引里的旧版本。这中间存在时间差,也存在判断过程。所以“抓取时间”和“索引里显示的内容版本”经常对不上,属于常见范围,不必一看到差异就认定出错。

改动幅度会影响重新判断的结果

小幅修改

只改了几句话、调了排版、换了一张图,搜索引擎可能认为主体内容没变,继续沿用旧的标题和摘要,只更新部分正文。这种情况下摘要长期不换,并不奇怪。

大幅修改

如果标题、主要段落、结构都做了重写,页面几乎是新的一篇,重新评估的可能性会高一些。但这依然是概率问题,不构成任何保证。

sitemap 的 lastmod 要写真实的修改时间

lastmod 是一个辅助信号,不是刷新按钮。常见误区是每次发布都全站更新一遍时间戳,结果这个字段失去参考价值。

只给真正发生内容变化的 URL 写新的 lastmod。批量刷时间戳,短期也许带来更多抓取,长期会让这个信号变得不可信。

抓取正常、索引没换的几种常见原因

  • 索引更新本身有延迟,尤其是权重不高的页面。
  • 新旧内容差异太小,被判断为同一版本。
  • 站点整体抓取频率低,页面不在优先队列里。
  • 同一内容存在多个可访问地址,索引选择的是另一个副本。
  • 页面用途偏弱,在资源分配上排序靠后。

URL 变更和内容变更要分开处理

如果这次不只是改内容,还换了 URL,那就不是索引刷新问题,而是迁移问题。旧 URL 要做 301 指向新地址,并且避免两个地址都能正常访问、内容又完全一样。如果只是内容更新,保持原 URL 最简单,也最不容易出现新旧并存。

可执行的核对顺序

  1. 看日志,确认最近抓取时间与返回内容。
  2. 用绕过缓存的方式核对服务端输出,排除 CDN 与页面缓存干扰。
  3. 确认 URL 未变,或已正确做 301。
  4. 检查 sitemap 里的 lastmod 是否对应真实改动。
  5. 确认站内没有同一内容的多个可访问地址。
  6. 若以上都正常,剩下的是时间问题,观察一段时间再判断。

把这几步走完,多数“改了没生效”的情况都能定位到具体环节:要么爬虫拿到的是旧 HTML,要么索引还没轮到这个页面更新。前者自己能修,后者需要时间,也需要页面本身有继续被维护的价值。