网站收录

页面改了索引还是旧版本:抓取周期、缓存与更新信号的核对顺序

页面内容更新后,搜索结果里仍显示旧标题或旧信息,往往不是“没收录”,而是缓存层、重新抓取和更新信号三处之一卡住了。本文按服务器返回、抓取记录、lastmod 与内链、改动幅度、URL 稳定性五个环节给出核对顺序,帮助判断该等还是该修。

网站收录

页面改了索引还是旧版本:抓取周期、缓存与更新信号的核对顺序

页面内容已经改过,过了一两周在搜索结果里看到的还是旧标题、旧价格、旧联系方式。这种情况不一定是“没收录”,更常见的是收录已经存在,只是索引里保存的那份内容还没被替换。要排查的是三件事:页面对外返回的是不是新版本、爬虫有没有再来抓一次、索引有没有把新内容写进去。顺序反过来查,容易白忙。

一、先确认服务器返回的确实是新版本

很多“索引没更新”其实页面本身就没更新。后台点了发布,但前台读的是缓存或静态文件,用户看到的是新页面还是旧页面,取决于你从哪里看。

  • 用无痕窗口打开目标 URL,查看网页源代码而不只看渲染后的效果,确认正文文本是否为新内容。
  • 在 URL 后面加一个随机参数再访问(例如 ?v=20240601 这类临时值),如果带参数是新内容、不带参数是旧内容,问题基本落在缓存层。
  • 检查 CDN 命中状态与响应头里的缓存时间,确认缓存是否按预期过期或被主动刷新。
  • 确认发布流程里没有“多个版本并存”:模板缓存、静态化文件、多机房不同步,都会让不同节点返回不同内容。

这一步没排干净,后面所有的抓取和索引分析都建立在错误的前提上。

二、爬虫有没有再来抓过这个 URL

打开服务器访问日志,按 URL 过滤,看最近一次爬虫访问的时间。如果更新时间点之后完全没有新的抓取记录,那问题在抓取侧;如果有抓取记录且返回 200,那才轮到讨论索引刷新。

以下几类情况会明显拖慢重新抓取:

  • 页面本身抓取频率低,尤其是深层页面、更新频率低的老页面。
  • 服务器响应慢或间歇性 5xx,爬虫会主动降低对该目录的访问节奏。
  • URL 带会话参数或不稳定参数,每次被抓到的都是“新地址”,历史权重无法累积。
  • 站点整体可抓取量被大量低价值 URL 占据,真正需要更新的页面排队靠后。

这一步的结论很重要:没有抓取和抓取了但没换索引,后续动作完全不同。

三、更新信号有没有发对

sitemap 里的 lastmod

sitemap 中的 lastmod 应当反映内容实质变化的时间。长期不更新、或者每次全量刷新成当前时间,都会让这个字段失去参考价值。只改真正变过的 URL,比整份文件重写更有意义。

页面上的可见时间

正文里如果有“更新于”这类明确时间,并且与内容变化一致,比页脚写死一个版权年份要清晰。结构化数据中的日期字段也应与实际修改时间保持一致,不要出现页面写 A 时间、标记里写 B 时间的情况。

内链与入口

从首页、栏目页或其他常被抓取的页面,给被更新的 URL 一个正常的内链入口,比等爬虫自己想起来更实际。入口尽量用稳定地址,不要指向带一堆参数的版本。

四、改动幅度会影响判断结果

只改了页脚年份、调了几个词序,多数情况下被判定为“未发生实质变化”,索引保留旧版本并不奇怪。标题、主体段落、价格、库存、联系方式这类核心信息发生变化,被重新处理的概率更高。

如果改动确实重要,可以顺带调整标题、首屏内容和内链锚文本,让页面整体呈现出“这是一次真实更新”的状态,而不是只改一个字。

五、URL 本身没有漂移

同一篇内容如果同时存在大小写不同、末尾有无斜杠、http 与 https、带参数与不带参数等多个地址,更新很可能只发生在其中一个版本上,而索引里保留的是另一个。核对时确认:

  1. 页面的规范地址唯一且自指向。
  2. 站内链接统一使用同一个版本,不要混用。
  3. 旧路径通过跳转指向新路径,而不是让两个地址都返回 200。

六、观察与收尾

把上面几步过完之后,剩下的就是观察。重新抓取和索引刷新都需要时间,不同页面差别很大,更新频繁、入口多的页面通常更快。可以记录每次修改时间、日志里的抓取时间和搜索结果中显示的内容版本,用两三次对比就能摸清自己站点的节奏。

需要说明的是,以上都是提升可发现性和可判断性的做法,并不能保证某个页面一定被重新抓取或索引一定刷新。搜索引擎是否重新处理、何时处理,最终取决于其自身策略。把页面、信号和入口做扎实,是站点侧能控制的部分。