如何为WordPress & # 8211设置云火炬APO性能提升高达300%
对于性能爱好者来说,Cloudflare的APO代表了最大化WordPress性能的一大进步。
在我们的基准测试中,我们发现在我们的测试站点上启用APO可以减少70-300%的页面加载时间,这取决于测试位置。
在本文中,我们将深入探讨Cloudflare APO是如何工作的,以及如何使用它来提高WordPress网站的性能!
什么是自动平台优化(APO)?
edge的静态HTML
2022年的网络性能
Cloudflare的自动平台优化是如何工作的?
通过高性能托管和Cloudflare APO最大限度地提高WordPress的性能
如何为WordPress使用Cloudflare自动平台优化
如何确认用于WordPress的Cloudflare APO是否正常工作?
无需Cloudflare插件的自动平台优化
什么是自动平台优化(APO)?
自动平台优化(以下简称APO)是Cloudflare提供的一套全新的一键式平台定制优化服务。
第一个接受“APO待遇”的平台是WordPress,它是全球最受欢迎的CMS,市场份额超过60%。在未来,我们希望看到类似的APO服务应用于其他内容管理系统和平台。
从高层次来看,Cloudflare的WordPress APO在两个主要方面提高了网站的性能。
WordPress站点页面的静态HTML副本缓存在世界各地的Cloudflare edge服务器上。
第三方字体由Cloudflare缓存和提供。
让我们更深入地了解APO如何以及为什么在技术层面上工作。
edge的静态HTML
Cloudflare的APO与其他传统的页面缓存和CDN解决方案的关键区别在于,它可以直接在Cloudflare的边缘缓存静态HTML。为了描绘一个更清晰的画面,让我们来看看从“无优化”到APO的四种不同的WordPress设置。
WordPress设置# 1–没有页面缓存或CDN
默认情况下,WordPress不提供页面缓存或CDN支持。使用这种配置,所有请求都需要由PHP动态生成,即使页面内容在请求之间没有改变。
此外,没有内容交付网络(CDN)集成意味着所有静态资产(如CSS、JS、图像和字体)都由源服务器提供服务。
这种配置会使WordPress站点非常慢,特别是对于远离源服务器的访问者。
WordPress设置# 2——没有CDN的页面缓存
实现页面缓存是提高WordPress性能的最佳策略之一。在一些WordPress托管服务器中,托管栈包括一个高度调整的页面缓存层,它由Nginx的FastCGI缓存模块支持。
页面缓存极大地减少了源服务器上的CPU负载,因为可以从缓存中处理请求,而无需生成动态HTML。
这可以释放你的CPU来关注其他重要的动态任务,使你的WordPress网站更加稳定。尽管这种配置可能允许您的站点每秒处理更多的请求,但它并没有解决“距离问题”。
如果没有合适的CDN,给远方的访客提供静态资产还是个问题。
WordPress设置# 3——使用CDN进行页面缓存
到目前为止,添加用于提供静态资产的CDN页面缓存是托管WordPress网站最有效的方式。
在这个模型中,源服务器仍然负责为页面提供实际的HTML。然而,CSS文件、图像和字体等静态资产被卸载到世界各地的各种CDN存在点(pop)。这种模型背后的思想是静态资产,尤其是大图像,构成了大部分请求的页面大小。因此,通过将资产卸载到离访问者更近的服务器上,可以减少加载时间并提高性能。
使用CDN的全局流量路由
尽管这种配置比前两种配置有了显著的改进,但它确实让您想知道,如果由于必须从源服务器提供HTML,WordPress的性能不再是瓶颈,会发生什么。
令人惊讶的是,在为WordPress引入Cloudflare的APO之前,这样的设置是不可行的——至少对于非技术用户来说是如此。
WordPress设置# 4–用于WordPress的Cloudflare APO
CloudApo是世界上最新的WordPress性能优化解决方案。不像以前的WordPress设置被源站点的服务器性能所限制,从访问者的角度来看,支持APO的站点基本上是“被动的”。
使用Cloudflare APO的全球流量路由
为此,Cloudflare利用其全球分布的CDN和Workers/Workers KV来创建WordPress站点的静态HTML表示。在本文的后面,我们将了解更多关于Cloudflare APO的工作原理。
现在,只需知道兼容的WordPress网站与APO启用不再受制于来源造成的延迟。换句话说,来自美国、德国和日本的访问者的请求将由附近的数据中心而不是你的源服务器来处理。
2022年的网络性能
在过去的几年里,专业的Web开发行业发生了巨大的变化。越来越多的开发者正在从WordPress这样的单体架构转向更加灵活和高性能的静态站点生成器,比如Hugo和JavaScript框架,比如Gatsby。
我们明智地使用了“性能”这个词,因为Web性能通常可以被解释为一个主观指标。
例如,页面的加载时间可能会因测试地点和时间的不同而有所波动。
所以在一些论证语境建立之前,说盖茨比静态网站比WordPress网站快是没有意义的。
在当今高度互联的世界中,Web性能测试最重要的环境之一是世界不同地区的加载时间。
这就是静态网站在性能上优于WordPress的地方。默认情况下,静态网站可以直接上传到CDN——分布在世界各地——这使得它们无需任何额外的工作就可以在世界范围内快速传播。
由于WordPress site需要某种类型的源服务器来生成HTML,它不能直接利用Netlify、Vercel和Cloudflare自己的Workers站点等平台来实现无摩擦的全球交付。从商业角度来看,这意味着你可能会失去远离原服务器的潜在访客和客户,因为谷歌在生成搜索结果时会考虑页面速度。
这就是Cloudflare的WordPress APO发挥作用的地方。
启用Cloudflare APO将WordPress的性能提高了300%
Cloudflare的WordPress自动平台优化是对2022年WordPress性能意味着什么的彻底反思。正如我们之前提到的,在我们的测试站点上启用APO可以将加载时间减少70%到300%,这取决于测试位置。这是可能的,因为APO有效地消除了源服务器的性能瓶颈。
Cloudflare的自动平台优化是如何工作的?
有了Cloudflare APO,你的WordPress站点的HTML被缓存在Cloudflare的全球边缘服务器中。这可以通过WorkerKV来实现,这是一个分布式键值数据库服务,具有超快的全局传播能力(不到60秒)。
当数据通过Cloudflare API写入WorkerKV时,会在几秒钟内自动复制到全球150多个Cloudflare数据中心。
这使得WorkerKV成为加速WordPress网站的主要候选,因为文章和页面可以很容易地用键-值机制来表示——URL是“键”,HTML页面内容是“值”。
在Cloudflare Workers KV中作为键值对象存储的网页
为你的WordPress站点启用APO后,大多数对你站点的请求将不再访问你的源服务器。
相反,请求将由本地Cloudflare CDN缓存(如果缓存的页面存在)或Workers KV(如果缓存的页面在Cloudflare的CDN上不存在)提供。
如果页面不在CDN缓存或Workers KV数据库中,Cloudflare将向您的源服务器发出一个请求,并缓存新页面的HTML。
这里的神奇之处在于,Cloudflare Workers KV充当了源服务器的某种分布式镜像。回想一下,存储在WorkerKV中的数据将在Cloudflare的整个服务器网络中自动复制。
这意味着,即使你运行WordPress的源服务器位于美国的某个地方,来自日本的访问者也不需要访问你的源服务器来为他们的请求启动本地CDN缓存区。
相反,来自日本的访问者将从附近的Cloudflare数据中心的Workers KV数据库或CDN缓存中获得缓存的HTML。
这种新的交付模式与之前为WordPress缓存HTML页面的尝试截然不同。
以前,最流行的“全页面缓存”方法涉及创建Cloudflare页面规则来“缓存一切”。虽然这种方法可以显著提高性能,但它不是一种非常有效的缓存方法,因为它依赖于“拉”模型,而不是WorkerKV的“推”模型,后者会自动将HTML推送到世界各地。
通过上一页基于规则的设置,访问美国Cloudflare缓存区的访问者不会为其他位置的访问者缓存资产——这意味着从全球内容交付的角度来看,网站无法有效利用Cloudflare的网络。
自动平台优化通过缓存第三方字体更进一步。在很多情况下,字体最终会占据页面请求大小的很大一部分。
与通常从根域提供的CSS、JS和图片不同,字体通常来自第三方服务,比如Google Fonts。这意味着Cloudflare等基于代理的缓存服务无法缓存和提供字体。
因为Cloudflare Worker(位于源服务器和访问者之间的可编程JavaScript服务工作器)支持APO,所以可以注入额外的逻辑来完成基本缓存之外的任务。
在这种情况下,APO使用Cloudflare Worker来缓存第三方字体,并使用内联CSS来修改页面的HTML,以指向Cloudflare CDN上的缓存字体。这消除了对字体的额外外部请求的需要,并减少了为页面提供服务所需的连接数和加载时间。
最后,由于APO是通过WordPress插件与您的网站集成在一起的,所以每当您更新网站上的页面时,Cloudflare缓存都会自动清除。这可以确保访问者可以随时看到您网站的最新版本,而无需任何人工干预。
通过高性能托管和Cloudflare APO最大限度地提高WordPress的性能
然而,Cloudflare APO并不是万能的。选择一个以性能为中心的WordPress主机仍然非常重要,主要有两个原因。
CloudApo只缓存未登录用户的前端页面。与服务器级页面缓存配置类似,APO不会缓存带有特定cookie和登录用户的页面。这意味着原始服务器性能仍然是等式中的关键部分。
出色的WordPress体验不仅仅包括快速的前端性能。由于WordPress本质上是一个动态的CMS,所以在运营WordPress网站时需要考虑很多因素。
这里有四个用例,说明为什么即使你使用Cloudflare APO,你也应该选择一个高性能的WordPress主机。
1.WooCommerce,轻松的数字下载和电子商务
当检测到一些电子商务相关的cookie时,Cloudflare APO会选择性地绕过缓存。例如,当访问者在WooCommerce网站的购物车中添加一件商品时,WordPress会自动设置woo commerce _ items _ in _ cart cookie。当检测到此cookie时,APO会绕过缓存,以避免缓存和提供特定于客户的数据。因此,即使启用了自动平台优化,WooCommerce和其他基于WordPress的电子商务平台仍然会严重依赖原服务器的性能。
2.WordPress仪表板性能
由于Cloudflare APO不会缓存登录用户的HTML,因此在WordPress dashboard中导航将始终完全取决于您的源服务器的性能。如果你没有使用性能优化的主机,那么编写和发布内容,管理图片和其他媒体资产,以及在WordPress网站上运行日常维护等任务会变得非常缓慢。这将对你的业务结果产生直接的负面影响。
3.WordPress成员网站和论坛
如果你使用像Ultimate Membership Pro这样的插件来管理你的WordPress会员网站,或者bbPress来支持WordPress论坛,Cloudflare APO将无法优化你的大部分流量。由于会员网站和论坛通常需要用户登录,Cloudflare APO会自动绕过这些用户的HTML缓存。因此,使用高性能主机仍然是WordPress会员网站和论坛保持快速用户体验的最佳方式。
4.WordPress Cron作业
WordPress cron (WP-Cron)可以帮助你在WordPress网站上安排和自动化后端任务。您的站点可能会使用cron jobs在特定时间发布文章。像这样简单的任务不需要太多的CPU资源,但是其他任务可能会占用更多的资源。例如,使用备份插件每12小时自动将你的WordPress站点备份到ZIP存档,其他任务会占用更多的CPU。
由于Cloudflare APO仅帮助优化前端内容,您仍然需要在高性能主机上托管您的站点,以最大限度地提高后端任务的性能和登录用户体验。
如何为WordPress使用Cloudflare自动平台优化
既然我们已经讨论了为什么Cloudflare WordPress自动平台优化会改变游戏规则,那么我们就来看看如何给你的WordPress网站添加服务。
APO可用于Cloudflare免费和付费计划。对于免费的Cloudflare用户,每月需要额外支付5美元的APO费用。如果您在Cloudflare上使用Pro、Business或Enterprise计划,您可以免费启用APO。
下面是您开始使用Cloudflare APO时需要做的事情:
在Cloudflare dashboard中创建API令牌。
安装官方的Cloudflare WordPress插件。
启用自动平台优化。
1.创建Cloudflare API令牌
在启用APO之前,您需要创建一个API令牌并安装Cloudflare WordPress插件。要生成API令牌,请单击Cloudflare dashboard右上角的配置文件图标,单击“我的配置文件”,选择“API令牌”选项卡,然后单击“创建令牌”。
创建Cloudflare API令牌
在API令牌模板下,点击WordPress选项旁边的使用模板。
选择WordPress API令牌模板
“WordPress”模板将生成一个具有必要权限的API令牌,以允许自动平台优化正常运行。默认设置是您开始使用APO所需的全部,但是如果您需要将API令牌锁定到特定用户或地区,请随意调整“帐户资源”和“区域资源”设置。
配置完令牌参数后,向下滚动并单击继续至摘要。
配置Cloudflare API令牌参数
最后,单击创建令牌以完成该过程。
确认Cloudflare API令牌的创建
确保将API令牌复制到安全的位置。以后安装Cloudflare WordPress插件时会用到它。将API令牌记录在安全位置(如密码管理器)后,请随时关闭页面。
在安全的地方记录您的Cloudflare API令牌
2.安装Cloudflare WordPress插件
云WordPress插件可以直接从WordPress插件库中安装。要找到它,在WordPress dashboard中搜索“Cloudflare”。一定要安装官方的Cloudflare插件,而不是第一个搜索结果的“WP Cloudflare超级页面缓存”。
安装官方的Cloudflare WordPress插件
接下来,进入WordPress dashboard侧边栏中的设置> Cloudflare,点击“在此登录”。
登录您的Cloudflare帐户。
输入与您的Cloudflare帐户关联的电子邮件地址以及您之前生成的API令牌。单击保存API凭据以完成登录过程。
输入您的电子邮件地址和Cloudflare API令牌。
现在,Cloudflare WordPress插件已经设置好了,让我们转到Cloudflare仪表板来启用自动平台优化。
3.在Cloudflare中启用自动平台优化
CloudPro,商业和企业计划包括WordPress的自动平台优化,无需额外费用。如果你使用免费的Cloudflare计划,APO的附加费用是每月5美元。要启用APO,请转到Cloudflare控制面板中的速度>优化。
要启用APO,导航至速度>优化。
向下滚动到“优化交付”部分,启用“WordPress自动平台优化”。如果您使用的是免费计划,Cloudflare将在此期间提示您提供您的账单详情。启用APO后,你应该会看到一条消息“在[你的域]上成功检测到WordPress插件”。如果您没有看到此消息,我们建议您重新安装Cloudflare插件或联系Cloudflare支持以获得进一步的帮助。
在Cloudflare dashboard中为WordPress启用自动平台优化
在你的WordPress仪表盘中,进入侧边栏中的设置> Cloudflare。点击“为WordPress应用推荐的Cloudflare设置”旁边的应用按钮,这将优化你的WordPress的cloud flare设置。最后,确保在插件设置中也启用了“自动平台优化”。
Cloudflare WordPress插件设置
如何确认用于WordPress的Cloudflare APO是否正常工作?
此时,Cloudflare自动平台优化应该在您的站点上处于活动状态!以下是如何确认APO是否正常工作。首先,确保Cloudflare的DNS选项卡中的橙色云为你的WordPress站点的域启用。如果橙色云未启用,Cloudflare将不会为您的域代理流量,这意味着APO将无法正常工作。
确认Cloudflare橙色云已启用。
如何使用浏览器检查器检查Cloudflare APO缓存状态
接下来,您可以使用Web浏览器的内置检查器来检查对您的网站的请求的HTTP标头。我们将在下面的例子中使用谷歌浏览器。首先,在隐藏模式下启动一个新的浏览器窗口。
在谷歌浏览器中开启一个新的隐形窗口
接下来,进入你的WordPress站点,右键点击页面,然后选择“Inspect”打开浏览器检查器。您也可以通过进入Chrome更多按钮菜单栏中的更多工具>开发者工具来访问检查器。单击您的域的请求(在以下示例中为brianwp.com)。在子菜单中,单击标题以显示HTTP响应标题。
使用浏览器检查器检查Cloudflare缓存状态。
启用APO后,您应该会看到一些与APO相关的标题。
Cf-apo-via指示在哪里提供请求。这个头有几个可能的值———“原点、无缓存”、“原点、旁路”和“缓存”。如果看到这个头的“origin,no-cache”值,说明源服务器已经向Cloudflare发送了“Cache-Control: no-cache”头。“origin,bypass”的值表示绕过Cloudflare的HTML缓存,从源提供请求。最后,“cache”值表示请求是从Cloudflare的缓存中提供的。
Cf-cache-status表示页面是否由Cloudflare的CDN提供。刷新页面几次后,您应该会看到“点击”状态。如果您的cf-cache-status标头在几次刷新后显示“DYNAMIC ”,则可能是由于配置错误或与cookie相关的不兼容性而绕过了APO。
Cf-edge-cache根据来自原始服务器的缓存指令指示页面的缓存兼容性。这个头有两个可能的值——“无缓存”和“缓存,平台=wordpress”。当使用Cloudflare WordPress插件正确配置APO时,该标题将为不应缓存的页面返回“no-cache ”,为可以缓存的页面返回“cache,platform=wordpress”。
Age表示页面在Cloudflare的CDN中缓存的秒数。
如果你在查看WordPress网站时看到上面的标题,这意味着APO已经设置好了。现在,进行速度测试,看看你的网站有多快!
如何使用curl检查Cloudflare APO缓存的状态
您也可以在终端中使用下面的curl命令来确认Cloudflare APO是否正常工作。注意,这个命令传递了一个“Accept: text/html”头。检查APO缓存的状态时,这是必要的。
curl –request GET -I -H “Accept: text/html” https://www.website.com
运行该命令后,您应该会看到如下所示的响应头列表。如您所见,cf-cache-status、cf-apo-via、cf-edge-cache和age头显示请求由Cloudflare的缓存提供服务。
使用curl检查Cloudflare APO缓存状态。
无Cloudflare插件的APO自动平台优化
Cloudflare建议自动平台优化与官方Cloudflare WordPress插件一起使用。这也是我们推荐的方法,因为它可以确保您从APO获得最大的性能优势。如果您的网站与Cloudflare WordPress插件不兼容,我们建议您与开发人员合作,使您的网站兼容。
如果你真的不能安装Cloudflare插件,你可以使用没有插件的APO。如果选择这种方法,您仍然可以利用一些性能优化,但是有几个重要的限制需要注意。
带有WordPress插件的Cloudflare APO
安装Cloudflare WordPress插件后,自动平台优化提供了以下HTML边缘缓存功能。
具有30天TTL的HTML边缘缓存。
文章发布或更新后30秒内缓存失败。
为登录用户绕过HTML缓存。
绕过某些cookie的HTML缓存(比如WooCommerce)。
如果可以从Cloudflare的CDN提供页面,则跳过对源服务器的请求。这减少了源服务器上的负载。
不带WordPress插件的Cloudflare APO
如果没有安装Cloudflare WordPress插件,您可能会看到以下APO HTML边缘缓存功能。
具有30天TTL的HTML边缘缓存。
缓存将在30分钟后过期(而不是30秒)。
绕过某些cookie的HTML缓存(比如WooCommerce)。
为了提供正确的缓存失效逻辑,仍然需要向源服务器发送请求。
正如你所看到的,在官方Cloudflare WordPress插件中使用自动平台优化有几个优点。
总结
WordPress的Cloudflare自动平台优化无疑是近期历史上最重要的提升WordPress性能的服务。它超越了通常的Web服务器优化、服务器端页面缓存和CSS/JS缩减策略,呈现了一些全新的东西。
WordPress自成立以来,一直受限于在CDN上缓存HTML页面没有一个简化简单的方法。凭借其150多个数据中心、工人和工人KV的网络,Cloudflare用尖端的框架设计拉平了WordPress站点和静态站点之间的性能竞争环境。
这是一个不小的壮举,我们期待看到Cloudflare如何在未来将其自动平台优化功能扩展到其他CMS平台。