最佳 WordPress 缓存插件:WP Super Cache
October 27th, 2008 Denis
WP Super Cache 基本介绍
WP Super Cache 是 WordPress 官方开发人员 Donncha 开发,是当前最高效也是最灵活的 WordPress 静态缓存插件。它直接生成 HTML 文件,这样 Apache 就不用解析 PHP 脚本,通过使用这个插件,能使得你的 WordPress 博客将显著的提速。
这个插件是基于 Ricardo Galli Granada 的 WP-Cache 2。WP-Cache 2 可以缓存你的 WordPress 博客使得不用再次访问数据库,但是它产生的是 PHP 文件而不是 HTML 文件,所以还需要 PHP 引擎去解析它们。而 WP Super Cache 则直接产生 HTML 文件,所以服务器不用解析甚至一行 PHP 代码,所以缓存之后的速度就和访问你服务器上的一张图片一样快。
WP Super Cache 是如何工作的
一半常规的缓存办法是手工把动态页面保存为 HTML 代码,WP Super Cache 也是通过同样的方式的,但是通过自动的方式完成这个过程。
当你一个访问者来的你的站点,他没有登入或者也没有留言,这样他得到是一个在 WordPress cache 文件夹下的 supercache 子文件夹下的纯静态文件,其实你都可以自己到上面的 supercache 目录下去查看同样的永久链接的 HTML 文件的备份。判断一个页面是否已经被缓存了,查看该页面的源代码,看看最后一行是否有 <!– super cache –> 或者 <!– super cache gz –>。
如果访问者已经登陆或者留了言,就会返回 WP Cache 函数生成的页面,并且最后一行会有 <!– Cached page served by WP-Cache — >
WP Super Cache 基本使用
上传 WP Super Cache 到插件目录,并在 Plugin 目录下激活之后,就可以到 Setting > WP Super Cache 进行详细配置。
WP Super Cache Status
首先是三个选项:
- ON (WP Cache and Super Cache enabled)
- HALF ON (Super Cache Disabled, only legacy WP-Cache caching.)
- OFF (WP Cache and Super Cache disabled)
默认情况下,WP Super Cache 是没有开启的,所以在这里选择下,需按则第一个,就是 Super Cache,缓存为静态文件,如果第二种情况呢,则和 WP-Cache 一致。
Proudly tell the world your server is Digg proof! (places a message in your blog’s footer)
这个是说在你的 footer 显示一条信息告诉读者该博客已经缓存了,一般不要这样做。
Clear all cache files when a post or page is published. (This may significantly slow down saving of posts.)
这个是说发布新日志的时候清理所有缓存,这个肯定不能这么干了。
Super Cache Compression
启动这个则会成生 gzip 压缩,节省你的带宽。
Mod Rewrite Rules
WP Super Cache 是通过 Mod Rewrite 实现访问静态文件的,所以这里在是显示添加的 Mod Rewrite 规则。
Expiry Time and Garbage Collection
过期时间和垃圾收集,这里主要设置缓存文件过期时间,和多久删除一次过期的缓存文件。个人建议:一般缓存时间设置为1天(86400)左右,缓存删除时间为1个小时一次。
Accepted filenames, rejected URIs
这里设置一些链接不需要缓存,并且可以设置特例。
Rejected User Agents
这里设置某些 User Agents 来访问的时候不会缓存。比如 Google 和百度爬虫等。
Cache Contents
这里显示你博客缓存文件和过期文件的数量,你可以手工删除缓存文件和过期文件,因为 WP Super Cache 有垃圾回收机制,所以这里不帮不用手工删除,如果当你测试某个插件,看不到效果的时候,如果确定是缓存的原因,你可以到这里手工删除测试下。
Lock Down
一般情况下,某篇日志如果有了新留言,就会更新缓存文件,不过这篇日志是否已经到了缓存时间,但是在某种情况,你预料到你的博客可能会有很大流量和留言,候重复更新缓存文件可能并不是很好的选择,速度反而更慢,这个时候你就可以锁定缓存文件,新留言不再更新缓存日志。
插件作者也给出了一段代码,如果你的博客锁定了之后,可以通过判断一个变量 WPLOCKDOWN 是否存在告来诉读者,你博客已经锁定,待会才会更新,当然了,一般博客不建议使用。
Directly Cached Files
直接缓存文件,根据永久链接直接缓存,比如你的关于页面是不太更新,你就可以直接缓存它到你的 about 目录下(假如你的关于页面的 slug 是 about),这个直接缓存不会过期。适合一些经常性不更新的静态页面。
Configuration messed up?
因为上面那么多配置,你可能搞糊涂了,那么这里可以让你一键恢复到默认。
Cache Plugins
缓存插件还支持附加插件,比如作者自己就提供一个插件:No Adverts for Friends,不对朋友显示广告。
附加说明
- 登陆了和留言之后是看不到静态缓存页面的,看到的效果和原来的 WP-Cache 插件一样的,一般来说留言的同学不是那么多。
- 这个插件通过 Mod Rewrite 来是实现访问静态缓存页面,所以首先你的主机要支持 Mod Rewrite,然后你要在 WordPress 后台启动永久链接。
- 一些动态的时时更细的插件,如 Recent Comments,Recent Posts 等,一个很好的解决方法是通过 Javascript 来实现。所以同理 Sidebar 更新也只能在静态页面刷新的时候更新。我以后会讲解下如何实现 JS 实现 Recent Comment, Recent Post, 和 PostViews 。
- 不要使用性能很差的主机,尽管缓存了,但是还是不行的,这里我个人推荐我和朋友一起搞的主机:WFANS 主机。
- 还有很多依赖于刷新数据的插件,如 SK2, Bad Behaviour 等可能不起作用。缓存总归会带来一点那个灵活性的不足。
这个插件我也使用的时间也不是很长,如果大家有什么新的发现,也可以留言告诉我!
欢迎在我爱水煮鱼分享你的原创主题和插件,提交你的原创主题,提交你的原创插件。
49 条评论 添加你的评论
Trackbacks/Pingbacks
- 在路上 » 开启缓存
- 左岸读书_blog » Blog Archive » 印象@2008[第二期]
- WordPress插件推荐:WP super cache | Housne Space
- 过眼云烟 » Blog Archive » 安装三个WP插件
- 介绍几个能够提升wordpres访问速度的插件 | 老T博客





1. cooolo | October 27, 2008 at 8:25 am | #
偶的神啦,偶要找的就是这孩子
2. 老孔 | October 27, 2008 at 8:52 am | #
不知道和cos-html-cache比较哪个好一点?
ps:“WP Super Cache是如何工作的”开头”一半“错别字咯
3. Mo | October 27, 2008 at 11:05 am | #
俺来测试下^-^
4. istef | October 27, 2008 at 11:45 am | #
用 wp-spamfree 插件代替 sk2 就不会和 super-cache 冲突了,总的来说 super cache 已经非常好了。
5. 火星人 | October 27, 2008 at 2:15 pm | #
不知道效果怎么样,试试吧
6. 安胖 | October 27, 2008 at 2:34 pm | #
cos-html-cache不能缓存分类页或存档页,不知道这个行不行?
7. zEUS. | October 27, 2008 at 3:57 pm | #
这个插件一定要装!
8. 时 | October 27, 2008 at 4:18 pm | #
不错,学习了
9. joojen | October 27, 2008 at 4:23 pm | #
确实很好用,用的cos html cache缓存后老是有问题
10. marslau | October 27, 2008 at 4:55 pm | #
文章、存档、页面、分类都能生成缓存,感觉比 cos html cache 好用,在wp官网上的cache类里,下载数量是最多的。
不过,有个问题,想向Denis请教,生成静态缓存以后,文章的浏览数就不变了,请问你是怎么做到了使其随着点击而变化?
11. Denis | October 27, 2008 at 4:58 pm | #
postview JS 化!
12. utom | October 27, 2008 at 6:18 pm | #
发现楼主缩减feed输出了… 此插件我一直在关注…
13. utom | October 27, 2008 at 6:18 pm | #
发现email填错了..
14. Denis | October 27, 2008 at 6:45 pm | #
还是全文输出啊!
15. Rey | October 28, 2008 at 3:29 pm | #
太感激了…这个我找了N久了- -
16. joojen | October 28, 2008 at 8:40 pm | #
发现个新的问题,文章中插入的google ad无法显示了,js缓存还是有冲突。
17. Denis | October 28, 2008 at 8:42 pm | #
我一般使用插件插入 google adsense。
18. joojen | October 28, 2008 at 8:59 pm | #
我也用的插件,可是开启Super cache之后页面还是无法显示,只开启cache显示是正常的
19. Denis | October 28, 2008 at 9:07 pm | #
我用的是自己写的插件,不知道你用的是什么插件,不知道是什么机制。
如果只是启用 cache 的话,效果不是很好的。
20. joojen | October 29, 2008 at 2:19 pm | #
用的MightyAdsense插件
21. Denis | October 29, 2008 at 3:41 pm | #
没有使用过这个插件,不知道什么原理。案例是不会冲突的。
22. Douz | November 3, 2008 at 1:49 am | #
前一段时间也用过一下,但是发现在单个文章页面不知道什么原因的会出现乱码,不得已就将其删除了。而且这个插件还有个不好的地方就是他在添加.htaccess的时候是覆盖而不是追加,要是你原来里面有点什么的话,那就有点问题了,建议安装时候事先备份.htaccess 文件
23. jamesben | November 3, 2008 at 10:08 pm | #
super cache的管理界面是白屏~~真奇怪,,,,又解决办法么,老大
24. sxyangwei | January 5, 2009 at 10:18 am | #
我的也是啊 不知道你解决了没有 麻烦告我一下
25. jamesben | January 5, 2009 at 11:30 am | #
升级到2.7后,我就没有用了,搞不定
26. 雪深 | November 6, 2008 at 11:26 am | #
手动生成 比较麻烦
27. 新手 | November 22, 2008 at 6:33 pm | #
测试完返回首页提示:
Forbidden!
You don’t have permission to access this URL, please contact with your system administrator.
禁止访问!
您没有权限浏览这个URL地址,请联系您的系统管理员。
28. shamas | November 28, 2008 at 4:01 pm | #
我的设置ON,但好像看不到生成的静态文件
29. 崔玉松 | November 28, 2008 at 6:31 pm | #
顶一下楼上,我已经安装了,但是依然看不到任何静态文件,只是在content目录下生成了一个cache的文件夹,里面没有任何静态文件
30. Denis | November 28, 2008 at 7:21 pm | #
你们的服务器支持吗?
你设置了 permalink 了吗?
31. Cauu | December 6, 2008 at 12:33 am | #
试验一下,效果不错
32. Cauu | December 6, 2008 at 11:03 am | #
有新留言就会更新缓存吗?我怎么没发现我的更新呢?why?主题的原因?
33. popdo | December 17, 2008 at 5:06 pm | #
我有点不理解,。呵呵
文中说:建议缓存1天时间,每1小时删除一次。
那不是只缓存了一个小时就删除重新缓存了!
34. chenlb | May 10, 2009 at 8:12 pm | #
“每1小时删除一次”应该是只删除无效的缓存内容,如一天前的缓存结果。“缓存1天时间”一天过了后就就重新生成,但不删除旧的缓存。
我是这样理解不知是否正确。
35. 木子悦 | December 18, 2008 at 9:17 pm | #
有利也有弊,就是这样的……
36. nooidea | December 19, 2008 at 11:23 pm | #
太感谢了
这篇写的详细
Rejected User Agents
这里设置某些 User Agents 来访问的时候不会缓存。比如 Google 和百度爬虫等。
怎么设置呢?
会导致不收录吗
37. Denis | December 20, 2008 at 12:02 am | #
默认已经设置了。
不会导致不收录!
38. cache好 | December 22, 2008 at 8:37 pm | #
不少国外主机都有过于限制cpu和内存的毛病,cache是必不可少啊
39. Douz | January 11, 2009 at 3:43 pm | #
Super Cache Compression
这个选项为什么和某些主机相互冲突呢?我开启了这个选项之后,所有的页面都看不见了,包括后台的页面。只好通过FTP将插件删除了才可以重新访问?
40. Alvin.J | March 30, 2009 at 1:15 am | #
哈哈,写的很详细!支持一下!
41. 精灵 | March 30, 2009 at 9:40 am | #
看到有说用super cache后要把永久链接加上.html。这个是不是必须的?不加可否?
42. holianchao | April 24, 2009 at 9:47 am | #
兄台,这是不必要的,这个永久链接你可以根据自己要求设置! 只要符合语法就行了. 欢迎到我的做客呀!
43. 香饽饽 | March 30, 2009 at 11:15 am | #
这文很棒
44. atp | April 9, 2009 at 12:50 pm | #
test your super_cache