更新了一个页面,过几天在搜索结果里看到的还是旧标题、旧价格、旧正文,这是运营里很常见的一类反馈。它和“页面不收录”不是一回事:页面已经在索引里,只是索引保存的那份内容不是最新的。要处理它,先得把“没重新抓取”和“抓取了但没更新”分开看。
索引里存的是快照,不是实时页面
搜索引擎抓取一个 URL 时,会把当时看到的 HTML 存下来,再经过解析、去重、质量判断,决定是否替换索引里的旧版本。这条链上任何一环没走完,你看到的就还是旧内容。所以“我明明改了”本身不构成索引更新的理由,它只是一次信号,能不能触发重抓、重抓后会不会替换,还取决于别的条件。
三种“没更新”,表现相似但处理不同
一、页面根本没被重新抓取
用抓取日志或站点管理工具里的抓取统计,看这个 URL 最近一次被抓的时间。如果时间点还停在改动之前,问题在“发现与调度”层面,而不是内容层面。常见原因包括:该页面本身抓取频次低、入口链接太少、上一次抓取返回过错误、robots 或 CDN 对爬虫返回了不同版本。
二、抓了,但抓到的还是旧内容
抓取时间更新了,内容却没变,通常是源站自己在“骗”爬虫:
- 缓存:页面走了多级缓存,爬虫命中的是旧副本;
- CDN:边缘节点还留着旧版本,或者不同节点版本不一致;
- 异步渲染:正文由接口或 JS 渲染,爬虫拿到的是空壳或默认值;
- 多版本 URL:同一内容存在参数、大小写、带 www 与不带 www 等多个地址,改的是一份,被抓的是另一份。
这一类要回到源站排查:直接以爬虫 UA 请求一次,看返回的 HTML 里到底是什么。
三、抓到了新版,索引还没切换
如果抓取时间更新、返回内容也是新版,但索引展示仍是旧的,说明问题在索引更新环节。可能是新版本被判为与旧版本差别不大,可能是新版结构或内容被判为质量更弱,也可能只是这次更新还没生效。这类情况一般不需要再动结构,保持入口稳定、继续观察即可。
建议的自查顺序
- 确认索引里的“旧版本”是不是真的旧:可能是搜索结果的展示缓存,也可能是你本地缓存或登录态造成的差异。
- 看这个 URL 最近一次抓取时间,判断是否发生过重抓。
- 若没有重抓,检查入口:内链是否指向它、sitemap 里是否包含它、URL 是否能正常访问。
- 若已重抓,用爬虫 UA 直接抓一次,比对返回 HTML 与源站编辑器里的内容是否一致。
- 检查是否存在同一内容的多个 URL,改动只落在其中一个上。
- 确认返回状态码稳定为 200,中途没有多余的重定向或多版本跳转。
想让它更快被感知,可以做和不该做的事
- 把更新页放回显眼位置:首页、栏目页、相关内容的内链,给爬虫一条能走到的路。
- sitemap 里的 lastmod 要真实,长期乱写会让这个字段失去参考价值。
- 更新幅度尽量是实质性的,正文有实际变化,比改几个标点更容易被识别为新版本。
- 不要为了催更频繁改 URL 或造出大量近似页面,这会把问题从“没更新”变成“重复内容”。
索引更新没有固定的时间承诺,能做的是让发现更顺、让内容差异更明确,而不是反复提交。
把“改了却不见”当成一条排查链路来看,比反复质疑收录更有效:先确认是否重抓,再确认抓到的是什么,最后才考虑索引为什么没换。多数情况下,卡点在前两步,而不是索引本身。