页面改了内容,过一段时间去搜,结果摘要还是旧版本,甚至标题也停留在上一版。这种情况容易被理解成“没被收录”,但更常见的是页面早就在索引里,只是索引里那份副本还没被替换。把“抓取”和“索引更新”分开看,排查会顺很多。
先确认抓取有没有带来新内容
第一步不是看搜索结果,而是看服务器日志里最近一次抓取返回了什么。
- 抓取时间:最近一次访问是什么时候,间隔是否合理。
- 状态码:返回的是 200,还是被重定向、被拦截、超时。
- 响应内容:服务端返回的 HTML 里,是不是已经是你更新后的版本。缓存层、CDN、页面缓存插件都可能让爬虫拿到旧 HTML。
如果日志里返回的就是旧内容,问题在服务端而不是搜索引擎,先把缓存和渲染问题解决,再谈索引。
抓取成功不等于索引立刻换新
爬虫拿到新 HTML 之后,还要经过解析、去重、质量判断,才会决定是否替换索引里的旧版本。这中间存在时间差,也存在判断过程。所以“抓取时间”和“索引里显示的内容版本”经常对不上,属于常见范围,不必一看到差异就认定出错。
改动幅度会影响重新判断的结果
小幅修改
只改了几句话、调了排版、换了一张图,搜索引擎可能认为主体内容没变,继续沿用旧的标题和摘要,只更新部分正文。这种情况下摘要长期不换,并不奇怪。
大幅修改
如果标题、主要段落、结构都做了重写,页面几乎是新的一篇,重新评估的可能性会高一些。但这依然是概率问题,不构成任何保证。
sitemap 的 lastmod 要写真实的修改时间
lastmod 是一个辅助信号,不是刷新按钮。常见误区是每次发布都全站更新一遍时间戳,结果这个字段失去参考价值。
只给真正发生内容变化的 URL 写新的 lastmod。批量刷时间戳,短期也许带来更多抓取,长期会让这个信号变得不可信。
抓取正常、索引没换的几种常见原因
- 索引更新本身有延迟,尤其是权重不高的页面。
- 新旧内容差异太小,被判断为同一版本。
- 站点整体抓取频率低,页面不在优先队列里。
- 同一内容存在多个可访问地址,索引选择的是另一个副本。
- 页面用途偏弱,在资源分配上排序靠后。
URL 变更和内容变更要分开处理
如果这次不只是改内容,还换了 URL,那就不是索引刷新问题,而是迁移问题。旧 URL 要做 301 指向新地址,并且避免两个地址都能正常访问、内容又完全一样。如果只是内容更新,保持原 URL 最简单,也最不容易出现新旧并存。
可执行的核对顺序
- 看日志,确认最近抓取时间与返回内容。
- 用绕过缓存的方式核对服务端输出,排除 CDN 与页面缓存干扰。
- 确认 URL 未变,或已正确做 301。
- 检查 sitemap 里的 lastmod 是否对应真实改动。
- 确认站内没有同一内容的多个可访问地址。
- 若以上都正常,剩下的是时间问题,观察一段时间再判断。
把这几步走完,多数“改了没生效”的情况都能定位到具体环节:要么爬虫拿到的是旧 HTML,要么索引还没轮到这个页面更新。前者自己能修,后者需要时间,也需要页面本身有继续被维护的价值。