在共享主机上使用缓存插件的最佳实践是什么?


29

前几天,我已经开了一个很大的网站,我想合并一个缓存插件。该设置是在单个站点上进行的,具有一些Buddypress功能的混合(用于用户注册,带有gpress的地图,具有配置文件)在共享主机上运行。

我的问题是:
1.给定此设置,您认为哪个插件最适合缓存,为什么(如果可能)?
2.在安装过程中,我应该采取/考虑的最佳做法和步骤是什么,以确保一切正常?
3. transients我自己添加的内容是否仍然可以使用,还是应该删除它们并让插件离开呢?如果不移除,它们会发生冲突吗?

谢谢!

补充:http://www.inmotionhosting.com/hostingplans.html上的“电源”计划


您可以提供服务器或托管详细信息吗?
Chris_O 2010年

Answers:


24

在共享主机计划中,您的缓存选项是有限的。

您将只能静态缓存页面的html输出。这是服务页面的最快方法,但是您会失去WordPress的动态方面,例如发表评论和查看帖子的最新评论。

有一些对象和数据库可用的磁盘缓存选项,但是除非您的主机运行的是快速驱动器,否则您不会从中受益匪浅,并且还可能导致性能下降。

所有缓存插件都有一个选项,可以不将缓存的页面提供给登录用户或具有注释cookie的任何用户。

登录用户+已知用户=没有缓存

未知用户将获得缓存页面。

暂态

瞬态是一小段数据,它们打算在某个时间过期。WordPress将瞬态存储为数据库中的缓存。如果您可以选择使用Memcache,则WordPress会将瞬态数据保留在内存中。瞬态很好,因为它们可以减少数据库查找。它们还可以很好地用于社交网络,例如显示您的最新推文。这样可以防止在每次加载页面时调用twitter api。

使用最高性能网站最佳实践的插件是W3 Total Cache。

W3 Total Cache不仅仅是缓存

W3总计:

  • 页面缓存
  • 对象缓存
  • 数据库缓存
  • 缩小
  • 浏览器缓存
  • CDN整合

对于共享托管集,您应该启用页面缓存,缩小,浏览器缓存和自托管CDN选项。

页面缓存设置

检查页面缓存的所有选项

替代文字

缓存预加载

启用此功能并将更新间隔设置为适合您的站点的时间。这将以给定的时间间隔重建页面缓存。

替代文字

缩小设置

选择重写URL结构,如果要使用CDN,请选中自动上传,以便新缩小的文件将自动上传到CDN。

替代文字

缩小HTML

启用并检查删除换行符,内联js和CSS最小化。如果您使用adsense或其他使用注释词干的服务,请在此处输入注释,以免缩小注释。

替代文字

CSS和JS缩小设置

在文件管理中,选择主题,然后添加要合并和缩小的所有CSS文件。还有一个帮助向导,它将搜索您的所有模板并为您添加建议的文件。

使用帮助向导

W3 Total包含一个工具,可用于您的主题模板,并查找所使用的Javascript和CSS文件并提供建议的设置。首先尝试这些设置,遇到问题请返回并根据需要进行修改。任何以红色突出显示的文件都是您已经包含在内的要缩小的文件。

相同的选项部分可用于js文件,您可以选择将文件放置在after <head>,after <body>和after 之前</body>。最好先放尽可能多的东西<body>。如果有任何插件添加内联js,您将无法在之前</body>用于jquery或插件js,因为它将需要在任何内联<script>标签之前加载。您可以在每个位置和每个模板中包括文件的任何组合。例如,您可以将comment-reply.js设置为仅在single.php上加载

替代文字

浏览器缓存设置

这是最重要的正确方法。如果您将静态内容正确地缓存在用户浏览器中,则可以大大减少页面加载时间。“不为静态对象处理404错误”浏览器缓存设置对于共享托管来说是一大胜利,因为调用PHP并将404页返回给bot等资源占用了大量资源,并且此功能可防止

一般

检查一切

替代文字

CSS和JS文件

检查所有内容并将我们的过期标头生存期设置为遥远的将来。31536000秒是1年,是yslow建议的。如果对CSS或javascript进行了更改,则必须更改文件名以防止用户使用旧版本。如果您使用的是minify,则不必担心会提供过时的内容,因为每次重建minify缓存时,都会生成一个新的文件名。

设置您的缓存控制策略以最大期限进行缓存

替代文字

还有两个浏览器缓存设置部分。HTM1和图像。对于图片,请使用与CSS和JS相同的设置。如果需要,可以增加图像的过期时间。

对于HTML,除非您的网站主要是静态的,否则不要设置过期。如果需要的话,可以使用较短的生命(180秒),但是我不会更高。启用gzip,您可以检查设置的W3标头,以便检查响应标头以确保它们正常工作。

替代文字

CDN设定

W3 Total内置了对流行的原产地拉取和原产地推送CDN的支持,以及强大的自托管选项,需要您设置子域和cname。

自托管的CDN将让您利用流水线的优势。浏览器一次只能下载几个文件,在某些情况下只能下载4个文件。流水线技术是一种使用服务器别名(例如子域)来允许浏览器增加可以并行下载的文件的实际限制的技术。这样做可以最大程度地提高Internet连接的吞吐量,并允许浏览器更快地呈现页面。一旦正确配置了DNS CNAME(别名)和子域,W3TC就会透明地管理这些文件。

选中所有选项,然后单击上载按钮以将所有内容上载到CDN。如果使用自托管,则还有另一个设置页面可放入ftp信息。对于原始推送CDN,它是根据您使用的提供程序进行配置的。对于源出站,您不上传任何文件,而仅将cname设置为提供程序提供的URL。注意:除非新文件不起作用,否则不要选择强制替代。即使文件已经存在,强制覆盖也会不断将文件上传到cdn,这会浪费带宽和资源。

替代文字

测试中

您应该始终测试结果并相应地调整设置。我喜欢使用WebPageTest.org。比较我的结果并发现任何潜在的问题。

在共享托管的WordPress上使用W3 Total Cache,您可以提高多少性能?

这些是我们将W3 Total添加到的WordPress博客的之前和之后结果。

之前:

替代文字

替代文字

我希望这有帮助。


1
谢谢,非常详尽和彻底的答案!你绝对推荐这个插件吗?你有尝试过其他吗?
阿米特(Amit)2010年

1
@Amit我尝试了WP超级缓存,hyber db缓存,apc对象缓存后端和batcache。没有其他缓存插件具有所有这些功能。
Chris_O 2010年

再次感谢!我一定会尝试的。顺便说一句,您是否建议删除我添加到htaccess中的所有临时代码和内容(例如gzip等)?
阿米特

最好的办法是测试和基准化不同的设置,以找到最适合您的环境的方法。
Chris_O 2010年


0

不要使用W3 Total Cache,它会减慢速度并破坏您的页面。我建议最好使用超级缓存和Page Speed Ninja。或使用LiteSpeed Cache进行对象缓存以及CSS和js优化,或者使用Cache Enabler进行静态html文件创建。因为litespeed不会创建静态缓存,因为静态缓存必须在http服务器中具有lscache模块,并且仅litespeed或openlitespeed http服务器支持。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.