为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速

WordPress中文网

作为一家性能托管公司,我们非常希望研究和分享使您的WordPress网站更得更快的方法。在谈到速度时,最简单又不费脑的方法之一就是使用内容传递网络(CDN)。它们减轻了Web服务器的负载,同时加快了向访问者交付内容的速度,从而使他们的网站体验更好!

今天我们想用一些比较容易理解的词语来解释WordPress CDN是如何工作的,为什么你应该使用它,以及它带来的一些额外的好处。我们还将与您分享一些速度测试,以便您能够更好地判断在您自己的站点上可以看到多大的性能提升。

什么是WordPress CDN?

CDN是内容分发网络的简称。这些是位于全球的服务器网络(也称为POP)。它们被用来承载和传递WordPress站点的静态(有时是动态)内容的副本,例如图像、CSS、JavaScript和视频流。

CDN如何运作

首先,你不要把CDN与WordPress服务器混淆了。它们是完全独立的服务。CDN不是主机提供商的替代品,而是提高站点速度的另一种方法。

CDN究竟是如何工作的?例如,当您选择一台主机来存放您的网站时,您必须选择物理主机数据中心位置,如美国、中欧、南美或亚洲。假设你选择Kinsta提供的主机。这意味着您的网站主机实际是位于美国爱荷华州Council Bluffs的“主机服务器”上。那么,当欧洲人要访问你的网站时,他就需要花很长的时间等待你的网站内容加载完成,为什么?因为网站数据要从美国传递到欧洲去。这就是所谓的延迟。延迟是指在网络上传输数据所涉及的时间和延迟。距离越远,延迟越大。

实际上,在欧洲无法直接访问到你在美国的主机,它还需要几个中间网络跃点(中间网络设备之间的通信实例)来服务,以便将来自于用户浏览器的数据请求传递给到网站主机,并将网站主机上存放的数据内容返回并显示在用户浏览器上。这里就是CDN可以发挥作用的地方,CDN网络可以把你网站上的内容副本先存放到位于全球各地的CDN主机上,当用户请求网站内容时,通过从离用户更近的服务器来加载站点内容,可以帮助减少延迟。这些CDN服务器有时也称为POP(存在点)。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
DN减少了延迟

WordPress的用户有时不太愿意查看CDN,因为一开始可能会有点不知所措,不知道从哪里开始。下面是它们的工作原理,用外行人的话说,可以通过三个简单的步骤来实现:

步骤1:
您选择一个CDN服务商并购买他们的CDN服务。这些费用通常按月或按数据实际使用量计费。大多数供应商都有一个计算器来方便你估算成本。建议选择靠谱的CDN服务商,一般来说,大型CDN服务商在全球部署的CDN节点更多,CDN节点的速度、安全性和稳定性也更有保障,很少出现CDN节点故障,用户体验更好。

步骤2:
您可以使用免费插件,如CDN Enabler或WP Rocket等提供的CDN服务。这些插件自动将您的网站资源传递到CDN。在CDN上获取内容不需要您做任何工作,这一切都是自动的!部署CDN比几年前要容易得多。

步骤3:
当人们访问你的网站时,它现在正在从全球不同的cdn节点下载你WordPress网站的内容。因此,对于那些在欧洲访问您位于美国爱荷华州的站点的访客,您的内容现在正在从欧洲的CDN节点加载。他们是怎么做到的?CDN通常使用两种不同类型的技术将用户路由到正确的位置,即IP Anycast +地理位置路由。它们可以自动检测用户请求来自何处,并将请求路由到最近的POP。

但即便如此,为WordPress主机选择一个合适的服务器位置仍然很重要。因为即使有CDN帮助分发您的媒体和内容,当您的网站被加载时,仍然需要向源主机提供商发出单个请求。除非您在代理服务器上使用了完整的页面缓存,我们稍后将对此进行讨论。

CDN的好处

1. 性能提升

性能的提高是使用CDN的最大原因之一。加载速度更快的站点与更高的转化率、更低的跳出率和更长的平均访问持续时间直接相关,这一点已被一次又一次地证明。更不用说用户体验了。你上一次因为网站加载时间太长而点击关闭浏览器是什么时候?这可能是你最不想发生的事。如果你不相信我说的话,这里有一些来自行业顶尖领导者的快速统计数据:

  • 页面响应每延迟1秒会减少7%的转化率。(来源:Kissmetrics)
  • BBC发现他们的网站每多加载一秒钟,就会损失10%的用户。(来源:Creative Bloq)
  • 根据谷歌的DoubleClick的研究,53%的手机网站在加载时间超过3秒后被放弃。(来源:DoubleClick)
  • 阿里全球速卖通为新客户减少了36%的加载时间,订单量增加10.5%,转化率增加27%。(来源:Akamai)


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

减少TTFB

我们已经在上面讨论过WordPress CDN可以通过缩短数据传输所需的物理距离来帮助减少延迟。但它也可以帮助降低您接收到第一个字节(TTFB)的时间。简单地说,这是对浏览器在从服务器接收第一个字节数据之前需要等待多长时间的度量。获取数据所需的时间越长,显示页面所需的时间就越长。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
CDN可以帮助减少TTFB

一个常见的误解是,这是在DNS查找时间之后计算的,然而,在网络中TTFB的原始计算总是包括网络延迟。这涉及到3个步骤的过程,延迟和潜在延时可能发生在中间的任何地方,加起来就是您的TTFB总数。TTFB高可能是由许多原因引起的,例如错误的代码或主机服务器上的缓存配置错误。但地理距离绝对是一个因素。我们运行了一个小测试,以显示与Kinsta CDN(由KeyCDN提供动力)的区别。每个测试运行5次,取平均值。

没有CDN的TTFB

我们首先在禁用CDN的情况下进行测试,您可以看到我们的总加载时间为1.45秒,在资产上的平均TTFB约为136毫秒。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
添加CDN之前的TTFB

启用CDN之后的TTFB

然后启用CDN并再次运行测试。如您所见,我们的总加载时间下降到788 ms,平均TTFB现在是37 ms!CDN能带来多大的不同。另一件需要注意的重要事情是,我们选择了斯德哥尔摩的位置来执行这个测试。为什么?因为我们想向你们展示通过减小物理距离可以得到的真正的改善。在斯德哥尔摩有一个CDN POP,所以我们的内容是从斯德哥尔摩提供的。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
添加CDN后的TTFB

注意:有些服务商提供的CDN服务,可能会导致您的TTFB略高。这很可能是由于运行完整CDN服务需要的额外开销和复杂性,因为有一些CDN还包含附加防火墙和其他特性。所以你需要自己做决定,这些特性可能对你的网站更有好处。如果您的整个站点没有得到适当的优化,那么在稍微高一点的TTFB上遭受损失也是值得的。

通过缓存更快地交付

就像您使用WordPress主机或插件一样使用缓存,CDN也使用缓存。这是他们可以如此快速地传送文件的一种方式。需要注意的一件重要事情是缓存是如何工作的。一旦CDN获得了您的媒体副本,访问者通常需要一次或两次请求它,然后才能将其实际缓存在CDN上。CDN在名为“X-Cache”的请求上放置HTTP标头。在第一个或第二个请求中,该文件通常显示为MISS,这意味着它尚未缓存。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
CDN未缓存(MISS)

在随后的请求中,它将显示为HIT,这意味着它已经缓存在您的CDN上。它将基于各种因素(例如ETag标头,过期标头或您手动清除CDN缓存)进行缓存。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
CDN缓存(HIT)

如果您正在使用完整的代理CDN,那么您还可以通过使用它们所称的全站页面缓存将缓存提升到下一个级别。这涉及到缓存URL上的所有内容。然而,对于WordPress站点,这有时会很棘手,因为您需要为站点的动态部分实现变通方案。

通过GZIP压缩实现巨额节省

WordPress CDN还使用GZIP,一种文件格式和一个用于文件压缩和解压缩的软件应用程序。GZIP压缩在服务器端(或者更确切地说在CDN服务器/POP上)启用,并允许进一步减小HTML、样式表和JavaScript文件的大小。它不会压缩图像,因为图像已经以不同的方式压缩。由于压缩,有些人将页面大小减少了70%。这可能是您可以进行的最简单的优化之一。别担心,所有主流的CDN都默认启用了这个。

您可以看到使用Check GZIP Compression 或Chrome DevTools 等工具来查看压缩带来的巨大差异。例如,下面你可以看到,在我们从CDN提供的jquery.js文件中,GZIP压缩将大小从94.9 KB减少到33.6 KB。就这一个文件就被减少64.59%。如果将CDN使用到您所有的资产和媒体,您将看到为什么压缩是必不可少的!

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
在CDN上节省GZIP

Brotli将压缩提升到新的水平

Brotli是谷歌开发的一种较新的压缩算法,它已被证明比现有的解决方案(包括GZIP)多减少26%的文件大小。Brotli的采用率正以相当快的速度增长。截至6月20日,谷歌甚至开始使用Brotli压缩技术来压缩显示广告。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
Brotli压缩节省

然而,由于Brotli仍然是新的算法,它还不能在所有CDN提供商上使用。但有一些,如KeyCDN和CDN77,现在已经支持它。在大多数情况下,您的源服务器(宿主服务器)也必须启用Brotli才能正常工作。浏览器对Brotli的支持也在迎头赶上。如果设置正确,启用了Brotli但在不支持它的浏览器中加载的服务器将返回到GZIP。

HTTP / 2

HTTP/2也是所有CDN现在用来加速资产交付的最大特性之一。由于浏览器的支持,HTTP/2需要HTTPS。性能的提高是由于多种原因,例如协议能够支持更好的多路复用、并行性、使用Huffman编码的HPACK压缩、ALPN扩展和服务器推送。在使用HTTPS时,曾经有相当多的TLS开销,但是由于HTTP/2的存在,这已经成为过去。

2.降低带宽成本

CDN的另一大好处是它可以帮助从托管服务器(源服务器)卸载CPU和资源。这有助于防止流量高峰压倒您的主机。它还可以帮助您降低带宽成本。你想要的最后一件事就是让你的东西变成病毒状态,你的左手拿着来自主人的巨额账单,或超额费用。例如,下面是使用Cloudflare的网站,正如您所看到的,它帮助卸载了69%的带宽请求。

CDN的另一个好处是,它可以帮助降低对主服务器CPU资源配置的要求。它还可以帮助降低带宽成本,并有助于防止突发流量峰值压垮您的主机。你最不希望看到的就是某样东西像病毒一样传播开来,然后你就会从你的主人那里收到一笔巨额账单,或者是一笔超额费用。例如,下面是一个使用Cloudflare CDN的站点,您可以看到它帮助减少了69%的带宽请求。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
Cloudflare带宽节省

CDN帮助降低成本的另一种方式是提供支持热链接保护的简单方法。这基本上是指限制HTTP引用,防止其他人将您的资产嵌入其他网站。你们有些人可能听说过赫芬顿邮报的惨败事件。《赫芬顿邮报》(Huffington Post)的一位作者复制并粘贴了燕麦片网站上的图片,这让他从AWS那里获得了1000多美元的账单。燕麦片的主人最终替换了这些图片,这样《赫芬顿邮报》的读者就可以看到了。但这就是为什么启用热链接保护总是很重要的原因,否则,您最终可能会收到一笔令人发指的账单。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
热链接保护

3.高可用性和可伸缩性

CDN还提供高可用性和可伸缩性。由于复制的内容在不同地理位置的多个pop中可用,如果一个服务器宕机,web流量将动态路由到另一个服务器。而且没有必要担心可伸缩性,因为CDN提供者就是基于这种思想构建的。如果您正在使用一个较小配置的共享主机,CDN实际上可以防止您的网站崩溃,因为大部分的服务器负载都是CDN在处理。

4. SEO优势

早在2010年,谷歌就将网站速度作为排名因素之一,因此,网站速度越快,排名越高已经不是什么秘密。虽然没有办法知道速度在多大程度上受到重视,但是您可以放心地认为速度是最重要的因素之一,因为它会影响用户体验。Brian Dean分析了排名前100万的域名,看看网站速度和谷歌排名之间的相关性,结果非常正面。虽然这些测试几乎不可能最终证明,但可以肯定的是,拥有一个更快的网站只会在谷歌中对您有所帮助。简单地说,谷歌等搜索引擎更喜欢响应快速的站点。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
网站速度 - 谷歌排名

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

5.额外的安全性

许多CDN提供者通过允许您部署web应用程序防火墙(WAF)和一些所谓的源站保护来提供额外的安全性。这些可以帮助减轻对WordPress站点的各种形式和大小的DDoS攻击,包括针对UDP和ICMP协议的DDoS攻击,以及SYN/ACK、DNS扩展和Layer 7攻击。其他好处包括把你放在代理后面,这有助于隐藏你站点的原始IP地址,尽管它不是防弹的。

请务必查看我们关于如何阻止DDoS攻击的案例研究。我们的一个客户有一个小型电子商务网站,运行着简单的数字下载服务,但在7天内就有超过500万的请求到达同一个页面。该网站一般每天只能产生30- 40mb的带宽流量和几百个访问者。但出乎意料的是,该网站突然一天内就消耗了15-19 GB的数据流量,增加了4650%!谷歌分析显示并没有产生额外的流量记录,情况看来不是很妙。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
DDoS攻击

技术工程师帮他们在站点上部署了Sucuri的web应用程序防火墙,所有的带宽和请求立即在站点上被删除(如下所示),此后没有出现任何问题。所以如果你遇到这样的问题,这绝对是一个很好的投资和节省时间的方法。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
添加Sucuri的WAF后

CDN还提供了其他特性,如安全令牌,它允许您生成具有过期时间的安全链接。过期后,人们不再能够访问该内容。

CDN速度测试

所以,我们不只是告诉你WordPress CDN的好处,还要做一些测试来展示结果。在启用CDN和不启用CDN的情况下,我们从4个不同的测试位置运行了5个测试。该站点主机服务器的物理位置在美国爱荷华州。

请确保在对CDN进行速度测试前先预热几次站点,以便CDN正确缓存了站点上的图片等媒体文件。正如我们在上面对CDN缓存的进一步描述,X-Cache HTTP报头在缓存后将显示一个“HIT”。如果没有缓存,它将显示一个“MISS”。“如果你不先做CDN缓存预热这件事,测试时就有可能看起来好像CDN没有帮助加快你的网站速度,而实际上你只是没有预先建立CDN缓存。”

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

我们首先在德克萨斯州达拉斯的Pingdom进行了5次没有CDN的测试,取平均值。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
没有CDN测试达拉斯(来源:Pingdom)

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

然后我们在澳大利亚墨尔本的Pingdom进行了5次没有CDN的测试,取平均值。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
没有CDN测试澳大利亚(来源:Pingdom)

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

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

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
没有CDN测试圣何塞(来源:Pingdom)

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

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

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
没有CDN测试瑞典(来源:Pingdom)

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

然后我们用德克萨斯州达拉斯的一个CDN进行了5次测试,取平均值。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
随着CDN测试达拉斯(来源:Pingdom)

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

然后我们用澳大利亚墨尔本的一个CDN进行了5次测试,取平均值。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
随着CDN测试澳大利亚(来源:Pingdom)

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

然后我们用加利福尼亚州圣何塞的一个CDN进行了5次测试,取平均值。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
随着CDN测试圣何塞(来源:Pingdom)

随着CDN(瑞典斯德哥尔摩)

然后我们用斯德哥尔摩的一个CDN进行了5次测试,取平均值。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
随着CDN测试瑞典(来源:Pingdom)

结果

现在让我们看看结果,以了解CDN对总加载时间的影响有多大。

为什么WordPress网站应该使用CDN(内容分发网络)进行缓存加速
CDN速度测试比较

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

如你所见,在达拉斯和圣何塞,CDN稍快一些。如果你看一看澳大利亚的测试,你会发现加载时间上的巨大差异。这是因为测试服务器的地理位置。我们的服务器在爱荷华州,因此从达拉斯和圣何塞加载数据的距离并不遥远。但对澳大利亚来说,距离延长了站点加载时间。当我们启用CDN后,站点上的内容和媒体文件就会从澳大利亚悉尼的Kinsta CDN POP节点加载,这带来了更快的响应时间。瑞典的斯德哥尔摩也是如此。

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

你需要CDN吗?

我们在Kinsta遇到的一个问题是,特定网站是否需要CDN。根据我们的经验,CDN几乎在每种情况下都是有益的。看看我们上面列出的所有好处。价格通常不再是一个因素,因为大多数CDN供应商都非常便宜,有些收费低至0.04美元/ GB。然后Cloudflare甚至是免费的。您可能只想进行进一步测试的唯一情况是,您只为特定地理位置的访问者提供内容。

比如说,你是一家在加拿大安大略省开设网站的小商店。也许你并不关心其他地方的客户。您需要研究以查看CDN提供商的POP所在的位置。例如,如果您的Web服务器主机位于安大略省,但您注册了一个CDN提供商,该提供商在美国只有最近的POP,则实际上可能会降低您的网站速度。在这种非常罕见的情况下,不使用CDN可能更有益。

我们经常被问到的一个问题是:我的网站是否需要CDN。根据我们的经验,CDN几乎在所有场景中都是有益的。看看我们上面列出的所有好处。价格通常不再是一个因素,因为大多数CDN提供商非常便宜。有些CDN甚至是免费的,虽然服务可能不太稳定。当然,如果您只向特定地理位置的访问者提供内容,您可能想要做进一步测试。

假设你是一家在加拿大安大略省有网站的小商店。也许你并不太关心其他地方的客户。您需要研究CDN提供商的pop位于何处。例如,如果您的web服务器主机位于加拿大安大略,但您选择的CDN提供商部署的最近的POP节点在美国,这实际上会降低您的站点的速度。在这种情况下(这种情况非常少见),不使用CDN可能会更好。

有很多优秀的CDN提供商可供选择。它们中的大多数都提供免费试用,所以我们建议您多尝试几个,看看哪个最适合您的站点。

如何在WordPress中安装CDN

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

我们建议的一件事是为您的图片等媒体文件绑定域名,而不是使用CDN提供商为您提供的随机URL。示例:img.yourdomain.com。这将确保为您的网站提供更好的品牌效果,并在发生问题时减少查找的麻烦。目前国内在提供商处开启CDN后,您可以使用免费的WordPress插件(如CDN启用程序)轻松链接您的资产,并将其自动复制到您的CDN提供商。

从WordPress的网站加载尽可能多的资源是很重要的。这可以确保更快地向访问者传递数据,并使用单个HTTP / 2连接。您可以通过一个类似Pingdom的的工具来运行您的网站,以查看媒体的加载位置。有时,主题或某些插件可能需要稍作调整或调查为什么即使在完成集成之后,它们也不会从您的CDN中加载。

总结

希望,现在您可以看到使用WordPress cdn所能获得的所有惊人的好处。它将确保您的媒体在全球的加载速度更快,减少您的TTFB,并显着降低带宽成本和服务器负载。不仅如此,由于页面加载时间更快,您可以看到更好的排名。最重要的是,您的访问者将拥有更好的用户体验。

你对使用cdn有什么想法吗?我们很高兴听到你的想法。

本文原创,作者:无道,其版权均为WordPress中文网所有。如需转载,请注明出处:https://www.wpchinese.cn/p/207.html
55
WordPress中文网

发表评论