标签: CDN加速

  • 如何为WordPress设置Cloudflare APO – 将性能提升高达300%

    如何为WordPress设置Cloudflare APO - 将性能提升高达300%

    对于性能爱好者来说,Cloudflare的APO代表着在最大化WordPress性能方面向前迈出了一大步。

    在我们的基准测试中,我们发现在我们的测试站点上启用APO可以将页面加载时间减少70-300%,具体取决于测试位置。

    在本文中,我们将深入探讨Cloudflare APO的工作原理以及如何使用它来提高WordPress网站的性能!

    1. 什么是自动平台优化 (APO)?
    2. 边缘的静态HTML
    3. 2022年Web性能状况
    4. Cloudflare的自动平台优化如何工作
    5. 使用高性能托管和Cloudflare APO最大限度地提高WordPress性能
    6. 如何为WordPress使用Cloudflare自动平台优化
    7. 如何确认适用于WordPress的Cloudflare APO是否正常工作
    8. 不使用Cloudflare插件的自动平台优化

    什么是自动平台优化 (APO)?

    Automatic Platform Optimization(以下简称APO)是Cloudflare提供的一套新的一键式平台定制优化服务。

    第一个接受“APO待遇”的平台是WordPress,它是全球最受欢迎的CMS,市场份额超过60%。未来,我们希望看到类似的APO服务适用于其他CMS和平台。

    在较高的层面上,Cloudflare的WordPress APO通过两种主要方式提高了网站性能。

    1. WordPress站点页面的静态HTML副本缓存在全球各地的Cloudflare边缘服务器中。
    2. 第三方字体由Cloudflare缓存和提供。

    让我们深入了解一下APO在技术层面上的工作方式和原因。

    边缘的静态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。

    没有CDN的页面缓存

    这可以释放您的CPU以专注于其他重要的动态任务,并使您的WordPress网站更加稳定。虽然此配置可能允许您的站点每秒处理更多请求,但它并不能解决“距离问题”。

    如果没有合适的CDN,向遥远的访问者提供静态资产仍然是一个问题。

    WordPress设置 #3 – 使用CDN进行页面缓存

    到目前为止,添加用于提供静态资产的CDN的页面缓存是托管WordPress网站的最高效方式。

    在这个模型中,源服务器仍然负责为页面提供实际的HTML。但是,CSS文件、图像和字体等静态资产被卸载到世界各地的各种CDN存在点 (PoP)。该模型背后的想法是静态资产,尤其是大图像,构成请求页面大小的大部分. 因此,通过将资产卸载到更靠近访问者的服务器,可以减少加载时间并提高性能。

    使用CDN的全球流量路由

    使用CDN的全球流量路由

    虽然此配置比前两个配置提供了显着改进,但它确实让您想知道如果WordPress性能不再因必须从源服务器提供HTML而成为瓶颈,会发生什么。

    令人惊讶的是,在为WordPress引入Cloudflare的APO之前,这样的设置是不可行的——至少对于非技术用户来说是不可行的。

    WordPress设置 #4 – 适用于WordPress的Cloudflare APO

    Cloudflare APO是世界上最新的WordPress性能优化解决方案。与之前受源站服务器性能限制的WordPress设置不同,启用APO的站点从访问者的角度来看基本上变得“无源”。

    使用Cloudflare APO进行全球流量路由

    使用Cloudflare APO进行全球流量路由

    为此,Cloudflare利用其全球分布的CDN以及Workers/Workers KV来创建您的WordPress站点的静态HTML表示。我们将在本文后面深入了解Cloudflare APO的工作原理。

    现在,只要知道启用了APO的兼容WordPress站点不再受制于来源引起的延迟。换句话说,来自美国、德国和日本的访问者的请求将由附近的数据中心而不是您的源服务器提供服务。

    2022年Web性能状况

    在过去的几年里,专业的Web开发行业发生了很大的变化。越来越多的开发人员正在从WordPress这样的单体架构转向更灵活和高性能的静态站点生成器,比如Hugo和JavaScript框架,比如Gatsby

    我们明智地使用“性能”一词,因为Web性能通常可以被解释为一个主观指标。

    例如,页面的加载时间可能会根据测试位置和一天中的时间而波动。

    因此,一味地说Gatsby静态网站比WordPress网站快是没有任何意义的,直到建立了一些论证的上下文。

    在当今高度连接的世界中,Web性能测试最重要的环境之一是世界不同地区的加载时间。

    这就是静态网站在性能方面优于WordPress的地方。默认情况下,静态站点可以直接上传到全球分布的CDN——这使得它们在全球范围内快速传播,无需任何额外工作。

    由于WordPress站点需要某种类型的源服务器来生成HTML,因此它无法直接利用Netlify、Vercel和Cloudflare自己的Workers Sites等平台进行无摩擦的全球交付。从业务角度来看,这意味着您可能会失去远离原始服务器的潜在访问者和客户,因为Google在生成搜索结果时会考虑页面速度。

    这就是Cloudflare的WordPress APO发挥作用的地方。

    启用Cloudflare APO将WordPress性能提高了300%

    启用Cloudflare APO将WordPress性能提高了300%

    Cloudflare的WordPress自动平台优化是对2022年WordPress性能意味着什么的彻底重新思考。正如我们之前提到的,在我们的测试站点上启用APO可将加载时间从70%减少到300%,具体取决于测试位置。这是可能的,因为APO有效地消除了作为性能瓶颈的源服务器。

    Cloudflare的自动平台优化如何工作

    使用Cloudflare APO,您的WordPress站点的HTML缓存在Cloudflare的全球边缘服务器中。这可以通过Workers KV实现,这是一种分布式键值数据库服务,具有超快的全局传播(不到60秒)。

    当数据通过Cloudflare API写入Workers KV时,它会在几秒钟内自动复制到全球150多个Cloudflare数据中心。

    这使得Workers KV成为加速WordPress网站的主要候选者,因为文章和页面可以很容易地用键值机制表示——URL是“键”,HTML页面内容是“值”。

    在Cloudflare Workers KV中存储为键值对象的网页

    在Cloudflare Workers KV中存储为键值对象的网页

    为您的WordPress站点启用APO后,对您站点的大多数请求将不再访问您的源服务器。

    相反,请求将从本地Cloudflare CDN缓存(如果缓存页面存在)或Workers KV(如果缓存页面在Cloudflare的CDN上不存在)提供。

    如果CDN缓存或Workers KV数据库中不存在页面,则Cloudflare将向您的源服务器发出单个请求并缓存新页面的HTML。

    这里的神奇之处在于Cloudflare Workers KV充当您的源服务器的某种分布式镜像。回想一下,存储在Workers KV中的数据会在Cloudflare的整个服务器网络中自动复制。

    这意味着即使您运行WordPress的源服务器位于美国某处,来自日本的访问者的请求也不需要访问您的源服务器来启动本地CDN缓存区域。

    相反,来自日本的访问者将获得来自附近Cloudflare数据中心的Workers KV数据库或CDN缓存的缓存HTML。

    这种新的交付模型与以前为WordPress缓存HTML页面的尝试大不相同。 

    以前,最流行的“整页缓存”方法涉及创建Cloudflare页面规则来“缓存所有内容”。虽然这种方法可以显着提高性能,但它并不是一种非常有效的缓存方法,因为它依赖于“拉”模型而不是Workers KV的“推”模型,后者会自动在全球范围内推送HTML。

    通过上一页基于规则的设置,访问美国Cloudflare缓存区的访问者不会为其他位置的访问者缓存资产——这意味着从全球内容交付的角度来看,网站无法有效利用Cloudflare的网络。

    自动平台优化通过缓存第三方字体更进一步。在许多情况下,字体最终会占据页面请求大小的很大一部分。

    与通常从根域提供的CSS、JS和图像不同,字体通常来自第三方服务,如Google Fonts。这意味着Cloudflare等基于代理的缓存服务无法缓存字体和提供字体。

    由于APO由Cloudflare Worker(位于源服务器和访问者之间的可编程JavaScript服务工作者)提供支持,因此可以注入额外的逻辑来完成基本缓存之外的任务。

    在这种情况下,APO使用Cloudflare Worker来缓存第三方字体并使用内联CSS修改页面的HTML,以指向Cloudflare CDN上的缓存字体。这消除了获取字体的额外外部请求的需要,并减少了服务页面所需的连接数量和加载时间。

    最后,由于APO通过WordPress插件与您的站点集成,因此每当您更新站点上的页面时,都会自动清除Cloudflare缓存。这可确保访问者始终能够看到您网站的最新版本,而无需任何人工干预。

    使用高性能托管和Cloudflare APO最大限度地提高WordPress性能

    然而,Cloudflare APO并不是灵丹妙药。选择以性能为中心的WordPress主机仍然非常重要,主要有两个原因。

    1. Cloudflare APO仅缓存未登录用户的前端页面。与服务器级页面缓存配置类似,APO不会缓存具有特定cookie和已登录用户的页面。这意味着原始服务器性能仍然是等式的关键部分。
    2. 出色的WordPress体验不仅仅包括快速的前端性能。由于WordPress本质上是一个动态CMS,因此在运营WordPress网站时需要考虑许多因素。

    这里有四个用例展示了为什么即使您使用Cloudflare APO仍应选择高性能WordPress主机。

    1. WooCommerce, Easy Digital Downloads和电子商务

    当检测到某些与电子商务相关的cookie时,Cloudflare APO会选择性地绕过缓存。例如,当访问者在WooCommerce网站上将商品添加到购物车时,WordPress会自动设置woocommerce_items_in_cart cookie。当检测到此cookie时,APO会绕过缓存以避免缓存和提供客户特定的数据。因此,即使启用了自动平台优化,WooCommerce和其他基于WordPress的电子商务平台仍将严重依赖原始服务器的性能。

    2. WordPress仪表盘性能

    由于Cloudflare APO不会为登录用户缓存HTML,因此在WordPress仪表盘中导航将始终完全依赖于您的源服务器性能。如果您没有使用性能优化的主机,那么在您的WordPress网站上编写和发布内容、管理图像和其他媒体资产以及运行维护例程等任务可能会变成非常缓慢的体验。这会对您的业务成果产生直接的负面影响。

    3. WordPress会员网站和论坛

    如果您使用Ultimate Membership Pro之类的插件来管理您的WordPress会员网站,或者使用bbPress来支持WordPress论坛,Cloudflare APO将无法优化您的大部分流量。由于会员网站和论坛通常需要用户登录,Cloudflare APO将自动绕过这些用户的HTML缓存。因此,使用高性能主机仍然是WordPress会员网站和论坛保持快速用户体验的最佳方式。

    4. WordPress Cron作业

    WordPress cron (WP-Cron)可帮助您在WordPress网站上安排和自动化后端任务。您的站点可能会使用cron作业在特定时间发布文章。像这样的简单任务在CPU资源方面不需要太多,但其他任务可能会占用更多资源。例如,使用备份插件每12小时自动将您的WordPress站点备份到ZIP存档之类的任务会占用更多CPU。

    由于Cloudflare APO仅有助于优化前端内容,因此您仍需要将站点托管在高性能主机上,以最大限度地提高后端任务的性能和登录用户体验。

    如何为WordPress使用Cloudflare自动平台优化

    既然我们已经讨论了为什么Cloudflare WordPress自动平台优化会改变游戏规则,那么让我们来看看如何将服务添加到您的WordPress网站。

    APO适用于Cloudflare免费和付费计划。对于免费的Cloudflare用户,需要额外支付5美元/月的APO费用。如果您在Cloudflare上使用Pro、Business或Enterprise计划,则可以免费启用APO。

    以下是开始使用Cloudflare APO所需的操作:

    1. 在Cloudflare仪表盘中创建API令牌。
    2. 安装官方Cloudflare WordPress插件。
    3. 启用自动平台优化。

    1. 创建Cloudflare API令牌

    在启用APO之前,您需要先生成API令牌并安装Cloudflare WordPress插件。要生成API令牌,请单击Cloudflare仪表盘右上角的个人资料图标,单击“My Profile”,选择“API Tokens”选项卡,然后单击Create Token

    创建Cloudflare API令牌

    创建Cloudflare API令牌

    在“API Token Templates”下,单击WordPress选项旁边的Use Template

    选择WordPress API令牌模板

    选择WordPress API令牌模板

    “WordPress”模板将生成一个具有必要权限的API令牌,以允许自动平台优化正常运行。默认设置是您开始使用APO所需的全部,但如果您需要将API令牌锁定到特定用户或区域,请随意调整“Account Resources”和“Zone Resources”设置。

    完成令牌参数配置后,向下滚动并单击Continue to Summary

    配置Cloudflare API令牌参数

    配置Cloudflare API令牌参数

    最后,单击Create Token以完成该过程。

    确认Cloudflare API令牌的创建

    确认Cloudflare API令牌的创建

    请务必将API令牌复制到安全位置。稍后安装Cloudflare WordPress插件时将需要它。将API令牌记录在密码管理器等安全位置后,请随时关闭页面。

    在安全的地方记录您的Cloudflare API令牌

    在安全的地方记录您的Cloudflare API令牌

    2. 安装Cloudflare WordPress插件

    Cloudflare WordPress插件可以直接从WordPress插件库安装。要找到它,请在WordPress仪表盘中搜索“Cloudflare”。请务必安装官方Cloudflare插件,而不是“WP Cloudflare Super Page Cache”,这是第一个搜索结果。

     

    安装官方Cloudflare WordPress插件

    安装官方Cloudflare WordPress插件

    接下来,转到WordPress仪表盘侧边栏中的设置 > Cloudflare,然后单击“Sign in Here”。

    登录您的Cloudflare帐户

    登录您的Cloudflare帐户

    输入与您的Cloudflare帐户关联的电子邮件地址以及您之前生成的API令牌。单击Save API Credentials以完成登录过程。

    输入您的电子邮件地址和Cloudflare API令牌

    输入您的电子邮件地址和Cloudflare API令牌

    现在Cloudflare WordPress插件已全部设置完毕,让我们前往Cloudflare仪表盘以启用自动平台优化。

    3. 在Cloudflare中启用自动平台优化

    Cloudflare Pro、Business和Enterprise计划中包含WordPress的自动平台优化,无需额外费用。如果您使用免费的Cloudflare计划,则APO附加组件每月5美元。要启用APO,请转到Cloudflare仪表盘中的Speed > Optimization

    启用APO

    要启用APO,请导航到Speed > Optimization

    向下滚动到“Optimized Delivery”部分,并启用“Automatic Platform Optimization for WordPress”。如果您使用的是免费计划,Cloudflare将在此期间提示您提供账单详细信息。启用APO后,您应该会看到一条消息“WordPress plugin successfully detected on [your domain]”。如果您没有看到此消息,我们建议您重新安装Cloudflare插件或联系Cloudflare支持以获得进一步帮助。

    在Cloudflare仪表盘中为WordPress启用自动平台优化

    在Cloudflare仪表盘中为WordPress启用自动平台优化

    在您的WordPress仪表盘中,转到侧栏中的设置 > Cloudflare。单击“Apply Recommended Cloudflare Settings for WordPress”旁边的Apply按钮——这将优化您的WordPress的Cloudflare设置最后,确保在插件设置中也启用了“Automatic Platform Optimization”。

    Cloudflare WordPress插件设置

    Cloudflare WordPress插件设置

    如何确认适用于WordPress的Cloudflare APO是否正常工作

    此时,Cloudflare自动平台优化应该在您的站点上处于活动状态!以下是确认APO是否正常工作的方法。首先,确保为您的WordPress站点的域启用了Cloudflare的DNS选项卡中的橙色云。如果未启用橙色云,Cloudflare将不会为您的域代理流量——这意味着APO将无法正常工作。

    确认Cloudflare橙色云已启用

    确认Cloudflare橙色云已启用

    如何使用浏览器检查器检查Cloudflare APO缓存状态

    接下来,您可以使用Web浏览器的内置检查器检查对您网站的请求的HTTP标头。我们将在下面的示例中使用Google Chrome。首先,在隐身模式下启动一个新的浏览器窗口。

    在Google Chrome中启动一个新的隐身窗口

    在Google Chrome中启动一个新的隐身窗口

    接下来,转到您的WordPress站点,右键单击该页面,然后选择“Inspect”以打开浏览器检查器。您还可以通过转到Chrome更多按钮菜单栏中的更多工具 > 开发者工具来访问检查器单击对您的域的请求(下例中的brianwp.com)。在子菜单中,单击“Headers”以显示HTTP响应标头。

    使用浏览器检查器检查Cloudflare缓存状态

    使用浏览器检查器检查Cloudflare缓存状态

    启用APO后,您应该会看到一些与APO相关的标头。

    • cf-apo-via指示从何处提供请求。此标头有几个可能的值——“origin, no-cache”、“origin, bypass”和“cache”。如果您看到此标头的“origin, no-cache”值,则表示源服务器已向Cloudflare发送了“Cache-Control: no-cache”标头。“origin, bypass” 值表示Cloudflare的HTML缓存被绕过,请求是从源端提供的。最后,“cache”值表示请求是从Cloudflare的缓存中提供的。
    • cf-cache-status指示页面是否从Cloudflare的CDN提供。刷新页面几次后,您应该会看到“HIT”状态。如果您的cf-cache-status标头在几次刷新后显示“DYNAMIC”,则可能是由于配置错误或与cookie相关的不兼容而绕过了APO。
    • cf-edge-cache根据来自您的原始服务器的缓存指令指示页面的缓存兼容性。此标头有两个可能的值——“no-cache”和“cache, platform=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-statuscf-apo-viacf-edge-cacheage标头显示请求由Cloudflare的缓存提供服务。

    使用curl检查Cloudflare APO缓存状态

    使用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(如WooCommerce)的HTML缓存。
    • 如果可以从Cloudflare的CDN提供页面,则跳过对源服务器的请求。这减少了源服务器上的负载。

    没有WordPress插件的Cloudflare APO

    如果未安装Cloudflare WordPress插件,您可能会看到以下APO HTML边缘缓存功能。

    • 具有30天TTL的HTML边缘缓存。
    • 缓存在30分钟内失效(而不是30秒)
    • 绕过某些cookie(如WooCommerce)的HTML缓存。
    • 为了提供正确的缓存失效逻辑,仍然需要向源服务器发出请求。

    如您所见,将自动平台优化与官方Cloudflare WordPress插件一起使用有几个优点。

    小结

    WordPress的Cloudflare自动平台优化无疑是近期历史上提升WordPress性能的最重要服务。它超越了通常的Web服务器优化、服务器端页面缓存和CSS/JS缩小策略,并呈现了一些全新的东西。

    自成立以来,WordPress一直受到以下事实的限制:在CDN上缓存HTML页面没有一种简化且简单的方法。通过利用其由150多个数据中心、Workers和Workers KV组成的网络,Cloudflare在WordPress站点和采用尖端框架设计的静态站点之间拉平了性能竞争环境。

    这是一项不小的壮举,我们期待看到Cloudflare在未来如何将其自动平台优化功能扩展到其他CMS平台

  • WordPress上CDN加速能够极大地提升网站速度体验

    WordPress上CDN加速能够极大地提升网站速度体验

    网站速度方面的必备条件之一是内容交付网络 (CDN)。CDN减轻了您的Web服务器的负担,并加快了向所有站点访问者的内容交付。结果,从您的用户体验到搜索引擎潜力的一切都得到了改善!开始学习该主题的一个好方法是激活WordPress CDN。

    在本文中,我们将解释将CDN添加到WordPress网站的最简单方法。但在此之前,我们概述了CDN的基本定义为什么要使用CDN,以及一些额外的好处。我们还将分享一些速度测试,以便您更好地判断您希望在您的网站上看到多少性能提升。

    1. 什么是WordPress CDN?
    2. CDN的工作原理
    3. CDN的好处
    4. CDN速度测试:使用CDN与不使用CDN
    5. 您需要CDN吗?
    6. 流行的CDN提供商
    7. 如何在WordPress中安装 CDN

    什么是WordPress CDN?

    CDN是Content Delivery Network的缩写。这些是位于全球的服务器网络(也称为POP)。它们旨在托管和交付WordPress站点的静态(有时是动态)内容的副本,例如图像、CSS、JavaScript和视频流。

    CDN的工作原理

    首先,您不想让CDN与您的WordPress托管公司混淆。这些是完全不同的服务。CDN不是您的托管服务提供商的替代品,而是提高网站速度的另一种方式。虽然有可能您的网站托管速度非常快,但CDN可以让您的网站更快。

    CDN究竟是如何工作的?例如,当您托管网站时,您必须选择物理数据中心位置,例如美国中部、欧洲、南美或亚洲。假设您选择美国中部。

    这意味着您的网站实际上位于爱荷华州康瑟尔布拉夫斯的“主机服务器”上。当欧洲人访问您的网站时,加载时间比从德克萨斯州达拉斯访问的人要长。为什么?因为数据必须传播更远的距离。

    这就是所谓的延迟。延迟是指通过网络传输数据所涉及的时间和/或延迟。距离越远,延迟越大。

    这就是CDN发挥作用的地方。它通过从更靠近它们的服务器加载站点的内容来帮助减少延迟。这些CDN服务器有时称为POP(存在点)。

    CDN可减少延迟

    CDN可减少延迟,从而更快地向最终用户交付内容

    WordPress用户有时不愿意研究内容交付网络,因为它们听起来太复杂了。但是CDN的功能相对简单。以下是它们的工作方式,可以通过三个简单的步骤实现:

    第1步

    您注册一个带有免费CDN的托管服务提供商或选择一个单独的CDN提供商并订阅他们的服务。第三方CDN提供商通常会根据数据使用情况提供免费和高级计划。

    第2步

    您在您的网站上激活CDN。您可以为第三方CDN安装一个免费插件,如CDN EnablerWP Rocket来集成它。

    这些插件会自动将您的资产链接到CDN。您无需做任何工作即可将您的内容放到 CDN 上;这都是放手的!部署 CDN 比以前容易得多。

    第3步

    当人们访问您的网站时,它会从全球不同的服务器加载您的WordPress网站的内容。欧洲的访问者从欧洲的服务器接收您的网站内容,而美国的访问者从距离他们更近的美国服务器获得相同的内容。

    CDN如何实现这一目标?

    CDN通常使用两种技术将用户路由到正确的位置:IP Anycast + 地理位置路由。他们可以自动检测用户请求的来源并将请求路由到最近的服务器。

    但是,为您的WordPress主机选择战略服务器位置仍然至关重要。因为即使CDN有助于分发您的媒体和内容,当您的网站被加载时,仍然需要向托管服务提供商发出一个请求——除非您在代理服务器上使用整页缓存,我们稍后将对此进行介绍。

    CDN的好处

    以下是在您的WordPress网站上使用CDN的诸多好处。

    1. 性能提升

    性能提升是使用CDN的最大原因之一。已经反复证明,更快的加载网站与更高的转化率、更低的跳出率和更长的平均访问者持续时间相关——更不用说更好的用户体验了。

    您最后一次因为网站加载时间过长而在浏览器中点击返回是什么时候?这是网站所有者最不想发生的事情。但不要相信我们的话。以下是行业领导者关于网站性能重要性的一些统计数据:

    • 页面响应延迟1秒会导致转化率降低7%。(来源:Kissmetrics
    • BBC发现,网站加载后每多一秒钟就有10%的用户离开他们的网站。(来源:创意博客
    • 加载时间每延迟一秒,转化率就会降低多达20%。(来源:ThinkWithGoogle
    • 在将页面加载时间减少近40%后,Pinterest的注册量增加了15%。(来源:Pinterest Engineering on Medium

    以下是CDN可以帮助提高WordPress网站性能的几种方法。

    减少TTFB

    我们已经在上面提到,WordPress CDN可以通过缩短数据传输所需的物理距离来帮助减少延迟。但它也可以帮助您缩短第一个字节(TTFB) 的时间。

    这测量浏览器在从服务器接收到第一个数据字节之前等待的时间。获取该数据所需的时间越长,显示您的页面所需的时间就越长。

    CDN可以帮助减少TTFB

    CDN可以帮助减少TTFB

    一个常见的误解是TTFB是在DNS查找时间之后计算的。但是,原始网络中TTFB的计算总是包括网络延迟。这涉及一个3步过程,因此延迟和延迟可能会发生在两者之间的任何地方,从而增加您的总TTFB。

    高TTFB可能由多种原因引起,例如糟糕的代码或主机服务器上配置错误的缓存。但地理距离是一个问题。

    我们进行了两项测试,以显示使用和不使用Cloudflare的TTFB的差异。我们每个测试运行5次,然后取平均值。

    测试 1:没有CDN的 TTFB

    我们首先在禁用CDN的情况下运行了Pingdom测试。结果如下:

    • 总加载时间为1.45 s
    • 平均TTFB约为136毫秒

    添加CDN之前的TTFB

    添加CDN之前的TTFB

    测试 2:TTFB与CDN

    然后我们启用了CDN并再次运行测试:

    • 总加载时间降至788毫秒
    • 平均TTFB提高到37毫秒

    CDN能带来多大的改变!

    另一个需要注意的重要事项是,我们选择了斯德哥尔摩地点来执行此测试。为什么?因为我们想向您展示通过减少物理距离可以实现的真正改进。斯德哥尔摩有一个CDN POP,所以我们的内容是从斯德哥尔摩提供的。

    添加CDN后的TTFB

    添加CDN后的TTFB

    通过缓存更快地交付

    与您在WordPress主机或插件中使用缓存的方式类似,CDN也使用缓存。这是他们可以如此快速地交付文件的一种方式。

    重要提示:一旦CDN获得您的媒体副本,访问者通常必须请求一次或两次,然后才能将其缓存在CDN上。CDN在请求上放置一个名为“X-Cache”的HTTP标头。该文件通常在第一个或第二个请求中显示为MISS,这意味着它尚未缓存。

    CDN未缓存 (MISS)

    CDN未缓存 (MISS)

    在后续请求中,它显示为HIT,现在缓存在您的CDN上。它将根据各种因素(例如ETag标头、过期标头或手动清除CDN缓存)保持缓存。

    CDN缓存 (HIT)

    CDN缓存 (HIT)

    使用诸如Cloudflare之类的CDN,您可以利用所谓的全页反向代理缓存将缓存提升到一个新的水平。这涉及在一个主 URL 而不是辅助域上缓存所有内容。

    使用GZIP压缩节省大量成本

    WordPress CDN还利用GZIP,一种用于文件压缩和解压缩的文件格式和软件应用程序。GZIP压缩在服务器端(或CDN服务器/POP)启用,进一步减小了HTML、样式表和JavaScript文件的大小。

    它不适用于图像,因为它们已经以不同的方式压缩。由于压缩,有些人已经看到了高达70%的减少。这是您可以进行的最直接的优化之一。不用担心,所有信誉良好的CDN都默认启用此功能。

    HTTP/2

    HTTP/2也是所有CDN用来加速资产交付的主要功能之一。性能提升是由于各种原因,例如协议能够支持更好的多路复用、并行性、Huffman编码的HPACK压缩、ALPN扩展和服务器推送。

    2. 降低带宽成本

    CDN的另一个好处是它可以帮助从您的托管服务器(源服务器)卸载CPU和资源。这有助于:

    • 防止流量高峰使您的主机不堪重负
    • 降低整体带宽成本
    • 消除由于流量波动导致的带宽费用波动

    您最不想要的就是让某些东西像病毒一样传播开来,而您却要从房东那里收到高额账单或超额费用。

    CDN帮助降低成本的另一种方法是提供简单的方法来启用盗链保护。这是指限制HTTP引用并防止其他人将您的资产嵌入其他网站。

    你们中的一些人可能听说过赫芬顿邮报的惨败。《赫芬顿邮报》的一位作者从Oatmeal的网站复制并粘贴了图像,该网站从AWS累积了1,000美元的账单,该账单已发送给Oatmeal的网站所有者。Oatmeal的所有者最终替换了这些图像,以便赫芬顿邮报文章的读者可以看到它们。

    防盗链

    防盗链

    这就是为什么始终必须启用盗链保护的原因。否则,您最终可能会收到一笔离谱的账单。

    3. 高可用性和可扩展性

    CDN提供高可用性和可扩展性。由于复制的内容可以跨不同地理位置的多个POP访问,因此如果一个服务器出现故障,Web流量会动态路由到另一台服务器。无需担心可扩展性,因为CDN提供商在构建时就考虑到了这一点。如果您使用较小的共享主机,CDN可以防止您的网站崩溃,因为它可以处理大部分负载。

    4. SEO优势

    谷歌早在2010年就将网站速度作为排名因素,因此更快的网站可以带来更高的排名已经不是什么秘密了。虽然无法知道速度对速度有多大影响,但您可以放心地假设它是更关键的因素之一,因为它会影响用户体验。

    Brian Dean分析了前100万个域名,以查看网站速度与Google排名之间的关系, 并发现了正相关关系。虽然这些测试几乎无法证明,但您可以放心,拥有更快的网站只会在Google中帮助您。简而言之,谷歌奖励快速网站。

    网站速度 - 谷歌排名

    网站速度 – 谷歌排名

    除了网站页面的速度之外,CDN还有助于提高媒体的抓取速度,例如图片,这与Google图片搜索中的索引相关。

    5. 额外的安全性

    许多CDN通过允许您实施Web应用程序防火墙 ( WAF ) 和一些所谓的Origin shields来提供额外的安全性。这些可以帮助:

    • 缓解各种形式和规模的DDoS攻击,包括针对UDP和ICMP协议的攻击
    • 阻止SYN/ACK、DNS放大和第7层攻击
    • 将您的网站放在代理后面,该代理会隐藏您的原始IP地址,尽管它不是防弹的

    查看我们关于如何阻止DDoS攻击的案例研究。我们的客户拥有一个运行Easy Digital Downloads的小型电子商务网站,该网站在7天内对单个页面的请求超过500万次

    该站点通常每天仅产生30-40 MB的带宽和数百名访问者。但该网站突然间突然达到了每天15-19GB 的数据传输量!这增加了4650%。谷歌分析显示没有额外的流量。这不好。

    DDoS攻击

    DDoS攻击

    客户在他们的站点上实施了Sucuri的Web应用程序防火墙,所有带宽和请求都立即丢弃在站点上(如下所示),此后再也没有出现过任何问题。因此,如果您遇到此类问题,这是一项很好的投资和节省时间的方法。

    添加WAF防火墙

    CDN还提供额外的安全功能,例如安全令牌,允许您生成具有过期时间的安全链接。过期后,用户将无法再访问该内容。

    CDN速度测试:使用CDN与不使用CDN

    让我们做一些测试来向您展示结果,而不是仅仅告诉您WordPress CDN的好处。

    • 我们从4个不同的测试位置运行了5次测试,启用了CDN,然后没有启用CDN。
    • 该站点使用免费的Cloudflare。
    • 服务器的物理位置在美国爱荷华州。

    重要提示:当您对CDN进行速度测试时,请运行几次以缓存媒体。正如我们之前关于CDN缓存所描述的,X-Cache HTTP标头在缓存后将显示“HIT”。如果它没有被缓存,它会显示一个“MISS”。如果您没有正确执行此操作,那么当您没有先建立缓存时,CDN可能无法帮助您加快网站速度。

    没有CDN(美国德克萨斯州达拉斯)

    我们首先使用达拉斯的一台没有CDN的服务器运行了5次Pingdom测试。然后我们取平均值。

    没有使用达拉斯服务器进行CDN测试

    没有使用达拉斯服务器进行CDN测试(来源:Pingdom)

    没有CDN(澳大利亚墨尔本)

    然后,我们使用没有CDN的澳大利亚墨尔本服务器运行了5次Pingdom测试。也取了平均值。

    没有使用澳大利亚服务器的CDN测试

    没有使用澳大利亚服务器的CDN测试(来源:Pingdom)

    没有CDN(美国加利福尼亚州圣何塞)

    然后,我们在加利福尼亚州圣何塞进行了5次没有CDN的Pingdom测试,并取平均值。

    没有来自圣何塞服务器的CDN测试

    没有来自圣何塞服务器的CDN测试(来源:Pingdom)

    没有CDN(瑞典斯德哥尔摩)

    我们在瑞典斯德哥尔摩进行了5次没有CDN的Pingdom测试,并取了平均值。

    没有在瑞典使用服务器进行CDN测试

    没有在瑞典使用服务器进行CDN测试(来源:Pingdom)

    使用CDN(美国德克萨斯州达拉斯)

    作为比较,我们使用德克萨斯州达拉斯服务器上的活动CDN运行了5次Pingdom测试。之后取平均值。

    使用达拉斯服务器使用CDN进行测试

    使用达拉斯服务器使用CDN进行测试(来源:Pingdom)

    使用CDN(澳大利亚墨尔本)

    然后,我们使用来自澳大利亚墨尔本服务器的CDN运行了5次Pingdom测试,然后取平均值。

    用CDN测试澳大利亚

    用CDN测试澳大利亚(来源:Pingdom)

    使用CDN(美国加利福尼亚州圣何塞)

    我们还使用加利福尼亚州圣何塞的服务器对CDN进行了5次Pingdom测试并取平均值。

    使用San Jose服务器进行CDN测试

    使用San Jose服务器进行CDN测试(来源:Pingdom)

    使用CDN(瑞典斯德哥尔摩)

    我们为具有活动CDN的Stockholm服务器运行了5次Pingdom测试。然后取平均值。

    使用瑞典的服务器进行CDN测试

    使用瑞典的服务器进行CDN测试(来源:Pingdom)

    结果

    让我们看看结果以了解CDN对总加载时间的影响程度。

    CDN速度测试对比

    CDN速度测试对比

    • 美国德克萨斯州达拉斯:使用CDN将总加载时间减少8.11%。
    • 美国加利福尼亚州圣何塞:使用CDN的总加载时间减少33.02%
    • 澳大利亚墨尔本:使用CDN的总加载时间减少了54.19%。
    • 瑞典斯德哥尔摩:使用CDN的总加载时间减少了54.7%。

    CDN在达拉斯和圣何塞站点上产生了稍快的页面加载时间。但是,如果您查看澳大利亚的测试,您会发现加载时间存在巨大差异。这是因为测试服务器的地理位置。

    测试服务器位于爱荷华州,因此在没有来自达拉斯和圣何塞的CDN的情况下加载数据时不会走那么远。但对于澳大利亚来说,距离才是缩短加载时间的关键。

    当我们启用CDN时,来自澳大利亚悉尼的CDN POP的内容和媒体加载,这会导致下载时间大大加快。瑞典斯德哥尔摩也是如此。

    现在,您想在某些情况下将加载时间减少50%以上吗?答案应该是肯定的!

    您需要CDN吗?

    我们经常收到这个问题。根据我们的经验,这不应该是一个问题,因为CDN在几乎所有情况下都是有益的,无论您的网站的大小和流量如何。

    看看我们上面列出的所有好处。价格通常不再是一个因素,因为大多数CDN提供商非常便宜,或者使用免费Cloudflare。更不用说,CDN有助于改善SEO、网站加载、用户体验等等!

    如果您只向特定地理位置的访问者提供内容,您可能需要做一些进一步的测试。

    例如,假设您在加拿大安大略省经营一家带有网站的小商店。也许您不太关心位于其他地方的客户。您需要研究CDN提供商的POP所在的位置。

    如果您的网络服务器主机位于安大略省,但您注册的CDN提供商仅在美国提供最近的POP,则可能会降低您的网站速度。在这种非常罕见的情况下,不使用CDN可能会使您受益。

    有很多很棒的CDN提供商,我们鼓励您探索其他一些顶级 CDN:

    如何在WordPress中安装CDN

    每个CDN提供商都有自己的集成方法,但值得庆幸的是,它们都支持WordPress并使其易于集成。如果您遇到问题,请查看他们的文档或询问他们的支持团队。

    Cloudflare

    如果您正在使用Cloudflare,我们将提供有关如何在您的WordPress网站上安装Cloudflare的深入教程。

    第三方CDN

    如果您正在考虑自己部署CDN,我们建议为您的媒体和资产使用子域,而不是提供商的随机URL。

    示例: cdn.yourdomain.com。

    这将确保更好地为您的网站打造品牌,并在索引问题方面减少麻烦。

    在提供商处设置好CDN后,您可以使用免费的WordPress插件快速链接您的资产并自动将它们复制到您的CDN提供商。在下面查看我们推荐的WordPress CDN插件列表。

    顶级CDN插件和扩展

    Cloudflare

    这些CDN插件不会自动在您的WordPress网站上激活CDN,而是将第三方CDN提供商(如Cloudflare、Fastly或Sucuri)连接到您的WordPress网站,从而允许CDN访问网站资产并将该内容交付给访客。

    总体而言,最好的WordPress CDN插件让您轻松连接,提供一键式解决方案,而不是复杂的集成。

    以下是最好的WordPress CDN插件:

    • Cloudflare:如果使用Cloudflare作为您的CDN提供商,这是正确的选择,特别是因为它提供一键式安装、Web应用程序防火墙设置和自动平台优化工具,可通过250多个快速可靠的数据显着加快站点速度中心。
    • Bunny.net:作为CDN提供商和WordPress CDN插件,Bunny.net提供快速集成来替换链接并将它们添加到您的CDN。通过自动HTTPS配置、自定义CDN主机名以及将特定目录排除在CDN服务之外的能力,您可以获得快速的性能改进。
    • LiteSpeed Cache:首先,这是一个缓存插件。但它还附带免费的QUIC.cloud CDN缓存,或者您可以链接到任何CDN提供商。您可以使用各种功能以及缩小、图像优化和延迟加载来提高网站的性能。
    • W3 Total Cache:许多缓存插件也兼作CDN WordPress插件,W3 Total Cache也不例外。与一些最受欢迎的CDN提供商集成,无需任何复杂设置即可立即提升您的网站性能。这会将媒体项目和主题文件等元素发送到CDN,同时在CDN中使用之前缓存和压缩这些文件。
    • CDN Enabler: 此插件重写您的所有URL,以便从您的外部CDN提供资产。您可以链接到KeyCDN帐户并利用缓存清除、性能增强等。

    使用CDN索引图像

    您希望确保Google在移动到CDN时仍会为您的图像编制索引。

    对于Yoast SEO插件的用户,您需要将以下代码添加到您的functions.php文件的底部。将域和CDN域替换为您自己的域。

    function wpseo_cdn_filter( $uri ) {
    return str_replace( ‘http://yourdomain.com’, ‘http://cdn.yourdomain.com’, $uri );
    }
    add_filter( ‘wpseo_xml_sitemap_img_src’, ‘wpseo_cdn_filter’ );
    function wpseo_cdn_filter( $uri ) {

    return str_replace( ‘http://yourdomain.com’, ‘http://cdn.yourdomain.com’, $uri );

    }

    add_filter( ‘wpseo_xml_sitemap_img_src’, ‘wpseo_cdn_filter’ );

    function wpseo_cdn_filter( $uri ) {
    
    return str_replace( 'http://yourdomain.com', 'http://cdn.yourdomain.com', $uri );
    
    }
    
    add_filter( 'wpseo_xml_sitemap_img_src', 'wpseo_cdn_filter' );

    如果您不这样做,可能会导致您的图像被取消索引(如下所示)。您可以随时在Google Search Console中自行检查。

    图片未编入索引

    图片未编入索引

    但是,Google Search Console存在缺陷,有时当索引图像出现在Google上时无法报告它们。检查您的图像是否被索引的一个好方法是前往谷歌图像搜索并输入以下内容:“site:https://yourdomain.com”。

    谷歌图片搜索检查索引

    谷歌图片搜索检查索引

    重要提示:不要输入您的CDN URL。即使图像是从CDN提供的,它们仍应在您的根域上编制索引。

    如果您的图片出现在Google图片搜索中,它们就会被很好地编入索引。

    小结

    现在您可以看到使用WordPress CDN可以获得的所有奇妙好处。它将确保您的媒体在全球范围内更快地加载,减少您的TTFB,并显着降低您的带宽成本和服务器负载。

    不仅如此,由于更快的页面加载时间,您还可以看到更好的排名。最重要的是,您的访问者将获得更出色的用户体验。