网站速度方面的必备条件之一是内容交付网络 (CDN)。CDN减轻了您的Web服务器的负担,并加快了向所有站点访问者的内容交付。结果,从您的用户体验到搜索引擎潜力的一切都得到了改善!开始学习该主题的一个好方法是激活WordPress CDN。
在本文中,我们将解释将CDN添加到WordPress网站的最简单方法。但在此之前,我们概述了CDN的基本定义、为什么要使用CDN,以及一些额外的好处。我们还将分享一些速度测试,以便您更好地判断您希望在您的网站上看到多少性能提升。
- 什么是CDN?
- CDN工作原理
- CDN的好处
- CDN速度测试
- 您需要CDN吗?
- 流行的CDN提供商
- 如何在WordPress中安装 CDN
什么是CDN?
CDN是Content Delivery Network的缩写。这些是位于全球的服务器网络(也称为POP)。它们旨在托管和交付WordPress站点的静态(有时是动态)内容的副本,例如图像、CSS、JavaScript和视频流。
内容交付网络(CDN)是互联网上负责内容交付的透明骨干。无论我们知道与否,我们每个人每天都在与CDN互动;当在新闻网站上阅读文章、在线购物、观看YouTube视频或浏览社交媒体信息时。
无论你做什么,或者你消费什么类型的内容,你都有可能发现CDN在每一个文本字符、每一个图像像素和每一个传递到你的PC和移动浏览器的电影帧背后。
要理解为什么CDN被如此广泛地使用,你首先需要认识到它们被设计来解决的问题。它被称为延迟,是指从你请求加载一个网页到其内容实际出现在屏幕上的那一刻所发生的令人讨厌的延迟。
该延迟间隔受到许多因素的影响,其中许多是针对特定的网页。但在所有情况下,延迟时间都会受到你和该网站托管服务器之间的物理距离的影响。
CDN的任务是实际上缩短这一物理距离,其目的是提高网站的渲染速度和性能。
CDN的工作原理
为了尽量减少访问者与你的网站服务器之间的距离,CDN在多个地理位置(又称存在点,或PoPs)存储其内容的缓存版本。每个PoP都包含一些缓存服务器,负责向其附近的访问者提供内容。
从本质上讲,CDN一次将你的内容放在许多地方,为你的用户提供卓越的覆盖。例如,当伦敦的人访问你在美国托管的网站时,是通过英国本地的PoP完成的。这要比让访问者的请求和你的回应穿越整个大西洋的宽度来回要快得多。
这就是CDN的工作方式,简而言之。当然,我们认为我们需要整个指南来解释内容交付网络的内部工作,兔子洞更深。
首先,您不想让CDN与您的WordPress托管公司混淆。这些是完全不同的服务。CDN不是您的托管服务提供商的替代品,而是提高网站速度的另一种方式。虽然有可能您的网站托管速度非常快,但CDN可以让您的网站更快。
CDN究竟是如何工作的?例如,当您托管网站时,您必须选择物理数据中心位置,例如美国中部、欧洲、南美或亚洲。假设您选择美国中部。
这意味着您的网站实际上位于爱荷华州康瑟尔布拉夫斯的“主机服务器”上。当欧洲人访问您的网站时,加载时间比从德克萨斯州达拉斯访问的人要长。为什么?因为数据必须传播更远的距离。
这就是所谓的延迟。延迟是指通过网络传输数据所涉及的时间和/或延迟。距离越远,延迟越大。
这就是CDN发挥作用的地方。它通过从更靠近它们的服务器加载站点的内容来帮助减少延迟。这些CDN服务器有时称为POP(存在点)。
有无CDN对比图(via imperva )
WordPress用户有时不愿意研究内容交付网络,因为它们听起来太复杂了。但是CDN的功能相对简单。以下是它们的工作方式,可以通过三个简单的步骤实现:
第1步
您注册一个带有免费CDN的托管服务提供商或选择一个单独的CDN提供商并订阅他们的服务。第三方CDN提供商通常会根据数据使用情况提供免费和高级计划。
第2步
您在您的网站上激活CDN。您可以为第三方CDN安装一个免费插件,如CDN Enabler或WP Rocket来集成它。
这些插件会自动将您的资产链接到CDN。您无需做任何工作即可将您的内容放到 CDN 上;这都是放手的!部署 CDN 比以前容易得多。
第3步
当人们访问您的网站时,它会从全球不同的服务器加载您的WordPress网站的内容。欧洲的访问者从欧洲的服务器接收您的网站内容,而美国的访问者从距离他们更近的美国服务器获得相同的内容。
CDN如何实现这一目标?
CDN通常使用两种技术将用户路由到正确的位置:IP Anycast + 地理位置路由。他们可以自动检测用户请求的来源并将请求路由到最近的服务器。
但是,为您的WordPress主机选择战略服务器位置仍然至关重要。因为即使CDN有助于分发您的媒体和内容,当您的网站被加载时,仍然需要向托管服务提供商发出一个请求——除非您在代理服务器上使用整页缓存,我们稍后将对此进行介绍。
CDN的好处
整体而言,CDN提供了四个显著的好处。
- 增加可靠性:没有什么是无懈可击的,包括互联网。服务器瘫痪,网络过度拥堵,最终的结果是连接被破坏。CDNs使网络应用即使在这些动荡的时期也能继续运行。它们通过平衡网络流量的负载来做到这一点,这样就不会有任何一台服务器被过度使用。
- 更好的性能:使用CDN可以减少高达50%的加载时间。这是通过减少文件大小,减少内容保存地和目的地之间的距离,以及优化服务器以更快地响应用户请求来实现的。
- 节省成本:减少与源服务器之间的交换次数是CDN减少开支的主要方式。有了CDN,网站的大部分内容都被缓存起来,这意味着起源服务器的工作更少,因为它不必重复交付相同的内容。
- 对网络攻击的保护:在抵御拒绝服务(DoS)和分布式拒绝服务(DDoS)攻击方面,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可能由多种原因引起,例如糟糕的代码或主机服务器上配置错误的缓存。但地理距离是一个问题。
我们进行了两项测试,以显示使用和不使用Cloudflare的TTFB的差异。我们每个测试运行5次,然后取平均值。
测试 1:没有CDN的 TTFB
我们首先在禁用CDN的情况下运行了Pingdom测试。结果如下:
- 总加载时间为1.45 s
- 平均TTFB约为136毫秒
添加CDN之前的TTFB
测试 2:TTFB与CDN
然后我们启用了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)
使用诸如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攻击
客户在他们的站点上实施了Sucuri的Web应用程序防火墙,所有带宽和请求都立即丢弃在站点上(如下所示),此后再也没有出现过任何问题。因此,如果您遇到此类问题,这是一项很好的投资和节省时间的方法。
CDN还提供额外的安全功能,例如安全令牌,允许您生成具有过期时间的安全链接。过期后,用户将无法再访问该内容。
CDN速度测试:使用CDN与不使用CDN
让我们做一些测试来向您展示结果,而不是仅仅告诉您WordPress CDN的好处。
- 我们从4个不同的测试位置运行了5次测试,启用了CDN,然后没有启用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(美国德克萨斯州达拉斯)
作为比较,我们使用德克萨斯州达拉斯服务器上的活动CDN运行了5次Pingdom测试。之后取平均值。
使用达拉斯服务器使用CDN进行测试(来源:Pingdom)
使用CDN(澳大利亚墨尔本)
然后,我们使用来自澳大利亚墨尔本服务器的CDN运行了5次Pingdom测试,然后取平均值。
用CDN测试澳大利亚(来源:Pingdom)
使用CDN(美国加利福尼亚州圣何塞)
我们还使用加利福尼亚州圣何塞的服务器对CDN进行了5次Pingdom测试并取平均值。
使用San Jose服务器进行CDN测试(来源:Pingdom)
使用CDN(瑞典斯德哥尔摩)
我们为具有活动CDN的Stockholm服务器运行了5次Pingdom测试。然后取平均值。
使用瑞典的服务器进行CDN测试(来源:Pingdom)
结果
让我们看看结果以了解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提供商,我们鼓励您探索其他一些顶级 CDN:
- Fastly CDN
- StackPath
- Amazon CloudFront
- Imperva CDN
- Sucuri
- Ezoic
如何在WordPress中安装CDN
每个CDN提供商都有自己的集成方法,但值得庆幸的是,它们都支持WordPress并使其易于集成。如果您遇到问题,请查看他们的文档或询问他们的支持团队。
Cloudflare
如果您正在使用Cloudflare,我们将提供有关如何在您的WordPress网站上安装Cloudflare的深入教程。
第三方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多个快速可靠的数据显着加快站点速度中心。
- 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' );
如果您不这样做,可能会导致您的图像被取消索引(如下所示)。您可以随时在Google Search Console中自行检查。
图片未编入索引
但是,Google Search Console存在缺陷,有时当索引图像出现在Google上时无法报告它们。检查您的图像是否被索引的一个好方法是前往谷歌图像搜索并输入以下内容:“site:https://yourdomain.com”。
谷歌图片搜索检查索引
重要提示:不要输入您的CDN URL。即使图像是从CDN提供的,它们仍应在您的根域上编制索引。
如果您的图片出现在Google图片搜索中,它们就会被很好地编入索引。
小结
现在您可以看到使用WordPress CDN可以获得的所有奇妙好处。它将确保您的媒体在全球范围内更快地加载,减少您的TTFB,并显着降低您的带宽成本和服务器负载。
不仅如此,由于更快的页面加载时间,您还可以看到更好的排名。最重要的是,您的访问者将获得更出色的用户体验。