加速 WordPress 的终极超级指南


毋庸置疑,拥有一个快速可靠的网站很重要——尤其是当我们在网上所做的几乎所有事情都可以立即完成时.如今,对速度较慢的网站没有耐心.
幸运的是,在提高 WordPress 网站速度方面,您可以采取很多措施来提高速度并让您的用户、客户和搜索引擎满意.
在本文中,我们将介绍 24 项修复,这些修复将显着改善您自己网站的加载时间,包括总体速度和与开发相关的改进.
这不仅仅是另一个"加速 WordPress 的 X 技巧"教程.在这个明确的分步指南中,我们详细介绍了优化和加速 WordPress 网站的各个方面.
我们将关注:
为什么页面速度很重要
如果您靠自己的网站谋生,那么页面速度是不容忽视的.不久前,Loadstorm 合并将一些研究结果整合到一个漂亮的信息图表中,该图表表明页面加载时间增加一秒会导致转化次数减少 7%,页面浏览量减少 11%,客户满意度下降 16%.
最终,出于所有意图和目的,转而统计该统计数据,将您网站的加载时间减少 1 秒可使您轻松增加 7% 的利润.
人们似乎也忘记了世界各地的互联网服务质量并不统一,即使您使用 CDN 并优化一切.
您的页面在纽约可能会在 2 秒内加载完毕,在都柏林可能会在 2.3 秒内加载到您的朋友身上,但在印度可能仅会在 4-5 秒内加载.
通过进一步优化,您在美国的加载时间可能只会减少 0.3 秒,但在印度可能会减少 1.8 秒,从而带来更多销售.不要忘记网络是巨大的,您看到的任何引用数字都是平均值,而您遇到的任何数字都是变化巨大集合中的一个样本.
除了所有直接好处之外,众所周知的事实是页面速度对您的 SEO 有很大影响.一些文章阐明了 Google 与快速地点.有一点是肯定的:在 Google 眼中更快的速度 = 更高的排名.
如果您有环保意识,可以将其视为减少碳足迹的一种练习.更快的网站通常是处理更少、请求更少和数据更少的结果,这意味着处理您网站的计算机工作更少,减少了它们的热量输出,这反过来意味着需要更少的冷却.这种影响在单个服务器级别上可能不明显,但可以大规模衡量.
如何开始
我将这篇文章分成三个部分.首先,我将讨论一些一般性注意事项,并尝试公开解决速度问题的细微差别.
接下来的两部分将重点介绍任何用户都可以进行的改进以及编码人员可以进行的改进.最后两个部分会有一些重叠.我敦促非编码人员查看这两个部分,许多提速策略可以通过遵循简单的指南来实现,即使他们可能有一些相关的代码.
到最后,我希望每个人都能至少接受一些想法并立即应用它们,让网络成为我们所有人更快的地方!
为什么网站速度慢?
了解这一点是做出明智决策的关键.一个站点运行缓慢是因为它在低成本的服务器上,而它是因为代码效率低或加载大量图片而缓慢.
请注意,以下列表不包含始终可以"修复"的项目.我将列出所有可以提高速度的单独层.我们的工作——稍后——将是优化这个速度.现在,让我们了解所有组件.
1.基础技术
您用于运行网站的语言和基本技术将决定代码在服务器上的处理速度.如果您只使用 HTML,这不是问题,但大多数网站都使用服务器端编程.
您可以使用 ASP.net、PHP 或 HHVM 来执行 PHP 代码.要提高基本语言的速度,凡人能做的并不多.
虽然我不是专家,但我相信 ASP.net 在技术上有能力比 PHP 更快,但差异可以忽略不计.
HHVM 在发布时开始表现优于 PHP,但是这两种技术开始进行(友好的)战争,现在看来新的 PHP 7 将优于 HHVM,这有望从这些技术中引发性能提升循环,让我们结束-用户非常高兴.
您可以发挥作用的一个方面是您的服务器的配置方式.例如,服务器可以配置为以压缩格式发送数据,称为 gzip 压缩.这是一个您可以打开或关闭的简单设置,显然打开它会提高您的速度.我们将进一步研究其中的一些技术.
2.内容管理系统
作为一般规则,任何 CMS 系统 都会比正确制作的静态 HTML 站点慢.虽然总页面缓存确实可以最大限度地减少速度差异,但有时需要清除缓存,登录用户通常不会获得缓存版本,并且管理内容总是会占用更多资源.
话虽如此,一个构建良好的 CMS 系统将利大于弊.它将更安全,您将能够更轻松地添加内容,并且它们提供了大量您可以随时实施的功能.所有著名的 CMS 系统都属于"精良"类别,因此从速度的角度来看,WordPress、Joomla、Drupal 和其他系统都很好.
速度问题在某些系统中可能比其他系统更常见,但这通常与使用的其他代码有关,例如主题、插件、扩展等.我们将进一步了解这些.
内容管理系统比静态站点慢的原因是它们需要连接到服务器,服务器需要处理请求,生成 HTML 代码并将其发送回您的浏览器,在处理过程中可能有许多数据库需要运行的查询也会增加加载时间.
大多数系统都有优化这个过程的机制,这就是为什么网站往往会在几秒钟内加载-使这些系统成为可行的解决方案.
3.扩展
我在这里指的是完全一般意义上的扩展:在您的 CMS 之上使用的任何代码.对于 WordPress,这意味着主题和插件,对于 Joomla 和 Drupal,它们可能被称为模板和扩展.
通常情况下,主题和插件不是由制作 CMS 本身的同一个人创建的.这意味着,如果开发者没有完全跟上当前的最佳实践,他们就会犯错.
在编码时,您可以通过多种方式编写次优代码,而不会实际触发错误.
例如:如果您考虑您的数据需求,您可能会在操作期间查询一次数据库.
如果你没有考虑清楚,你可以用三个.事实上,根据您的需要,有时三个查询可能比一个查询更快,因此谨慎选择方法非常重要.
这大致就是事情进展非常快的方式.我们将在下面介绍一些会降低代码速度的特定编码技术.目前,要点是扩展程序为您的网站增加了一层加载时间.
对于 WordPress,由于社区非常开放,负面影响有所放大.这是 WordPress 美妙的 方面,永远不应该改变,但它确实有其缺点.这使得贡献糟糕的代码变得非常容易.没有什么可以阻止您(也不应该)创建编码糟糕的主题,然后根据需要将其出售.
4.服务器和托管
您的服务器是决定网站速度的重要组成部分,尤其是在高流量时期.让我们先将这两个术语分开,然后详细了解它们如何影响速度.
您的服务器是一台物理计算机,它与您在家中的计算机具有相似的属性.它具有内存、CPU、硬盘空间和其他决定其性能的参数.
您的托管计划本质上是绑定到服务器的一组服务.这将包括自动备份、服务器管理等.

就我们而言,托管计划的最重要因素是您使用的是共享计划、VPS 还是专用服务器. >
共享、VPS 和专用服务器
这三个术语代表不同类型的托管方法.稍微简化:他们决定有多少人与您一样在他们的网站上使用相同的服务器.
- 在共享服务中,您可能会在同一台服务器上容纳数百人.这意味着一百个人共享相同的硬盘空间、内存、CPU 速度和带宽.资源共享不均,故障站点可能会占用服务器 80% 的资源,而剩下 20% 甚至更糟的资源留给 99 个其他用户.
- VPS(虚拟专用服务器) 仍然是共享的,但通常在较少的用户之间共享,并且资源均匀分布.例如,如果同一台服务器上有 5 个用户,他们每个人将获得 20% 的内存.如果一位用户试图超越它,他们的网站可能会失败,但其他用户的网站会很好.
- 在专用服务器上,您是服务器及其所有资源的唯一用户.这完全消除了共享服务带来的"坏邻居"效应,并且与 VPS(通常)相比,您可以使用更多资源.
我们在 WPMU DEV 提供完全专用的托管 WordPress 托管.我们的托管计划都附带专用 IP、自动更新、WAF、恶意软件扫描等,以确保您的网站保持最新状态.
服务器参数
正如我所提到的,您的网站所在的服务器具有一些决定其速度的关键属性.本质上:服务器的性能越高,您的网站的性能就越好.
当然,这是有限制的.如果您有一个小型 WordPress 网站,每月浏览量达到数万次,那么您的服务器是 1 GB 内存还是 8 GB 内存并不重要.再往下看,当我们研究如何提高速度时,我将讨论何时更换主机和服务器,我们将在那里讨论这个问题.
另外一个可以产生影响的属性是您的服务器位置.这是相当合乎逻辑的.如果服务器位于旧金山,那么您在圣地亚哥(约 500 英里)比在澳大利亚墨尔本(约 8000 英里)接收数据的速度更快.
数据在进入光纤电缆时往往会晃动腿——达到接近光速——但一旦它靠近你的房子,它就会减慢到你的 ISP 提供的速度.它还需要通过防火墙、路由器和其他可能会减慢速度的神奇事物.
距离往往最能影响您提出请求的速度.我的意思是,从墨尔本下载一个 1GB 的文件所花费的时间与从圣地亚哥下载相同的文件所花费的时间几乎相同.但是,如果距离较远,下载 1,024 个 1MB 大小的文件将需要很多更长的时间.
为什么这对我们很重要?当网站加载时,它可以发出大量请求.这包括样式表、图像、javascript 文件等.通过尽量减少请求,我们可以最大限度地提高速度.
客户端计算机
您使用的计算机的年龄也会极大地影响您感知的连接速度.我家里的 iPad 有点破损,我在该设备上的连接速度似乎比在 iMac 上慢得多.
这可能有多种原因,但我认为主要是年龄.组件的退化导致 iPad 使用内存的效率降低-它处理内容的速度较慢,而且响应速度通常较慢.
直到最近,这还不是一个大问题,因为大部分计算都是在服务器上完成的.随着更强大的客户端以及更重要的新网络技术的兴起,网站正在利用客户端的处理能力.
例如,这将意味着更快、更流畅的动画,但也意味着速度较慢的设备会受到影响.
总而言之,任何给定网站的速度取决于您网站的基本技术、您的内容管理系统、您的服务器、您的主机和客户端计算机.
如何提高网站速度
我向这枚硬币承诺了两个方面:开发人员的方法和非开发人员的方法.请注意,这并不意味着非开发人员的所有提示都很容易设置.我将根据方法面向代码的程度来区分.
基本上:您需要在主题或插件的代码中执行的任何操作都将进入开发人员部分,其他所有内容都进入常规部分.
让我们开始吧.
一般速度提升
通过一般速度提升,我指的是您可以在不接触网站代码(主题和插件)的情况下执行的所有方法、提示和技巧.您可能需要编辑一些服务器文件并使用终端命令,但一般来说,这些速度提升不会由您的开发人员实现,除非您有内部人员对服务器也有所了解.
这里有很多事情要做.我试图按照我在"为什么网站速度慢?"中列出的列表进行操作.部分,让您更轻松.
99.99999999% 的人将无法优化我们的 PHP,但我们可以确保它已更新.根据我的经验,您的主机越贵,他们在托管环境中为您更新 PHP 的力度就越大.如果您要求,许多低端服务器实际上会更新您的 PHP 版本,但不会自动更新.
例如,如果您查看一些 PHP 基准测试,您就会明白为什么这很重要.
如您所见,PHP 本身的各种更新都会产生巨大的影响.

如何更新您的 PHP 版本会有所不同-取决于您的主机.如果您登录到您的主机,请搜索"PHP 配置".您可能会发现一个选择框,可以让您切换到不同的版本.
在进行转换之前,更新 PHP 存在一些危险.您的网站和文件的代码不会意外消失,但如果您运行的是非常旧的代码,您可能会遇到意外问题.如果您不确定,请务必询问您的房东,如果情况恶化,您是否可以降级.
有关 PHP 和使用 cPanel 对其进行更新的更多信息,请观看此简短视频.
这个现在不用说了,但我仍然看到一些网站运行旧的 WordPress 版本.CMS 更新通常不会大幅提升从一个版本到下一个版本的速度,但会修补安全问题.
您的安全漏洞可能会导致恶意代码被注入您的网站,随着时间的推移,这可能会使事情慢慢停止.
此外,CMS 更新倾向于优化系统,允许为其编写更好的代码.因此,您的数据库将不会那么拥挤,您的查询会更快,随着时间的推移,平均速度会增加.
如果您勤于更新,您会发现由于简单的数据库拥塞而导致速度降低的间隔时间要长得多.
要了解更新 WordPress 并使其不易受到攻击的最佳实践,请务必阅读我们的文章 7 Quick &轻松修复 WordPress 安全漏洞.
我们将在开发人员部分详细回顾这一点,因为在编写主题或插件时更容易修复.不过,作为用户,您可以做一些事情来让事情变得更好.
首先,要弄清楚您的网站发出了多少请求,您可以使用多种工具.您可以在浏览器的开发人员工具中查看所有请求,也可以使用基于 Web 的工具,例如 Pingdom 以获得不错的概览.
向您的网站添加内容时,您会通过添加图片或其他媒体项目来增加请求.您基本上为每个项目添加一个请求.
如果您在帖子中添加图库,并且前 5 张图片也显示在您的存档页面上,那么您可能会在单个页面上查看多达 60-70 个请求.
如果您是摄影师、艺术家或喜欢图片的人,您可能不想添加更少的图片.在这些情况下,减少每页帖子设置,或在存档列表中显示更少图片可能是一个不错的方法.
要减少每页的帖子数,请转到 WordPress 中的阅读设置并将其降低到 8 或 6.
考虑减少影响网站前端的插件.许多插件添加了自己的样式和脚本,如果插件编码良好,禁用它们将节省 1-2 个请求,如果它是一个浪费的产品,则多达 7-8 个请求.
切换主题还可以为您节省大量请求,尽管在许多情况下这不是一个可行的选择.我注意到,特别是高级主题(提供绝对所有功能的主题)往往会不必要地加载过多的脚本和样式.
延迟加载图片是一种强大的工具,可以让您的网站看起来更快.实际上,您并没有减少请求,而是错开了加载它们的需求.延迟加载背后的想法是,出现在页面下方的图像并不真正需要显示,直到用户滚动到它们附近.
我们有一篇很棒的文章比较了 6 个延迟加载插件,请查看那里了解更多信息.
减少请求的最佳方法之一是串联.这就是我们将在编码器部分详细讨论的内容.无需加载 10 个 JavaScript 文件,您基本上可以将它们一个接一个地复制粘贴到一个文件中.这意味着您可以下载一个 200kb 的文件,而不是下载 10 个平均 20kb 的文件,这会更快.这在对网站进行编码时很容易做到,但事后要困难得多.
合并 + 缩小 + 刷新 之类的插件可自动执行过程有点,但我得到了好坏参半的结果.试一试,如果它们奏效,您可能会看到请求数量显着减少.
说了这么多,我们建议使用我们自己的延迟加载插件,扫一扫.

Smush 是最受欢迎的多合一图像优化插件,因为她拥有加快图像加载速度所需的一切.
使用 Smush 激活延迟加载是一键完成的.此外,您可以在激活延迟加载后调整您的设置(尽管在大多数情况下没有必要).
另外,它是一个免费插件.
虽然我特别讨厌包含分页的帖子,但在某些情况下,将帖子分成多个页面可能是有意义的.请不要这样做以增加页面浏览量,但如果您有一个超级超级资源,其中列出了您最喜欢的 500 家酒店的图片,最好将其分成 25 到 50 个部分.
插件不仅会增加您的请求,还会导致各种其他问题,例如内存,甚至安全漏洞.一个很棒的插件 P3(插件性能分析器) 可以帮助你找出最有问题的罪魁祸首.
您还可以停用您很少使用的任何内容.我经常使用重新生成缩略图、主题检查,或者实际上是 P3.虽然这些在使用时非常宝贵,但我每个月大约需要一次.不使用它们时,我会禁用它们以确保它们对性能的影响绝对为零.
网站上有许多(主要是 JavaScript 驱动的)设计元素和模块,它们看起来不错,但实际上没有意义.让我给你举两个例子.
第一个示例处理令人沮丧的元素.假设你有一个用户菜单,当你将鼠标悬停在它上面时,它会以很酷的动画折叠出来.当用户第一次看到它时,他们会认为它很酷.然而,在第三次使用后,他们会变得越来越恼火——他们为什么要等一秒钟才能出现该死的菜单?
这通常是由于程序员和网站所有者没有以与其用户相同的方式使用网站造成的.用户很可能会使用标题中的登录链接或表单.确保为您的用户提供流畅的体验,而不是看起来很酷但从长远来看令人沮丧的体验.
除了纯粹的视觉用户体验方面,您的网站还将获得一些速度优势.需要制作动画的元素将更少,Javascript 代码总数将更少,这一切都将转化为一个实际上更快的网站或一个看起来更快的网站——这是同一回事.
第二个例子是关于效率和转化.我最喜欢的例子是滑块.几乎每个 单人 研究 文章指出了相同的结论:滑块简直太可怕了.没有人使用它们,它们占用了太多空间,它们会降低您的 SEO 并严重影响您网站的速度.
我想强调的是,对于企业来说您网站的目标不是看起来很漂亮.看起来漂亮是用来实现真正目标的工具:赚钱.如果所有研究都指出您应该将该滑块烧毁的事实.如果这会增加您的收入,您真的关心吗?
在理想情况下,您应该查看网站的所有元素并做出一些决定或至少是有根据的猜测.阅读该主题,进行研究,最重要的是,衡量结果.
另外,请记住,在某些情况下完全删除是可以的,在其他情况下您需要替换一个元素.简单地移除您的滑块可能会导致较低的转化率,但用简单的文本和链接替换它可能会使其远远超过滑块的效果.
对我来说,CDN 是网站的灵丹妙药,它们使一切很多更简单、更快捷.我喜欢使用 CDN 有两个原因:它们允许我在服务器外托管图像,并且它们减少图像加载时间.
对于本文,后一个原因是我们将重点关注的内容,尽管只是简短的 – 我喜欢在服务器外托管图像,因为它可以将我的内容从我的媒体中解放出来.我可以更改我的域.我可以从一个主机移动到另一个主机.我的媒体总是在同一个地方.一个普通网站的数据库和主题可能会占用 10-25 Mb.但是,可能还有 2Gb 的图像要传输.如果这些都托管在服务器外,您只需担心 25 Mb,这并不多.
回到速度! CDN(内容交付网络)背后的理念是将请求的资源放置在离您更近的位置.
我们在 WPMU DEV 有我们自己的 CDN,它利用了 StackPath 服务器.它在大多数关键位置都非常有效.
如果您想将其付诸实践,请阅读我们关于顶级 CDN 服务的综述以帮助您入门.许多(例如 Amazon Cloudfront)都有 WordPress 集成插件,这意味着您可以设置和忘记.
缓存 可能是第一个使用的方法,因为它可以带来最显着的改进.缓存背后的想法可以通过一个简单的类比来理解.还记得你第一次在学校学习加法是什么时候吗?你身体需要数出 5+4.你用你的手指或手头的任何东西(我妈妈教我用方糖)数出来.
现在我打赌你只要记住答案并自动知道它是 9.你的大脑基本上已经为你缓存了结果,你不再需要计算它.
网站有一个情节扭曲——等式的结果并不总是一样的!这是为什么.想象一个网站,只显示您的姓名和当前年份.本网站的内容每年仅更改一次.但是,每次加载站点时,服务器都会计算当前年份.
缓存可以做的本质上是在给定时间内保存网站的 HTML 副本.在上面的示例中,我们可以将缓存设置为每天过期一次.这意味着网站每天会正常加载一次:它会检测请求,让服务器处理代码,然后将结果以 HTML 形式返回.它还会将生成的 HTML 保存在内存中.
下次有人加载站点时缓存将从内存中加载 HTML,而不是让服务器处理它.对于像这样简单的示例来说,这可能并不多,但对于普通网站来说,这可以缩短加载时间.
我刚刚描述的是整页缓存,还有很多其他类型——缓存本身就是一种职业.幸运的是,如果您使用 WordPress,则可以非常轻松地开始使用.
我们有一篇文章 比较最好的 WordPress 缓存插件 在我们的博客上-阅读文章并选择!
本文中的一个选择是我们自己的 蜂鸟插件.

Hummingbird 可以免费使用,并具有有效的浏览器缓存功能,可以缓存任何站点.她将使用整页、Gravatar 和浏览器缓存工具更快地加载页面.
每个插件都有无数的设置,我建议阅读每个设置获得最佳性能.
也就是说,根据我的经验,如果您只使用基本设置,您将获得至少 80% 的最大速度增益,因此即使您是相对新手,也值得开始使用.
您还应该知道,可以在服务器级别实现更好的缓存.一些托管 WordPress 解决方案在服务器级别提供缓存,这将始终更快.许多这些主机不允许您安装缓存插件,仅仅是因为它只会导致网站变慢.
随着时间的推移,您的数据库将获得一些无谓的负担,这几乎是不可避免的.这个等式有两个主要部分:未使用的数据和数据库级开销.
未使用的数据可能来自多个地方.如果您有一些用于删除用户的自定义解决方案,则可能使用的方法不会删除关联的用户元数据.这可能会在数据库中留下数百行没有附加到任何人.
您还可以在数据库中使用一些不再需要的自定义字段.由于这些自定义字段可能已添加到数百个帖子中,因此我们讨论的是数百(如果不是数千)行.
清理它并不困难.Jenni McKinnon 写了一篇关于保持数据库干净整洁 的精彩文章,我在我的 这篇博客上的一篇 target="_blank" rel="noopener">如何重建您的网站 文章.
对于数据库级开销,您可以使用内置于 MySQL 的工具自动为您处理——这称为表优化.它非常类似于硬盘驱动器的磁盘碎片整理.查看Jenni 的帖子 的"优化您的表格"部分,了解这是如何完成的.
我们已经讨论过使用更少的图像,让我们将注意力转移到您确实必须使用的图像上.压缩图像可以使它们缩小 30% – 80%,没有任何明显差异.
当然,最好使用的工具之一是我们自己的 WP Smush ,已被超过 100 万个 WordPress 安装使用.您甚至可以自动调整图像大小.
我个人使用 Imageoptim for OS X 来批量优化图像,或者您可以使用流行的RIOT 在 Windows 上.
这可能是另一个潜在的巨大速度增益.Gzip 压缩会先压缩各种资产,然后再将它们发送到您的浏览器进行解释.这是需要在您的服务器上设置的内容.查看这篇 GTmetrix 文章,了解如何快速学习让这一切发生.
之所以如此有帮助,是因为 CSS 和 HTML 使用了大量重复的内容.内容中的模式越多,压缩效果就越好.一个非常基本的例子:
如果您的网站代码中有 100 次"Daniel is Awesome"(为什么不呢?!),您可以用"12d"替换该文本,从而节省大量空间.这是任何压缩的本质,您拥有的模式越多(越长),压缩率就越高.
我们自己的 Hummingbird 可以免费帮助进行 Gzip 压缩.请务必查看我们的文章,了解如何优化 Hummingbird 以获取更多信息.
这可能不会直接加速您的网站,但会减轻您的服务器的负担,尤其是当您拥有一个受欢迎的网站时.盗链是指在与您的服务器不同的网站上提供图片.
换句话说,与其保存您的图片并将其上传到我自己的服务器,我只是在您的服务器上链接到它,从而有效地窃取了您的带宽.这就像偷别人的 Wifi.
幸运的是,这可以通过一些.htaccess 魔法来防止.在来自 JavascriptKit 的这篇简短文章中阅读如何完成此操作.
这需要考虑很多.当然,正如我之前提到的,我们提供的托管服务应该能很好地满足您的需求(事实上,我们认为我们提供地球上最好的托管服务).但是,您确实有选择.
我非常简短、过于简化的指南如下:除非绝对必要,否则不要使用共享主机,或者您有很多根本不使用的网站.这些费用约为每月 4 美元,这就是您所得到的.由于其他人过度使用资源,不可靠的服务很容易出现故障.
另一个选择是托管 WordPress 托管(就像我们有的).这种类型的托管提供了一种更加以 WordPress 为中心的方法.在 VPS 上你可以运行任何你喜欢的应用程序,托管 WP 主机显然只允许 WordPress.
因此,这些服务器是专门为 WordPress 而构建的,提供服务器级缓存和其他好处,让您的 WordPress 网站运行如火如荼.
另一方面,您可以做什么和不可以做什么可能会有一些限制.由于速度或安全问题,主机可能会禁用某些插件和主题.归根结底,这些都有一个很好的目的,但可能会让某些人反感.
如果您正在寻找一个好的主机,我们有一个WPMU DEV 主机评论,您可以环顾四周并在看到比较后选择您最喜欢的主机.我建议您与客户服务部交谈并解释您的确切需求,他们将帮助您决定您需要什么,并且您还可以了解您可以期待的支持水平.
这不会加快您的网站速度,但会在出现问题时提醒您,您将能够及时发现下降趋势.在速度问题变得明显之前对其做出反应是留住满意用户的好方法!
域监控服务,例如 Pingdom 等可以定期自动测试您的网站,自动.
如果您是 WPMU DEV 成员,您的网站状态将在 The Hub 的性能标签中衡量.此外,您还可以设置性能测试和正常运行时间报告.
14.主题
许多 WordPress 主题都提供了主题优化部分(例如 Avada).

在您的主题中配置这些选项会对您的整体网站速度产生巨大影响,尤其是与流行的页面构建器插件(如 Elementor、)一起使用的主题target="_blank" rel="noopener">WPBakery、Divi 等,它们添加了会降低页面加载速度的额外代码.
这不是您可能曾经考虑过的事情,但不管您信不信,字体会拖累您的 WordPress 网站并导致加载时间延长.
当涉及到 Google 字体时,它们也必须被请求和加载.这适用于页面上的每种字体-这可能会使您的网站滞后.
WP Rocket 具有优化 Google 字体的功能.另一种选择是Swap Google Fonts Display,它也可以帮助.
此外,建议您为整个网站使用一种字体.
与开发相关的速度提升
开发人员喜欢说网站速度下降——通常是——用户的错.这当然有一定的道理,但我认为许多开发人员编写代码,这类似于遗漏撒谎.
从技术上讲,代码没有错误,它不包含错误,它不会试图主动减慢您的网站速度.但是,它在提高速度或确保它保持快速一段时间方面并没有多大作用.这背后绝对没有恶意,只是我们开发了很多代码.
以下是我们开发人员可以做的一些事情,以确保我们的产品平稳运行并帮助尽可能长时间地防止性能下降.
这似乎是一个如此简单的小任务,但似乎很少有开发人员真正理解它的含义.您不可能了解像 WordPress 这样大的东西.你可以做的是在你应该做研究的时候找出迹象.换句话说:了解您的手艺并不断学习.
让我举一个我最喜欢的例子.您是否曾经不得不为帖子提取大量元字段?也许在近距离使用 get_post_meta()
20 次?你可能会觉得这很浪费,好像我们在发出 20 个数据库请求.
我见过人们使用 WPDB 类直接获取所有 post meta 并使用数组函数重新排列并获取他们需要的 post meta.虽然我很欣赏它背后的意图,但它完全错位了.
您第一次使用 get_post_meta()
时,它实际上会自己抓取所有帖子元并缓存结果.对同一帖子的任何后续调用都将使用缓存数据,而不是直接使用数据库.
在您做出上述任何决定之前,请务必查阅 WordPress Codex 并阅读相关材料.
我再次提出请求……作为开发人员,这取决于您.如果您的主题或插件使用了大量的 Javascript 和 CSS,请连接它们!我个人喜欢将我的脚本和样式分散到大量文件中,因为这更适合开发.
在这里 Hummingbird 可以再次帮助处理请求.
您可以使用的另一个强大工具是精灵.精灵是连接的图像.无需单独加载所有社交图标,您可以将它们组合成一个图像并将该图像用作背景,将其定位得恰到好处,以便只有您需要的区域可见.由于其对请求友好的特性,Twitter 和许多其他大型网站一样使用精灵.
当我需要一个精灵时,我通常使用优秀的在线工具 Stitches.此工具可让您上传图片并为您优化排列,自动生成您需要的样式.
串联和缩小通常是齐头并进的.一旦您制作了最终文件,就该使它们尽可能小了.毕竟,您的浏览器不需要所有漂亮的注释、空格、换行符、缩进——它对大量不可读的代码非常满意.
为此我也使用 Hummingbird,但还有其他版本Grunt 之类的工具和用于特定任务(如 linting、图像优化、修改等)的基于 Web 的工具
Hummingbird 可以在资产优化区域为您解决这个问题.

激活后,这将提高网站的明显速度.它不会减少请求或文件大小,但会确保首先加载重要内容.此外,如果脚本卡住,也不会阻止加载内容.
其他内容也可以优先,就像在页脚中放置脚本一样.如果您的侧边栏包含相关信息和非必要内容(可能应该如此),您可以确保它的加载时间晚于主要内容.
当然,这并不总是一个选项,但如果您尝试尽快加载重要内容,您最终会得到一个看起来更快的网站,并且从 SEO 的角度来看,排名也可能更高.
在 WordPress 中输出图像时,您可以指定要使用的图像大小.大多数情况下,您知道这些图片有多大:特色图片、小帖子图标、头像等等.
使用 add_image_size()
函数可以指定这些图像大小.这意味着无论何时上传图片,WordPress 实际上都会创建该大小的上传图片的副本.
这里的想法是,如果我们需要一个 600×320 的图像,我们应该抓取一个精确尺寸的图像,原因有两个:
- 如果我们抓取更大的图像,我们就是在浪费带宽并降低速度
- 调整图像大小(无论是缩小还是放大)都会占用客户端大小的处理能力,也会降低图像质量
当然,我们自己的 Smush 在适当的图像尺寸方面也绝对可以提供帮助.请务必在此处了解更多信息.
数据库查询可能会导致显着的速度下降,主要是由于内存使用.我曾参与过一个项目,由于错误查询导致主机暂时禁用了站点,服务器多次崩溃.
这里有两种策略可以使用.减少和优化查询.并非如我上面所讨论的那样,优化实际上可能意味着增加查询数量以替换特别消耗资源的查询.
首先,避免在 WordPress 中进行原始数据库查询.您可以使用大量函数来获取从帖子到评论、自定义分类法和元数据的所有内容.
如果您确实需要自己编写查询,请确保使用WPDB 类,以获得最大的安全性和效率.尽量避免连接表或其他复杂的事情,在很多情况下,最好使用两个独立但速度更快的查询.
有大量工具可以判断您的查询是否编写良好,以及查看请求期间运行的所有查询.
您可以使用 Query Monitor 插件或使用 define('SAVEQUERIES', true)
在您的配置文件中并通过 $wpdb->queries
打印所有查询.
您还可以选择记录慢速 MySQL 查询.许多主机都启用了此功能,或者您可以自己启用它,或者让您的主机为您完成此操作.您可以在 MySQL 网站.
插件实现的许多事情实际上并不需要在每个请求上都完成.创建其他角色、重新生成重写规则、添加自定义数据库表等只是其中的几个.
您应该将这些包装在一个激活函数中,该函数仅在插件被激活时运行.这减少了处理,从而加快了速度.
另一方面,您应该确保在停用时删除其中一些组件,并使用停用和卸载挂钩完全删除一些组件.
这有助于 WordPress 数据库保持原始状态,延迟由于开销而变慢的时间.当这种情况不可避免地发生时,简单的优化就足以让事情重回正轨.
是的,在很多情况下,客户和普通用户确实让他们自己的网站变慢,但这在很大程度上是更好地教育他们的一个因素.创建最终用户文档将有助于网站保持速度、提高客户满意度,甚至从长远来看降低您的工作量.
特别关注那些可能导致问题的方面,例如正确使用插件、没有同时安装 24 个分析工具等.
结论:速度不是一切
我想强调的是,虽然速度极其重要,但并不是一切.更极端的是,您可以完全禁用图像并且几乎不使用样式和 JavaScript.这可以将您的页面加载时间降低到 345 毫秒,但除了毫无意义的速度竞赛之外,它真的可以用于任何目的吗?始终牢记您网站的目标是什么.
如果是为了赚钱,你应该把一切都为这个目标服务.一个目标通常是通过多种工具的巧妙平衡来实现的,网站速度只是其中之一.
您需要使网站具有视觉吸引力,您需要使其易于使用,并且您需要为您的用户提供必要的信息.这通常意味着在其他领域做出妥协.
您还应该权衡加快网站速度的财务和时间成本.向某人支付 2,000 美元或花费一个月将您的平均加载时间从 3.4 秒降低到 1.8 秒可能是值得的,但越低就越难.
再花 2,000 美元或一个月将它从 1.8 升级到 1.2 可能不是一个好的选择,您可以花这笔钱或时间来获得更多的销售线索、营销或只是带您的团队去度假.
我希望本指南能帮助您加快网站速度——如果您只做列出的一两件已经很棒的事情.每一点都很重要.
迈克,我们的一位了不起的读者创建了一个关于他如何加速的案例研究将他的网站从 4.23 秒提升到 1.33 秒.这特别有趣,因为 Mike 不是 WordPress 专家,他是从高级用户的角度来看待它的.
有关更多信息,请务必查看我们的性能优化指南.它将向您展示如何使用我们的插件 Smush Pro 和 调整所有设置以获得最佳性能蜂鸟专业版.
此外,请务必阅读有关如何使用新 GTmetrix 检查 WordPress 网站速度的信息.
贡献者
本文与以下人员合作撰写:
Jared Schweers – 关键元素媒体. >
Key Element Media 是一家提供全方位服务的数字营销公司,专门从事网页设计、搜索引擎优化和 PPC 广告管理.
***
注意:我们不接受来自外部来源的文章.但是,WPMU DEV 成员可以为我们博客上的教程和文章提供想法和建议.
标签: