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

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

什么是 WordPress CDN?

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

CDN 的工作原理

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

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

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

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

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

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

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

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

步骤1

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

第2步

您在您的网站上激活 CDN。对于 Kinsta CDN,只需单击 MyKinsta 仪表板中的按钮即可。您可以为第三方 CDN 安装一个免费插件,如 CDN Enabler 或 WP Rocket 来集成它。

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

第 3 步

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

CDN 如何实现这一目标?

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

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

Kinsta 现在有 34 个数据中心位置,您可以从中托管您的 WordPress 网站。

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

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

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

我们进行了两项测试,以显示使用和不使用 Kinsta CDN(由 Cloudflare 提供支持)的 TTFB 的差异。我们每个测试运行 5 次,然后取平均值。

测试 1:没有 CDN 的 TTFB

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

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

添加 CDN 之前的 TTFB

测试 2:TTFB 与 CDN

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

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

CDN 能带来多大的改变!

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

添加 CDN 后的 TTFB
使用缓存更快地交付

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

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

CDN 未缓存 (MISS)

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

CDN 缓存 (HIT)

使用诸如 Kinsta CDN(由 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-19 GB 的数据传输量!这增加了 4650%。谷歌分析显示没有额外的流量。这不好。

订阅时事通讯

想知道我们是如何将流量提高到 1000% 以上的吗?

加入 20,000 多人的行列,他们会通过 WordPress 内幕技巧获得我们的每周时事通讯!

现在订阅

DDoS 攻击

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

因停机时间和 WordPress 问题而苦苦挣扎?Kinsta 是旨在节省您时间的托管解决方案!查看我们的功能

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

结果

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

CDN速度测试对比

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

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

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

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

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

您需要 CDN 吗?

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

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

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

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

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

流行的 CDN 提供商

尽管那里有很多很棒的 CDN 提供商,但 Kinsta 提供了一个内置在其托管中的 CDN;它由 Cloudflare 提供支持,快速、易于激活,并且对 Kinsta 用户完全免费。我们建议利用免费的 Cloudflare 集成,但我们了解某些网站所有者出于特定原因需要外部 CDN 或代理。

在这种情况下,我们鼓励您探索其他一些顶级 CDN,所有这些都与 Kinsta 托管兼容(单击链接以查看每个的 Kinsta 集成文档):

  • 快速CDN
  • 堆栈路径
  • 亚马逊云前
  • Imperva CDN
  • 果汁
  • 埃佐克

如何在 WordPress 中安装 CDN

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

金斯塔 CDN

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

金斯塔 CDN

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

启用 Kinsta CDN

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

分析中的 CDN 使用

Cloudflare

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

但是,请记住,所有 Kinsta 托管用户都会收到由 Cloudflare 提供支持的免费 CDN,因此使用该方法更容易,而不是将其作为单独的组件安装。

第三方 CDN

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

示例:cdn.yourdomain.com。

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

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

顶级 CDN 插件和扩展

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

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

以下是最好的 WordPress CDN 插件:

  • Cloudflare:如果使用 Cloudflare 作为您的 CDN 提供商,这是正确的选择,特别是因为它提供一键式安装、Web 应用程序防火墙设置和自动平台优化工具,可通过 250 多个快速可靠的数据显着加快站点速度中心。或者,您可以选择 Kinsta CDN,它已经由 Cloudflare 提供支持,并且不需要额外的插件!
  • 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 启动器:此插件会重写您的所有 URL,以便从您的外部 CDN 提供资产。您可以链接到 KeyCDN 帐户并利用缓存清除、性能增强等。

使用 CDN 索引图像

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

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

函数 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,并显着降低您的带宽成本和服务器负载。

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

我们的 HTTP/2 Kinsta CDN 支持我们所有的托管计划。您对使用 CDN 有什么想法吗?我们很乐意在评论部分听到您的想法。

通过以下方式节省时间、成本并最大限度地提高站点性能:

  • 来自 WordPress 托管专家的即时帮助,24/7。
  • Cloudflare 企业集成。
  • 全球受众覆盖全球 34 个数据中心。
  • 通过我们内置的应用程序性能监控进行优化。

所有这些以及更多,在一个没有长期合同、协助迁移和 30 天退款保证的计划中。查看我们的计划或与销售人员交谈以找到适合您的计划。