WordPress CDN – 为什么你应该在 2022 年使用一个

已发表: 2017-07-31

作为一家性能托管公司,我们非常喜欢研究和分享让您的 WordPress 网站更快的方法。 如今,在速度方面,最简单的方法之一就是利用内容交付网络 (CDN)。 他们减轻了您的网络服务器的负载,同时加快了向访问者交付内容的速度,从而使他们的体验更好!

今天,我们想用通俗易懂的方式向您解释WordPress CDN 的工作原理,为什么要使用它,以及它们附带的一些额外好处。 我们还将分享一些速度测试,以便您更好地判断您可以在自己的网站上看到多少性能提升。

  • CDN 的工作原理
  • CDN 的好处
  • CDN 速度测试
  • 你需要CDN吗?
  • 流行的 CDN 提供商
  • 如何在 WordPress 中安装 CDN

CDN 的工作原理

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

CDN 究竟是如何工作的? 例如,当您使用 Kinsta 托管您的网站时,您必须选择一个物理数据中心位置,例如美国中部、欧洲、南美或亚洲。 假设您选择美国中部。 这意味着您的网站实际上位于爱荷华州康瑟尔布拉夫斯的“主机服务器”上。 当欧洲的人们访问您的网站时,它需要更长的时间才能加载来自德克萨斯州达拉斯的访问者的诗句。 为什么? 因为数据必须传播更远的距离。 这就是所谓的延迟。 延迟是指通过网络传输数据所涉及的时间和/或延迟。 距离越远,延迟越大。

如果加载时间超过 3 秒,40% 的访问者会放弃网站。 点击推文

它还需要几个网络跃点(中间网络设备之间的通信实例)来处理从浏览器到托管服务器的数据请求以及从托管服务器返回到 Web 浏览器的请求内容。 这就是 CDN 发挥作用的地方。 它通过从更靠近它们的服务器加载站点的内容来帮助减少延迟。 这些 CDN 服务器有时也称为 POP(存在点)。

CDN 减少延迟
CDN 减少延迟

WordPress 用户有时可能不愿意查看内容交付网络,因为一开始可能会有点不知所措。 因此,用外行的话来说,这是它们的工作方式和实现方式,只需三个简单的步骤:

第1步

您选择一个 CDN 提供商并订阅他们的服务。 这些通常按月或按数据使用量计费。 大多数提供商都会有一个计算器来估算您的费用。

第2步

您可以使用 CDN Enabler 或 WP Rocket 等免费插件来集成它。 这些插件会自动将您的资产链接到 CDN。 您无需进行任何工作即可将您的内容放到 CDN 上,这一切都无需干预! 部署 CDN 比几年前要容易得多。

第 3 步

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

然而,为您的 WordPress 主机选择战略服务器位置仍然很重要。 因为即使 CDN 有助于分发您的媒体和内容,当您的网站被加载时,仍然需要向托管服务提供商提出一个请求。 除非您在代理服务器上使用整页缓存,我们稍后会介绍。 Kinsta 现在有 29 个数据中心位置,您可以从中托管您的 WordPress 网站。

CDN 的好处

以下只是在您的 WordPress 网站上使用 CDN 的众多好处中的一小部分。

1. 性能提升

性能提升是使用 CDN 的最大原因之一。 一次又一次地证明,更快的加载站点与更高的转化率、更低的跳出率和更长的平均访客持续时间直接相关。 更不用说整体上更好的用户体验了。 由于网站加载时间过长,您最后一次在浏览器中点击返回是什么时候? 这是你最不想发生的事情。 但请不要相信我们的话,以下是一些顶级行业领导者为您提供的一些快速统计数据:

  • 页面响应延迟 1 秒会导致转化率降低 7%。 (来源:Kissmetrics)
  • BBC 发现,网站加载每增加一秒,他们就会失去 10% 的额外用户。 (来源:创意博客)
  • 根据 Google DoubleClick 的研究,53% 的移动网站访问会在 3 秒后被放弃。 (来源:双击)
  • AliExpress 将加载时间减少了 36%,订单增加了 10.5%,新客户的转化率增加了 27%。 (来源:Akamai)

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

减少 TTFB

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

CDN 可以帮助减少 TTFB
CDN 可以帮助减少 TTFB

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

TTFB 无 CDN

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

ttfb 在 cdn 之前
添加 CDN 之前的 TTFB

TTFB 与 CDN

然后我们启用我们的 CDN 并再次运行测试。 如您所见,我们的总加载时间下降到 788 毫秒,我们的平均 TTFB 现在是 37 毫秒! CDN 可以带来多大的改变。 另一个需要注意的重要事项是,我们选择了斯德哥尔摩地点来执行此测试。 为什么? 因为我们想向您展示通过减少物理距离可以实现的真正改进。 斯德哥尔摩有一个 CDN POP,所以我们的内容是从斯德哥尔摩提供的。

cdn后的ttfb
添加 CDN 后的 TTFB

注意:如果您使用 Cloudflare,您的 TTFB 可能会稍高一些。 这很可能是由于运行完全代理服务的额外开销和复杂性。 请记住,Cloudflare 具有一些 CDN 提供商没有的附加防火墙和其他功能。 因此,您需要下定决心,这可能会使您受益更多。 如果您的整个网站没有得到适当的优化,那么在略高的 TTFB 上受到打击可能是值得的。

但是,您可能还想查看 WP Bullet 关于使用 Cloudflare 页面缓存降低 TTFB 的指南。 这可能需要一些额外的设置和测试。 确保运行您自己的测试,因为每个环境都不同。 Cloudflare 的新 Argo 服务在某些情况下也被证明有助于降低 TTFB。 查看 Cloudflare 的新自动平台优化工具,这是一项提高 WordPress 性能的惊人服务。

通过缓存更快地交付

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

CDN 未缓存 (MISS)
CDN 未缓存 (MISS)

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

CDN 缓存 (HIT)
CDN 缓存 (HIT)

如果您使用的是 Cloudflare 之类的完整代理 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 上的 GZIP 节省
CDN 上的 GZIP 节省

Brotli 将压缩提升到新的水平

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

Brotli 压缩节省
Brotli 压缩节省(来源:SamSaffron)

但是,由于 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% 的带宽请求。

节省的 Cloudflare 带宽
节省的 Cloudflare 带宽

CDN 帮助降低成本的另一种方法是提供简单的方法来启用热链接保护。 这基本上是指限制 HTTP 引用并防止其他人在其他网站上嵌入您的资产(图像 - 我们有一个关于如何保护您的图像的教程)。 你们中的一些人可能听说过赫芬顿邮报的惨败。 《赫芬顿邮报》的一位作者从 Oatmeal 的网站复制并粘贴了图像,这反过来又从 AWS 那里累积了超过 1,000 美元的账单。 Oatmeal 的所有者最终替换了这些图像,以便赫芬顿邮报文章的读者可以看到它。 但这就是为什么启用热链接保护总是很重要的原因,否则,您最终可能会收到一笔巨额账单。

防盗链
防盗链

3. 高可用性和可扩展性

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

4. SEO优势

早在 2010 年,Google 就将网站速度作为排名因素,因此更快的网站可以带来更高的排名已经不是什么秘密了。 虽然无法知道速度对速度有多大影响,但您可以放心地假设它是最重要的因素之一,因为它会影响用户体验。 Brian Dean 分析了前 100 万个域名,以查看网站速度与 Google 排名之间的相关性,结果非常积极。 虽然这些测试几乎不可能最终证明,但您可以放心,拥有更快的网站只会在 Google 中为您提供帮助。 简而言之,谷歌奖励快速网站。

网站速度 - 谷歌排名
网站速度 - 谷歌排名

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

5. 额外的安全性

许多 CDN 提供商通过允许您实施 Web 应用程序防火墙 (WAF) 和一些所谓的 Origin shields 来提供额外的安全性。 这些可以帮助减轻对您的 WordPress 站点的各种形式和大小的 DDoS 攻击,包括针对 UDP 和 ICMP 协议的攻击,以及 SYN/ACK、DNS 放大和第 7 层攻击。 其他好处包括将您置于有助于隐藏您的原始 IP 地址的代理后面,尽管它不是万无一失的。

请务必查看我们关于如何阻止 DDoS 攻击的案例研究。 我们的客户有一个运行 Easy Digital Downloads 的小型电子商务网站,该网站在 7 天内收到了超过 500 万次单个页面的请求。 该站点通常每天仅产生 30-40 MB 的带宽和数百名访问者。 但出乎意料的是,该网站立即达到了每天 15-19 GB 的数据传输量! 这增加了 4650% 。 谷歌分析显示没有额外的流量。 这不好。

DDoS 攻击
DDoS 攻击

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

添加 Sucuri 的 WAF 后
添加 Sucuri 的 WAF 后

CDN 还提供其他功能,例如安全令牌,它允许您生成具有到期时间的安全链接。 过期后,人们将无法再访问该内容。

CDN 速度测试

因此,我们不仅要告诉您 WordPress CDN 的好处有多大,还需要做一些测试来实际向您展示结果。 我们从 4 个不同的测试位置运行了 5 次测试,启用了 CDN,然后没有启用 CDN。 该站点由 Kinsta 托管,并使用 Kinsta CDN(由 KeyCDN 提供支持)。 服务器的物理位置在美国爱荷华州。

确保在快速测试 CDN 时运行几次,以便缓存媒体。 正如我们上面关于 CDN 缓存的进一步描述,X-Cache HTTP 标头在缓存后将显示“HIT”。 如果它没有被缓存,它会显示一个“MISS”。 如果您没有正确执行此操作,它可能看起来好像 CDN 没有帮助加速您的网站,而实际上您只是没有先建立缓存。

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

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

没有 CDN 测试达拉斯
没有 CDN 测试达拉斯(来源:Pingdom)

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

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

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

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

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

没有 CDN 测试 San Jose
没有 CDN 测试 San Jose(来源:Pingdom)

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

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

无CDN测试瑞典
无 CDN 测试瑞典(来源:Pingdom)

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

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

用 CDN 测试达拉斯
用 CDN 测试达拉斯(来源:Pingdom)

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

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

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

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

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

因停机时间和 WordPress 问题而苦苦挣扎? Kinsta 是旨在节省您时间的托管解决方案! 查看我们的功能
使用 CDN 测试圣何塞
使用 CDN 测试 San Jose(来源:Pingdom)

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

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

带CDN测试瑞典
用CDN测试瑞典(来源:Pingdom)

结果

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

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 所在的位置。 例如,如果您的网络服务器主机位于安大略省,但您注册的 CDN 提供商只有在美国有最近的 POP,它实际上可能会减慢您的网站速度。 在这种非常罕见的情况下,不使用 CDN 可能更有益。

流行的 CDN 提供商

有很多优秀的 CDN 提供商可供选择。 他们中的大多数都有免费试用版,因此我们建议您尝试一些,看看哪一个最适合您的网站。 我们在 Kinsta 为所有客户提供免费的 CDN 集成,由 KeyCDN 提供支持。 以下是您应该查看的其他一些第三方提供商:

  • 关键CDN
  • Cloudflare
  • StackPath(以前是 MaxCDN)
  • CDN77
  • 亚马逊云前
  • 快速
  • 荚膜
  • 阿卡迈

如何在 WordPress 中安装 CDN

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

金斯塔 CDN

我们与 KeyCDN 合作,这是一个支持 HTTP/2 和 IPv6 的内容交付网络,拥有 200 多个位置,可加速您在全球的资产和媒体。 目前服务的地区包括美洲、南美洲、欧洲、非洲、亚洲和澳大利亚。

金斯塔 CDN
金斯塔 CDN

查看如何启用 Kinsta CDN。 这是 MyKinsta 仪表板中的简单一键式过程。

添加 CDN 区域
添加 CDN 区域

我们还拥有出色的 CDN 分析功能,因此您可以查看带宽使用情况、按请求排列的热门文件、HTTP 状态代码等。

CDN 使用分析
分析中的 CDN 使用

Cloudflare

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

第三方 CDN

如果正在考虑自己部署 KeyCDN,我们建议您阅读这篇关于 CDN 的文章。

我们建议的一件事是为您的媒体和资产使用子域,而不是提供商提供给您的随机 URL。 示例:cdn.yourdomain.com。 这将确保更好地为您的网站打造品牌,并在索引问题方面减少麻烦。 在提供商处设置 CDN 后,您可以使用免费的 WordPress 插件(如 CDN 启用程序)轻松链接您的资产并将它们自动复制到您的 CDN 提供商。

CDN 推动者
CDN 推动者

其他插件如 WP Rocket 或 W3 Total Cache 也有类似的集成方式。

WP Rocket 中的 CDN
WP Rocket 中的 CDN

从您的 WordPress 网站加载尽可能多的资源非常重要。 这确保了更快地交付给访问者并使用单个 HTTP/2 连接。 您可以通过 Pingdom 之类的工具运行您的网站,以查看您的媒体从哪里加载。 有时主题或某些插件可能需要稍作调整或调查为什么即使在完成集成后它们也没有从您的 CDN 加载。

使用 CDN 索引图像

您希望确保您的图像在移动到 CDN 时仍能被 Google 索引。 对于 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' );

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

图片未编入索引
图片未编入索引

然而,我们也注意到,当谷歌搜索控制台正确报告图像被正确索引时,有很多不一致之处。 检查您的图像是否真的被索引的一个好方法是前往谷歌图像搜索并输入以下内容: site:https://yourdomain.com

谷歌图片搜索检查索引
谷歌图片搜索检查索引

重要提示:不要输入您的 CDN URL。 即使图像是从 CDN 提供的,它们仍应在您的根域上编制索引。 如果您的图片出现在 Google 图片搜索中,则意味着它们已被很好地编入索引。

概括

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

不要忘记,我们的所有托管客户端现在都包含我们的 HTTP/2 Kinsta CDN。 您对使用 CDN 有什么想法吗? 我们很想听听您的想法。