Z-Blog 后台的「更新缓存」到底更新了什么

· zblog · 阅读 4
摘要

经常听到「收录不更新就去清缓存」,但很多人不知道清的是什么。三处缓存模板缓存:编译后的 PHP 模板文件,改模板必须清数据缓存:分类、标签、配置的序列化结果模块缓存:侧栏、导航这些模板块的 HTML和收录的关系几乎没有直接关系。搜索引擎抓的

经常听到「收录不更新就去清缓存」,但很多人不知道清的是什么。

三处缓存

  • 模板缓存:编译后的 PHP 模板文件,改模板必须清
  • 数据缓存:分类、标签、配置的序列化结果
  • 模块缓存:侧栏、导航这些模板块的 HTML

这三处的生命周期不同。模板缓存最顽固,改了模板不清就一直用旧的编译结果;数据缓存一般有自动过期;模块缓存的更新频率取决于你的设置。

Z-Blog 后台的「清空缓存并重新编译模板」会同时处理这三处。所以那个按钮比看起来重——点一下全站重建,文章多的站要等几十秒。

和收录的关系

几乎没有直接关系。搜索引擎抓的是你输出到浏览器的 HTML,缓存只影响你自己的站显示什么。

更准确地说:缓存影响的是「你向世界输出的内容」,而搜索引擎抓的就是这个输出。所以缓存本身不参与 SEO,但它决定了搜索引擎看到的东西是新是旧。

那为什么有人说清了就好

因为之前页面显示的就是旧的——比如新发的文章首页不显示,蜘蛛抓首页自然也看不到。这时候清缓存是有意义的。

这种情况在两种场景下最容易发生:

一是开了页面缓存插件。缓存没到期,新文章不出现。

二是主题自带静态化功能。生成了 HTML 文件,但发布新文后没有触发重新生成。

这两种的共同点是:源数据已经更新了,但没有反映到前端输出。清了缓存,前端输出才和源数据一致。

正确心态

缓存是用来提升访问速度的,不是 SEO 工具。前台显示正常,就不必天天清。

反过来,频繁清缓存会带来副作用:全站重新编译意味着短暂的性能下降,如果此时正好有蜘蛛来访,可能撞上响应变慢的窗口。

所以我一般只在三种情况清缓存:改完模板、装完插件、确认前台显示有误。其余时间不管。

一个排查顺序

遇到「新文章不显示 / 前台像是旧的」这类问题,按这个顺序排查,比直接清缓存更快找到原因:

  1. 后台文章列表里,文章状态是不是「公开」
  2. 文章发布时间是否已经到达(有没有排在未来)
  3. 分类是否设置正确,前台分类页能不能看到
  4. 以上都正常,再清缓存

大部分情况卡在前两步,跟缓存无关。