一次改版上线三天,搜索引擎抓到的还是旧页面,原因是 CDN 缓存把 HTML 缓存了 7 天。缓存和抓取的关系,很多技术团队没意识到。
那次事故
2026 年 3 月,一个客户的官网改版,产品页 URL 和结构都变了,301 也配好了。上线三天,Google 和百度抓到的还是旧页面,新页面的收录为零。
查日志发现,蜘蛛请求的返回内容来自 CDN 缓存,缓存 key 没带版本号,HTML 的缓存时间被设成了 7 天。
我们把 HTML 的缓存策略改成"短缓存 + 主动刷新",重新推送 CDN,第二天蜘蛛就抓到了新页面。但已经浪费了三天,加上恢复,排名掉了两周。
缓存和抓取的关系
搜索引擎抓的是 CDN 返回的内容,不是你源站的内容。CDN 缓存错,它看到的就是旧版本。
更麻烦的是缓存不一致:不同节点缓存的内容不同,蜘蛛今天抓到一个版本、明天抓到另一个版本,会被判定为页面不稳定。
三个配置原则
第一,HTML 不做长缓存。HTML 用短缓存(比如 5 分钟)或者协商缓存,图片、JS、CSS 这些带哈希的静态资源可以长缓存。
第二,缓存 key 带上版本。改版时版本号变,缓存自然失效,不用手动刷。
第三,按 UA 区分缓存要谨慎。有些站按设备做不同页面,缓存 key 里必须带 UA 维度,否则手机用户拿到桌面版。
怎么验证
改版或发布后,做三件事:
用 curl 请求目标 URL,看返回头里的缓存状态(HIT/MISS)、缓存时间、以及内容是不是新的。
用搜索引擎的抓取工具(GSC 的 URL 检查、百度的抓取诊断)抓一次,看拿到的 HTML 是不是新版本。
在不同地区、不同网络下各请求一次,确认缓存一致。我们一般抽 3 个城市。
另外两个坑
第一个,CDN 默认缓存 HTML。很多云厂商的默认规则是"静态资源缓存、HTML 不缓存",但也有些套餐默认缓存所有内容。上线前一定确认。
第二个,回源 HOST 配错。CDN 回源到错误的域名,拿到的是默认站点或者 404,蜘蛛看到的就是空页面。这个错误很隐蔽,查日志能看到大量 404 但源站正常。
一个流程建议
我们把"CDN 缓存检查"加进了上线清单:改版、迁移、大版本发布,发布后 10 分钟内必查。
检查项就三条:HTML 缓存时间、缓存 key 是否带版本、蜘蛛抓到的内容是否是新版本。
判断
CDN 是技术 SEO 里最容易被忽略的一层,因为它不在代码里,在基础设施里。开发不管、运维不懂 SEO,出了问题两边都查不到。
改版前把缓存策略定好,比改版后救火便宜得多。
元析智能
为软件公司做 SEO 和 GEO 优化