滑动继续阅读⇓

无论你是在高流量的WordPress主机上运行高流量的WordPress安装还是小型博客,都应优化WordPress和服务器以使其尽可能高效地运行。本文提供了使用特定推荐方法的WordPress优化概述。但是,这不是每个方面的详细技术说明。

如果你现在需要快速修复,请直接转到“缓存”部分,以最小的麻烦获得最大的收益。如果要立即开始更全面的优化过程,请转到如何提高WordPress的性能。

下面的“影响绩效”和“如何衡量绩效”中包含了有关绩效主题的广泛概述。这里讨论的许多技术也适用于WordPress Multisite(MU)。

服务器上的通信量及其配置以处理负载的方式也会产生巨大影响。例如,如果你不使用缓存解决方案,则随着其他页面请求的进入和堆积,性能会降低,从而导致Web或数据库服务器崩溃。如果配置正确,大多数托管解决方案可以处理非常高的流量。将流量卸载到其他服务器也可以减少服务器负载。

什么影响绩效?

主机

你可以使用的优化技术取决于你的主机设置。

共享主机

这是最常见的托管类型。你的站点将与其他站点一起托管在服务器上。托管公司为你管理Web服务器,因此你几乎无法控制服务器设置等。与此类托管最相关的领域是:缓存,WordPress性能和卸载

虚拟主机和专用服务器

在这种托管方案中,你可以控制自己的服务器。该服务器可以是专用硬件,也可以是共享同一物理硬件的多个虚拟服务器之一。关键是,你可以控制服务器设置。除了上述领域(缓存和WordPress性能)以外,这里关注的关键领域还有:服务器优化和*卸载。

推荐的WordPress优化方法概述

服务器数量

一旦您要处理非常繁忙的流量,就可能需要使用多台服务器。如果你处于此级别,则应该已经采用了上面列出的所有适用技术。

WordPress数据库可以轻松移动到其他服务器,只需要对配置文件进行少量更改即可。同样,可以将映像和其他静态文件移动到备用服务器(请参阅卸载)。

亚马逊的Elastic Load Balancer可以帮助将流量分散到多个Web服务器上,但是需要更高水平的专业知识。如果你要使用多个数据库服务器,则HyperDB类可以代替标准WPDB类,并且可以处理复制结构和分区结构中的多个数据库服务器。

硬件性能

你的硬件能力将对你的站点性能产生巨大影响。处理器数量,处理器速度,可用内存和磁盘空间量以及磁盘存储介质。托管服务提供商通常以更高的价格提供更高的性能。

托管方面的一项创新是使用比传统磁介质更快的固态驱动器或SSD。 Digital Ocean提供了负担得起的SSD托管服务,而Amazon最近在其云产品中增加了SSD托管服务。

WordPress配置

你的主题将对你网站的性能产生巨大影响。快速,轻量级的主题将比繁重的图形低效的主题更有效地执行。

插件的数量及其性能也将对你网站的性能产生巨大影响。停用和删除不必要的插件是提高性能的非常重要的方法。

软件性能

确保你使用的是最新软件也很重要 – 因为软件升级通常会修复错误并提高性能。确保你正在运行最新版本的Linux(或Windows),Apache,MySQL / MariaDB和PHP非常重要。

跟上WordPress升级的步伐也很重要。

服务器负载

服务器上的通信量及其配置以处理负载的方式也会产生巨大影响。例如,如果你不使用缓存解决方案,则随着其他页面请求的进入和堆积,性能会降低,从而导致Web或数据库服务器崩溃。如果配置正确,大多数托管解决方案可以处理非常高的流量。将流量卸载到其他服务器也可以减少服务器负载。

登录攻击,图像泄漏(其他站点从高流量页面链接到网站的图像文件)或DoS攻击等滥用流量也可能增加服务器负载。识别和阻止这些攻击非常重要。

图形大小

确保帖子中的图像针对网络进行了优化,可以节省时间,带宽并提高搜索引擎排名。

地理距离

你使用的服务器与网站访问者之间的距离也会影响感知的性能。内容交付网络或CDN可以在各个地理区域中镜像静态文件和图像,以使你的所有站点访问者都能获得最佳性能。

如何衡量绩效?

  • Google PageSpeed是衡量WordPress网站性能并获得有关如何进行改进的明确,具体反馈的绝佳方法。
  • New Relic还提供了一个免费库,用于评估PHP和MySQL / MariaDB中的服务器性能
  • Linux Top为你的服务器的实时性能提供了一个仪表板。
  • 如果使用Varnish缓存,则VarnishStat可帮助你评估缓存工具的性能。
  • Zend Server Z-Ray为你的WordPress PHP应用程序提供了X-Ray视野和深刻见解
  • 谷歌开发者:网页速度见解
  • Mozilla Firefox浏览器 + Firebug + Hammerhead
  • 雅虎!YSlow
  • 谷歌浏览器 + 谷歌速度示踪
  • Pingdom
  • WebPagetest
  • 资源专家机器人
  • Web缓存测试
  • Port80压缩检查
  • 一个简单的在线网页压缩/放气/ gzip测试工具
  • 网页分析器

如何提高WordPress的性能?

如果你现在需要快速修复,请直接转到“缓存”部分,以最小的麻烦获得最大的收益。

优化你的WordPress配置

最小化插件

提升WordPress性能的第一个也是最简单的方法是插件。停用并删除所有不必要的插件。尝试有选择地禁用插件以衡量服务器性能。你的插件之一会严重影响你网站的性能吗?

然后,你可以查看优化插件。插件编码效率低下吗?他们会重复不必要的数据库查询吗?WordPress拥有自己的缓存系统,因此,一般来讲,使用诸如get_option(), update_option()之类的函数比编写SQL更快。

主题

插件出现后主题优化

图像文件

  • 是否有不必要的图像?(例如,你可以用文字替换某些图片吗?)
  • 确保所有图像文件均已优化。为图像类型选择正确的格式(JPG / PNG / GIF)。
  • Smush.it和WP Smush.it插件也可以提供帮助。

文件总数/大小

  • 你能否减少在网站上显示平均页面所需的文件数?
  • 将多个CSS文件合并为一个优化的文件。
  • 缩小CSS和JavaScript文件。
  • 如有必要,请研究有助于此过程的插件(例如Head Cleaner和WP Minify)。

减少/优化查询

  • 可以将静态值硬编码到你的主题中吗?这意味着你每次进行更改时都必须编辑代码,但是对于通常是静态区域,这可能是一个不错的折衷方案。
  • 例如,你的网站字符集,网站标题等。
  • 你可以对很少更改的菜单进行硬编码吗?例如,避免使用类似wp_list_pages()的函数。

我们已经看到了使服务器增加3倍额外负载的主题。事实证明,这导致数据库查询增加了3倍 – 这本身就是不好的。然后我们发现某些查询未优化。实在欠佳。

你还可以使用卸载来优化主题。

让别人代劳

使用诸如WordPress.com,Page.ly或WPEngine之类的托管托管解决方案,可以利用服务提供商的辛勤工作和专业知识为你进行繁重的优化工作。

升级硬件

为托管服务提供商支付更高的服务级别费用可能会非常有效。增加内存(RAM)或切换到具有固态驱动器(SSD)的主机,例如数字海洋可以发挥很大的作用。处理器数量的增加和处理器速度的提高也将有所帮助。

优化软件

确保你正在运行最新的操作系统版本,例如Linux,Windows和最新的网络服务器,例如Apache,例如数据库MySQL服务器和PHP。

DNS:

不要在WordPress服务器上运行DNS。对DNS使用商业服务,例如Amazon的Route 53或你的域名注册商的免费产品。使用诸如Amazon之类的服务还可以使维护或紧急情况期间在备份服务器之间切换变得更加容易。它还提供一定程度的容错能力。如果你将DNS托管在外部服务器上,这将减少主要Web服务器上的负载。这是一个简单的更改,但是它将减轻一些流量和CPU负载。

Web服务器:

你可以配置Web服务器以提高性能。从Web服务器缓存到设置缓存头以减少每个访问者的负载,有多种技术。搜索你特定的Web服务器优化(例如,搜索“apache优化”以获取更多信息)。某些Web服务器具有你可以付费使用的更高速度版本,例如Apache Litespeed。根据你的特定托管和站点配置,还有多种方法可以调整Apache以获得更高的性能,例如Memcache。

PHP:

有各种可用的PHP加速器可以极大地提高PHP文件的性能。这将适用于所有PHP文件,而不仅仅是你的WordPress安装。搜索PHP优化以获取更多信息,例如APC。如下所述,W3 Total Cache插件为Memcache,APC和其他Opcode缓存提供了集成支持。

MySQL / MariaDB:

MySQL或MariaDB优化本身就是一门妖术。对查询缓存设置的一些简单更改会极大地影响WordPress的性能,因为WordPress在每个请求上都会重复很多查询。搜索mysql优化以获取更多信息。

Iliya Polihronov在2012年旧金山WordCamp上提出了有关如何优化WordPress的一个很好的例子。Iliya除其他事项外,还为WordPress.com进行服务器优化。

不要在WordPress服务器上运行邮件服务器。对于你的联系表单,请使用带有免费Mailgun的联系表7之类的插件。

缓存

缓存插件

可以轻松安装W3 Total Cache或WP Super Cache等插件,并将你的WordPress帖子和页面缓存为静态文件。然后将这些静态文件提供给用户,从而减少了服务器上的处理负载。对于相当静态的页面,这可以将性能提高数百倍。

当与诸如Varnish之类的系统级页面缓存结合使用时,该功能将非常强大。如果你的帖子/页面具有大量动态内容,则配置缓存可能会更加复杂。

W3 Total Cache

W3 Total Cache(W3TC)是最新一代的WordPress性能插件,结合了Web开发机构的研究成果,为WordPress网站提供了最佳的用户体验。这些详细指南将引导你。

W3TC在优化服务器端和客户端性能,添加本来无法提供的功能方面具有独特之处:

  • 页面缓存:W3TC通过创建页面的静态HTML版本来帮助减少响应时间,从而允许Web服务器在不调用PHP的情况下为它们提供服务。在进行注释或编辑页面时,它将自动更新缓存。
  • 缩小:从HTML,CSS和JavaScript文件中删除不必要的字符,然后分别对它们进行组合,然后对缓存的文件应用HTTP压缩。
  • 数据库缓存:数据库查询(对象)也被缓存,从而使许多站点减少了生成新页面所需的时间。这对于收到很多评论的网站特别有用。
  • 标头:W3TC管理标头(实体标签,缓存控制,到期),这些标头控制Web浏览器中文件的缓存,从而减少服务器负载并提高用户的感知性能。
  • 内容分发网络(CDN):使用CDN可使您从托管帐户中卸载资源。W3TC将对图像,CSS,JavaScript和其他静态文件的请求移至高性能服务器网络。最接近访问者的服务器将自动用于下载文件,从而提供最快的下载速度。

W3TC可用于通过共享或专用托管在单服务器和多服务器环境中优化WordPress。

WP Super Cache

WP Super Cache是​​WordPress的静态页面缓存插件。它可以生成由Apache直接提供的HTML文件,而无需处理相对繁重的PHP脚本,从而帮助你在WordPress博客上大幅度提高速度。

使用WP Super Cache,你的服务器可以以与提供常规图形文件相同的速度来提供缓存的HTML页面。如果你的网站每天都在努力应付每天的访问者,或者出现在Digg.com,Slashdot.org或任何其他流行的网站上,请考虑使用WP Super Cache。

服务器端缓存

Web服务器缓存’更为复杂,但用于流量非常大的网站。除本文讨论的范围外,还有许多其他可用的选项。最简单的解决方案始于本地缓存服务器,而更复杂且所涉及的系统可能在实际运行WordPress应用程序的Web服务器“前端”使用多个缓存服务器(也称为反向代理服务器)。在服务器上添加操作码缓存(例如,备用PHP缓存(APC))将使PHP的性能提高很多倍。

Varnish Cache与W3 Total Cache协同工作,可将预先构建的页面存储在内存中并快速提供服务,而无需执行Apache,PHP,WordPress堆栈。

如其中所述,使用插件而不是本机WordPress注释来使用诸如Disqus注释之类的注释,可以通过不要求你网站的读者登录WordPress并增加Varnish可以从缓存中提供的页面浏览量来帮助Varnish。

浏览器缓存

浏览器缓存可以通过减少每页的请求数来帮助减少服务器负载。例如,通过在不变的文件(图像,CSS,JavaScript等静态文件)上设置正确的文件头,浏览器会将这些文件缓存在用户的计算机上。这种技术使浏览器可以检查文件是否已更改,而不是简单地请求它们。结果是你的Web服务器可以回答更多304个响应,从而确认文件未更改,而不是200个响应(该响应要求发送文件)。

查看HTTP Cache-Control(特别是max-age)和Expires标头,以及实体标签以获取更多信息。

W3 Total Cache集成了对浏览器缓存和ETag的支持。

卸载减负

使用内容交付网络(CDN)

使用CDN可以大大减少你网站上的负载。将图像,javascript,css和主题文件的搜索和交付工作卸载到CDN不仅更快,而且可以减轻WordPress服务器自己的应用程序堆栈的负担。如果将CDN与上述的WordPress缓存插件(例如W3TC)结合使用,则效果最好。

Cloudflare是一个受欢迎的内容交付网络,还提供Internet安全服务。计划从免费开始,但是额外的功能可用,需要额外付费。Cloudflare是固定成本的CDN,这意味着它们按功能而非使用收费。Cloudflare允许你在返回原始主机之前,通过站点的网络路由站点流量。在Cloudflare的知识库中,他们提供了有关如何在使用服务时加快WordPress并提高性能的指南。

Amazon Cloudfront使用Amazon S3服务为你网站的静态文件提供Content Delivery Network(CDN)功能。CDN是一项服务,可将你网站的静态文件缓存在世界各地的众多Web服务器上。无论你身在何处,都可以为你网站的用户提供更快的下载性能。建议你将Cloudfront与S3结合使用,而不仅是S3。成本没有显着差异。MaxCDN是类似于Amazon Cloudfront的按使用量付费的内容交付网络(CDN)。其中的区别包括对视频点播的支持以及文件的“镜像”(无需上传),尽管你可以根据需要上传它们。

另一个替代CDN提供程序是KeyCDN。他们在其支持页面上提供了逐步的WordPress集成指南。

KeyCDN和MaxCDN是目前可用的最经济实惠的CDN选项之一,它们可以击败竞争对手(如亚马逊),因为它们是规模更大的CDN提供商的分支。

静态内容

可以将任何静态文件卸载到另一台服务器。例如,任何静态图像,JavaScript或CSS文件都可以移动到其他服务器。这是在非常高性能的系统(Google,Flickr,YouTube等)中常用的技术,但对于单个服务器出现问题的小型站点也很有用。同样,将这些内容移动到不同的主机名可以为将来的多台服务器奠定基础。

一些Web服务器已经过优化,可以提供静态文件,并且可以比Apache等更复杂的Web服务器(例如lighttpd)更加高效。

Amazon Simple Storage Service(S3)是按使用量付费的专用静态文件托管服务。在没有最低成本的情况下,对于流量较低的站点可能已达到实用目的,该站点已达到共享或单个服务器可以处理的高峰。

多个主机名

通过在多个主机名之间拆分静态文件,也可以改善用户。大多数浏览器只会同时向服务器发出2个请求,因此,如果你的页面需要16个文件,则一次将请求2个。如果你将其分散在4个主机名之间,则将一次请求8个。这可以减少用户的页面加载时间,但是可以通过创建更多同时请求来增加服务器负载。另外,众所周知,“管道传输”如果使用过度,通常会使访问者的互联网连接饱和。

卸载图像是最容易,最简单的开始。所有图像文件都可以在三个主机名之间平均分配(例如,assets1.yoursite.com,assets2.yoursite.com,assets3.yoursite.com)。随着流量的增长,这些主机名可以移到你自己的服务器上。注意:避免随机选择主机名,因为这会影响浏览器缓存并导致更多流量,并且还可能创建过多的DNS查找,这确实会降低性能。

同样,可以将任何静态JavaScript和CSS文件卸载到单独的主机名或服务器。

Feed供稿

你的提要可以很容易地卸载到外部服务。诸如Google FeedBurner之类的Feed跟踪服务将自动执行此操作,Feedburner服务器将处理所有Feed流量,并且仅每隔几分钟就会更新你网站中的Feed。这可以节省大量流量。

同样,你可以将自己的Feed卸载到单独的服务器(例如feeds.yoursite.com),然后处理自己的Feed统计信息/广告。

免费托管服务

可能可以免费将某些文件托管在外部服务器上。例如,流行的图像托管网站(例如Flickr)免费提供图像托管。即使将最受欢迎的图像卸载到免费服务上,也可以大大减少对主服务器的影响。

但是,使用免费服务卸载图像时,需要考虑一个非常重要的问题。由于大多数流行的服务实际上是照片共享站点,因此版权成为一个问题。请务必阅读服务免责声明并确定它是否适合你。此外,你可能不希望将图像公开给照片共享站点的用户。

考虑到免费图像托管服务最近变得不太可行,因为来自其的流量通常被公司网络阻止。

压缩

有多种方法可以压缩服务器上的文件和数据,以便将页面更快地传递到读者的浏览器。上述的W3 Total Cache集成了对大多数常见压缩方法的支持。

W3 Total Cache支持Minify和Tidy压缩和合并样式表和javascript文件。它还支持诸如zlib之类的输出压缩,另请参见输出压缩。

压缩媒体文件(即图像)也很重要。WP Smushit插件可以帮助你解决此问题。

推荐的WordPress优化方法概述

数据库优化

清理数据库

WP Optimize插件可以帮助你减少数据库中的混乱情况。

你还可以指示WordPress最小化它保存的帖子和页面的修订数量。

添加服务器

尽管需要额外的专业知识,但添加服务器可能是提高性能的有效方法。强烈建议阅读在AWS中构建高度可扩展的WordPress网站的指南,该指南用于使用Amazon的关系数据存储(RDS)构建更昂贵,高度可扩展的AWS实施。

你可以使用Amazon的Elastic Load Balancer在多个Web服务器之间分配流量,还可以使用HyperDB或Amazon的RDS运行更多可扩展的服务器或多个数据库服务器。

本文是否有帮助?



iTopVPN Black Friday Deal - Save up to 90%