要排除缓存造成的假象,核心做法是:不要只看百度搜索结果页的标题、摘要或“快照”文字,而是把百度抓取到的页面内容与你服务器当前实际返回的内容做逐项对照。缓存假象通常表现为:你明明已经改了标题或正文,搜索结果里却还是旧内容;或者页面已删除,搜索摘要仍显示旧信息。判断的关键是确认“百度看到的是哪一版”,而不是“你浏览器看到的是哪一版”。
排查前要先定位现象属于哪一类,否则容易把不同原因当成同一个问题。
只有先确认属于哪一层,后面的证据收集才有意义。
最直接的执行步骤是抓取百度视角的页面内容,再和服务器源文件比对。
curl -A "Baiduspider" -I https://你的域名/页面路径
把返回的状态码、Last-Modified、ETag、Cache-Control 记录下来。再用 curl -A "Baiduspider" https://你的域名/页面路径 取回完整HTML,和你在百度侧看到的内容逐字比对标题、正文首段、关键数据。
判断结果:如果服务器返回的已是新内容,而百度展示仍是旧内容,说明是百度侧缓存,属于时间问题;如果服务器返回的仍是旧内容,说明是你自己的缓存层没更新,百度没有错。
很多“百度没更新”的判断,其实源头在自己这边。执行以下检查可以快速排除:
Cache-Control、Expires、Age,判断CDN是否在返回缓存副本。适用条件:只有当服务器源站内容已确认更新、但外部访问仍拿到旧版时,才需要重点查CDN和本机缓存。判断结果是:源站新、边缘旧,属于缓存层问题;源站旧,则回到发布流程排查。
排查缓存假象时,容易顺手把其他问题混进来,需要明确边界:
这些项可以在排查中作为背景记录,但不能用来解释“为什么百度还显示旧内容”。
要给出一个可验收的结论,至少需要以下资料:
责任划分上,源站内容更新由发布方负责,CDN刷新由运维负责,百度侧缓存更新无法由站点直接控制。验收标准是:服务器返回内容与预期一致,且外部无缓存层返回旧版。达到这两点后,百度侧仍显示旧内容,只能等待其重新抓取和更新展示,此时可继续观察,而不是反复修改页面。
下一步建议:固定一个待观察URL,记录当前服务器返回内容与百度展示内容,间隔一段时间后重新比对。若服务器侧始终正确而百度侧长期不变,再检查该URL是否被抓取、是否存在抓取异常,而不是继续在缓存层面反复操作。