您可以对WordPress进行许多不同的优化,其中一些比其他优化更重要。一个经常被忽视的因素是与DNS相关的查找时间,以及它对您网站的影响有多大。就像WebPageTest的示例。他们实际上对您的请求详细信息有一个快速概览,您可以在其中单击“DNS查找”列并按最高响应时间对其进行排序。我们以通过该工具运行usatoday.com为例,仅DNS查找时间就花了6.5秒!
由于所有的外部请求,许多这些新闻网站没有被高度优化是很常见的。但是正如您所看到的,他们站点上的DNS查找时间可能比大多数人的整个站点花费的时间更长。这就是DNS很重要的原因。
较长的DNS查找时间(网页测试)
如何减少和加速DNS查找
既然您对DNS的工作原理有了更多的了解,我们将向您展示一些关于如何减少DNS查找并在您的WordPress站点上加快查找速度的建议。在某些性能工具以及SolveDNS的速度测试,取了平均值。速度是从全球多个地点测量的。如您所见,除了Cloudflare,免费DNS提供商的速度肯定较慢。这就是为什么如果您认真对待您的业务和网站,我们强烈建议您使用优质DNS提供商。
DNS提供商速度
上述某些提供商在某些地区也比其他提供商更快,因此确定您需要快速DNS查找时间的区域(区域或全球)非常重要。 DNSPerf是另一种较新的DNS速度比较工具,您可以在选择提供商时使用。您知道吗,您也可以使用Cloudflare的DNS而无需其CDN功能?
技巧 2 – 更改TTL值以利用DNS缓存
值得庆幸的是,就像我们上面提到的,由于DNS缓存,您不必担心在每个页面加载时都会发生查找。这真的是关于第一次请求。DNS缓存的工作方式与缓存WordPress站点的方式类似。DNS从缓存中提供,直到它过期(这是BootstrapCDN (MaxCDN)加载。虽然这没有任何问题,但它添加了另一个您不需要的DNS查找。在大多数情况下,从您自己的CDN加载Font Awesome会更好,这样就不会再进行查找了。
Gravatar
如果您使用WordPress原生评论,您可能需要额外查找secure.gravatar.com以加载gravatars。一种简单的解决方案是使用延迟加载评论插件。虽然这不会减少DNS查找,但会延迟它直到用户向下滚动页面。因此,从某种意义上说,您正在减少首页加载时的DNS查找。请务必查看我们的博客文章,了解其他加快评论速度的方法。
谷歌字体
使用Google Fonts,您有一个额外的DNS请求来查找fonts.googleapis.com以获取CSS文件。然后,您可以向fonts.gstatic.com发出其他请求以下载字体文件。当您在本地托管所有请求时,所有请求都来自同一个域或CDN,并且很可能您不需要另一个CSS文件,因为它将在您的WordPress主题的CSS文件中。这样做有利有弊,但请查看我们关于如何在支持DNS预取 。
DNS预取浏览器支持
或者,如果您运行的是WordPress 4.6或更高版本,您可能需要使用资源提示。开发人员可以使用wp_resource_hints过滤器为dns-prefetch、preconnect、prefetch或prerender添加自定义域和URL。
技巧 7 – 延迟JavaScript的加载
如果您推迟JavaScript的加载,这可以防止在文档完全加载之前加载内容。这不会减少所需的DNS查找次数,但会阻止立即调用它们,从而可以加快用户体验。Varvy对如何延迟JavaScript有很好的解释。他在他的网站上使用的一个例子是他的Google Analytics脚本,因为它没有理由加载到首屏。
在WordPress中,您可以使用Async JavaScript等免费插件来延迟JavaScript的加载。但是,重要的是要知道您很可能必须浏览并列出您希望从延迟应用中排除的任何脚本。为什么?因为需要一些JavaScript才能在首屏呈现。Async JavaScript也与Autooptimize插件完全兼容。
在WordPress中推迟JavaScript
请务必查看我们关于如何DNS Made Easy和Cloudflare等提供商的额外记录,可以帮助减少后端的请求数量。
使用DNS轻松记录ANAME
ANAME记录为您提供CNAME记录的功能,但在根级别。例如,假设您为www.domain.com配置了CNAME。www必须首先解析为主机名,然后解析为IP地址。这需要两个请求。使用ANAME记录,您可以跳过这些请求之一!如果设置正确,这些也可以与CDN结合使用。
CNAME
ANSWER SECTION: www.domain.com. 1799 IN CNAME domain.com. domain.com. 1799 IN A 192.168.1.2
ANAME
ANSWER SECTION: www.domain.com. 1799 IN A 192.168.1.2
然而,这并不总是正确的。如果主机名在同一DNS区域中,则可能会在同一请求中检索A记录。
使用Cloudflare的CNAME Flattening
与ANAME记录类似,Cloudflare在区域顶点(或根)为其客户提供自动CNAME Flattening。
小结
DNS通常是那些被忽视的性能因素之一,但如果您不小心,它很容易占整个加载时间的很大一部分。了解DNS的工作原理很重要,那里有越来越快的提供商,以及如何减少查找以加快站点速度。