如何减少 DNS 查找以提高网站性能

已发表: 2023-01-24

如果您想优化网站的性能并确保它出于视觉和技术原因快速加载,那么减少 DNS 查找是这个等式中的一个关键因素。 通过减少 DNS 查找,您可以提升用户体验并减少页面加载时间——这两者都是任何成功网站不可或缺的要素。 在这篇博文中,我们将首先解释 DNS 的工作原理并定义什么是 DNS 查找。 我们还将探讨浏览器速度和 SEO 指标如何受到过多 DNS 查找的影响,并提供减少它们的策略,以优化您的网页以提高性能。

您需要了解的有关 DNS 查找的所有信息

什么是 DNS 查找?

域名服务器 (DNS) 是互联网的基石。 它们的功能类似于网站的电话簿,将它们与其 IP 地址相关联。 DNS 查找是为特定网站的 URL 发现正确 IP 地址的过程。

它是 DNS 服务器向请求者返回有关 DNS 记录的信息的过程,包括:

  • 这个域名是谁,什么,在哪里?
  • IP 地址是什么,谁拥有它,它位于何处?
  • 记录的名称是什么?

DNS 查询结果

DNS 查找分为两种类型:正向 DNS 查找和反向 DNS 查找。

转发 DNS 查找

正向 DNS 查找,或正向 DNS 查询,是通过域搜索获取 IP 地址的请求。 当用户写入网站 URL 或发送电子邮件时,IP 地址将作为常规 DNS 查询路径的一部分返回。

该方法允许客户端将域名或电子邮件地址转换为可用于与服务器通信的IP地址。

反向 DNS 查询

反向 DNS 本质上是正向 DNS 的逆向。 该请求确定与 IP 地址关联的域名。 为了确认从中接收消息的服务器的合法性,电子邮件服务器经常进行反向查找。

要完成此操作,必须在邮件服务器上创建指针记录 (PTR)。 邮件服务器依靠这些记录来确定哪个 IP 地址对相关域的邮件发送和接收具有权威性。

IP 所有者(通常是电子邮件服务器的主机或 ISP)为以“in-addr.arpa”结尾且前面有几个数字的服务器分配一个区域。 区域开头的数字是服务器 IP 块的反向版本。

反向 DNS 查询

DNS 查找如何工作?

当您访问网站时,您的浏览器会识别所有需要 DNS 查询的资源。 然后,它在下载任何资源之前等待查找完成。

网站需要的查找次数越多,浏览器生成页面所需的时间就越长。 下面提供了一个快速 DNS 查找示例,以了解查找过程。

假设浏览器希望与“xyz-server.com”网络服务器建立连接。 为此,它需要服务器的 IP 地址。 计算机首先检查输入的名称是否在其缓存中或在其主机文件中。 如果没有,它向负责的服务器查询。 这是通过 DHCP 分配的或永久配置的。

如果服务器可以完成请求,它会将响应返回给请求者。 如果不是这种情况,它会联系负责该域的另一台服务器。 使用提供的 IP 地址,浏览器可以通过 IP 网络与 Web 服务器(Internet)进行交互。

使用 PageSpeed Insights 时,“减少初始服务器响应时间”选项与 DNS 查找相关联:

链接到 DNS 的“减少初始服务器响应时间”选项

第一个字节的时间 (TTFB) 以 HTTP 请求开始。 服务器处理请求所需的时间取决于完成 DNS 查询的速度、用户网络的速度、服务器的距离以及连接是否中断。

由于 PageSpeed Insights 无法帮助我们确定是什么触发了 DNS 查找,我们将不得不利用其他工具来隔离和解决此问题。 要确定如何解决该问题,让我们检查一下 DNS 查找的工作原理。

减少 DNS 查找意味着什么?

众所周知,网站加载速度是最重要的 SEO 和搜索引擎排名要素之一。 您的网站加载速度越快,您的搜索引擎排名就越高。 具体来说,您可能会在进行 Google 页面性能测试时看到基本的 Web 要素。

免费获取 10WEB BOOSTER
免费获取 10WEB BOOSTER

DNS 查找在衡量网站性能时可能至关重要,因为它们直接影响 LCP(最大内容绘制)和 FCP(首次内容绘制)。 LCP 定义为加载网站主要内容所花费的时间,而 FCP 是从用户请求页面到浏览器在屏幕上呈现任何内容的时间范围。 DNS 查找时间强烈影响这些元素的加载速度,从而影响用户体验网站的方式。 随着技术的不断进步,优化 DNS 查找时间对于确保出色的用户体验将变得越来越重要。

笔记

要了解有关 Core Web Vitals 的更多信息,请阅读 Core Web Vitals:您永远需要的唯一指南。

这是非常重要的,因为超过 50% 的人选择离开加载时间超过三秒的网站。 DNS 查找在此阶段进入画面。 如果您的网站可以立即或尽可能快地进行 DNS 查找,它将提高网页的 LCP、FCP 和 TTFB,以及页面上资源(例如图像或脚本或样式)的 TTFB。

让我们通过一个示例来说明 DNS 查找如何影响总页面加载时间。 当您在浏览器的地址栏中输入网站 URL 或域名时,DNS 查找程序将开始。

然后,DNS 将通过尝试将输入的域与网站的 IP 地址匹配来尝试检索请求的网站。 现在,您尝试访问的网站已准备好加载。 但是,如果不存在DNS查找程序,则每次访问站点时都必须输入站点的IP地址而不是域名。 如果 DNS 查找页面需要一秒钟才能完成该过程。 这将远远超过谷歌的建议。

因此,减少 DNS 查找时间至关重要。 通常,DNS 查找需要20 到 120 毫秒 通常,介于此和以下的任何东西都被认为是非常好的。 现在,让我们研究如何改进 DNS 响应时间并减少 DNS 查找。

过多的 DNS 查找对 UX 和 SEO 有何影响?

对于用户体验 (UX) 设计师和搜索引擎优化 (SEO) 专业人员来说,过多的 DNS 查找可能是一个主要问题。 随着网站向域名服务器发出的请求数量的增加,它会显着减慢加载时间,从而导致糟糕的用户体验。 此外,Google 的搜索引擎在加载时间长的网站上看起来不受欢迎,这意味着即使您的内容可能有价值且经过优化,但也会因性能不佳而被埋没。 设计人员和专业人员需要确保尽可能减少 DNS 查找次数。

此外,DNS 可能会以多种方式影响 SEO 结果。 有些是显而易见的,而另一些则不那么明显。 让我们分别检查每一个。

网站加载速度

在访问者的浏览器中加载网站之前,DNS 是第一个发生的过程。 如前所述,DNS 解析可能是一个漫长的过程,会增加访问者体验的总时间。 来自全球的优秀 DNS 提供商的平均 20 毫秒与一切都留给域注册商的 200 到 500 毫秒之间存在显着差异。

可用性

频繁和长时间的 DNS 中断会对您网站的搜索引擎优化产生负面影响。 如果搜索引擎机器人试图访问您的网站但无法访问,它将报告此事件。 首先,索引新添加的页面会变慢。 其次,它会包含关于一般可用性的说明,这可能会对您网站的排名产生负面影响。

多个地点

DNS 提供商可能会提供多个存在点 (PoP),您可以从中设置名称服务器。 它将通过缩短访问者与名称服务器之间的路径来显着提高访问者的速度。 30+ 个 PoP 肯定优于几个。 此外,它将提高可用性。

DNS迁移

如果 DNS 传输成功完成并采取了必要的预防措施,则用户和搜索引擎机器人都不会注意到任何变化。 只有当前面的 DNS 记录的 TTL 值非常高并且此类 DNS 记录在递归名称服务器的 DNS 缓存中保留较长时间时,才会出现此问题。 它们将继续指向过时的 IP,直到缓存更新,从而导致停机。

如何进行 DNS 查找速度测试?

响应时间过长可能有多种原因,包括服务器负载、网络不可预测性、JavaScript 中影响加载顺序的竞争条件等。如果您的网站加载不一致,您应该在开发人员工具的性能选项卡中运行一些配置文件启用网络节流以查看结果。

花时间进行 DNS 查找速度测试可以帮助确保您的网站尽可能快地运行。 Pingdom、GTmetrix 和 WebPageTest都是功能强大的工具,可让您检查站点的 DNS 查找时间。

您必须注册该服务并输入您的网站地址才能使用它们。 然后,结果将提供请求的详细分类以识别您的域名系统。 从那里,您可以查明需要改进的地方,以减少加载时间并让访问者参与您的内容。 控制您网站的 DNS 查找性能是保持最佳在线业务运营的重要一步。

现在让我们来看看每个工具以及如何执行速度测试:

Pingdom DNS 查询

要使用 Pingdom 测试您的 DNS 查找,请访问他们的工具页面并输入您网站的 URL:

Pingdom DNS 查询

在“Improve page performance”区域下,您可以一眼确定您是否遇到此问题: “减少 DNS 查找”问题 “减少 DNS 查找”显示为红色且不及格。 这个网站没有缓存,没有性能插件,故障很多。

向下滚动以获得对 DNS 查找问题的更广泛的解释。 此粉红色条表示 DNS 响应时间(以毫秒为单位)。 将鼠标悬停在每个文件请求上时,您可以观察文件是否需要 DNS 搜索以及加载需要多长时间。

DNS 查找问题的详尽解释

GTmetrix DNS 查询

如果您想确定导致 GTmetrix 上更长时间的 DNS 查找的原因,请在测试工具中键入 URL:

GTmetrix DNS 查询

在 Waterfall 选项卡中,将鼠标悬停在特定文件请求上以查看以毫秒为单位的 DNS 查找。

以毫秒为单位的 DNS 查找

重要的是要检查每个文件并确定它是否有 DNS 查找以及加载需要多长时间。 目标应该是实现 40 毫秒或更短的响应时间。

WebPagetest DNS 查询

尽管 Pingdom 和 GTmetrix 是很棒的工具,但 WebPagetest 似乎提供了更具体的结果。 转到他们的网站并输入您的网址:

WebPagetest DNS 查询

测试完成后,点击“View”,选择“Details”:

WebPagetest DNS 查询

当您点击“DNS查询”栏时,您可以按照最快的响应时间来排列您的请求信息。

WebPagetest DNS Lookup请求信息表

如何减少 DNS 查找

DNS 查找会导致网站加载速度显着延迟,这就是防止不需要的 DNS 查找很重要的原因。 幸运的是,我们可以使用一些策略来优化我们网站的 DNS 查找并增强用户体验。 以下策略将帮助您减少 DNS 查找:

使用快速 DNS 服务

使用高质量的 DNS 服务是最关键的因素。 有多种免费和收费的 DNS 服务。

当您从 GoDaddy、NameCheap 或 NameSilo 等知名注册商处购买域名时,您将获得免费 DNS。 这些 DNS 提供商通常需要更加活跃,并且随着请求大小的增长,DNS 查找时间也会增加。

然后是亚马逊和 Cloudflare 等 DNS 提供商,它们的 POP 分布在许多国家/地区。 高级 DNS 服务速度快且延迟极低。

最佳 DNS 提供商

来源

减少主机数量

减少主机名的数量是减少域名系统 (DNS) 查找次数的一种简单而有效的技术。 每个主机名都有自己的一组 DNS 查询,必须对这些查询进行查询才能从中检索网页和资源。 因此,减少网页所需的主机名数量可以显着减少其加载速度所需的时间。 减少此数量的最简单方法是合并多个主机的资源。 这可以包括采用诸如通过单个 CDN 进行资产串联和分发、减少重定向、删除过时的域分片等技术。 在设计过程中采取这些步骤对于确保您的网站表现良好并继续吸引观众至关重要。

简而言之,如果您有一个网页需要来自 10 个不同主机的资源,您可以通过将这些资源整合到更少的主机上来减少 DNS 的负载。 这可以通过组合文件类型并为多个应用程序重复使用现有域名来实现。 这样做可以减轻 DNS 的压力,因为每个域名只需要查找一次。 这是一种有效的方法,可以减少加载网页时的延迟,并使用户的浏览速度更快。

使用 CDN

将尽可能多的资源转移到 CDN 提供商是减少 DNS 查找的最简单策略之一。 如果您使用 Pingdom 操作您的网站,您可能会看到域请求的总数。 此示例演示了93.8% 的请求被发送到 CDN URL 一个请求被发送到主机,而另一个被发送到 Google Analytics。 通过将尽可能多的资源转移到内容分发网络 (CDN),可以减少 DNS 查找次数,从而缩短加载时间。

显然,将所有内容传输到您的 CDN 只是有时是可行的。 总会有外部材料或服务必须从各自的服务器加载。 但是,我们鼓励浏览您的网站。 我们经常看到 WordPress 客户需要将许多资源妥善存放在他们的 CDN 上。 这使您可以最大限度地发挥 HTTP/2 和并行化的优势。

最近将 Cloudflare 企业 CDN 集成到 10Web Booster Pro 中,为用户提供了强大、可靠的 Web 性能提升。 它有助于确保更快地交付图像和视频等不可替代的资产,即使在全球流量高峰期间也是如此。 利用 Cloudflare 的高级缓存服务和 10Web Booster 的优化功能的优势,为用户提供无与伦比的解决方案来定制他们的网站速度和用户体验。 这种新的集成将 Cloudfare 全球交付网络的便利性和可靠性与 10Web Booster Pro 的综合优化套件完美结合。

免费获取 10WEB BOOSTER
免费获取 10WEB BOOSTER

启用保活

启用保持活动是减少 DNS 查找的另一种方法。 它是指在服务器和浏览器之间保持活动连接以同时加载多个资产文件。

没有它,资源文件将作为单独的请求加载,即使单个域可能包含许多资源。 例如,来自“facebook.com”的一个资产和来自“Twitter.com”的三个资源将导致四个 DNS 查询。

在启用 keep-alive 的情况下,相同的资源总共只会加载两个查询。 所有主流浏览器都支持 Keep-alive,并且在大多数情况下默认启用。 在 Apache 和 Nginx 服务器上,如果它被停用,您可以重新启用它。

对于阿帕奇

如果您使用的是 Apache 服务器,则应按如下方式修改 .htaccess 文件:

 <ifModule mod_headers.c>

标头设置连接保持活动

</ifModule>

对于 NGINX

找到HTTP核心模块(ngx_http_core_module),搜索类似keep-disable的一行,替换成下面一行。

 keepalive_disable 无;

使用 DNS 缓存对您有利

DNS 缓存(也称为 DNS 解析器缓存)是存储在设备(例如您的计算机或手机)上的临时 DNS 记录,并保存有关以前访问过的域名的数据(例如 IPv4 地址的 A 记录或 IPv6 的 AAAA 记录)地址)。 它根据剩余寿命 (TTL) 维护这些数据。

每次您访问网站时,其地址都会存储在这个临时记录数据库中,以加快后续访问速度。 DNS 缓存使浏览器能够记住域的 IP 地址。 浏览器不需要执行请求来定位 IP。 在第一次速度测试中,DNS 查找时间通常比第二次长。

DNS 缓存的持续时间称为 TTL 或生存时间。

可以使用您的域名注册商或第三方 DNS 服务修改 TTL 设置,以增加 DNS 缓存时间。 必须了解 ISP 也会缓存 DNS。 下面是一些典型的 TTL 值。

  • 300 秒 = 5 分钟
  • 1800 秒 = 30 分钟
  • 3600 秒 = 1 小时
  • 43200 秒 = 12 小时
  • 86400 秒 = 24 小时

Cloudflare TTL: 30 分钟到 1 小时之间的 Cloudflare TTL 值通常最受欢迎。然而,一些额外将他们的 TTL 设置为相对较低的值以促进快速更新。 Cloudflare 是默认 TTL 为五分钟的服务示例之一。 此外,检查各种 DNS 记录并根据它们的更改频率对其进行配置可能是有利的。 这是一个例子:

  • A和AAAA记录:修改更规律; 5 分钟到 1 小时之间的某个时间通常是可以接受的。
  • CNAME 条目很少改变; 24 小时的 TTL 通常就足够了。
  • NS 记录几乎很少改变; 24 小时的 TTL 通常是可以接受的。
  • 不经常更改 MX 记录; 12 小时的 TTL 通常是可以接受的。
  • TXT记录:修改较少; 12 小时的 TTL 通常就足够了。

关于TTL,没有绝对正确或不正确的回答。 不过,选择与网站更新频率相对应的 TTL 将提高 DNS 查找性能。

总之,DNS 缓存应该对您有利。 通过缓存,浏览器无需查询 DNS 即可确定主机名。 建立成功的 DNS 缓存策略对于高性能网站或应用程序至关重要。 因此,为 DNS 缓存选择最合适的设置非常重要。 在大多数情况下,在网络中放置一个可以长时间缓存域名和其他相关信息的递归解析器是一种有效的方法。 它通过确保查找在本地快速解决来帮助减少延迟。 此外,跨多个位置部署水平分割 DNS 可以提高分布式应用程序的可用性和冗余度。 最终,为 DNS 缓存选择正确的设置可能是让客户满意和让用户失望的区别。

DNS预取

DNS 预取 DNS 预取允许浏览器在用户浏览当前页面时在后台不可见地进行 DNS 查找。

当用户点击任何链接进入下一页时,该网站不会进行 DNS 查找。 因此,后续页面会快速加载。

您可以使用单个标记行快速实现 DNS 预取。

您的链接位于 https://www.yourlink.com。

DNS预取

您可以通过简单的标记行快速添加 DNS 预取。

 <link rel="dns-prefetch" href="https://www.yourlink.com">

一个微小的链接属性都会对 DNS 的登陆速度产生影响。

降低 CNAME 记录的数量

CNAME 记录用于将多个主机名与同一 IP 地址相关联,虽然它们在某些设置中很有用,但如果管理不当,它们可能会导致过多的 DNS 查找。 在不增加 DNS 查询次数的情况下挖掘 CNAME 记录的潜力首先要了解这些记录如何与您的域交互,然后采取一些简单的步骤来降低它们的数量。

ANAME 记录与 CNAME 具有相同的功能,但在根级别,是最好的解决方案。

因此,ANAME 记录比 CNAME 记录对网站性能的贡献更大。

延迟 JavaScript 解析和加载不重要的 CSS

延迟 Javascript 将延迟 Javascript 的处理,直到页面内容加载完毕。 在页面的其他组件之前加载 Javascript 会减慢页面的加载时间,因为 Javascript 会阻止其他资源的加载,直到它被完全处理为止。 如果脚本是从需要 DNS 查找的不同域加载的,那么延迟它们的加载将有助于完全摆脱 DNS 查找。

笔记

如何在 WordPress 中延迟解析 JavaScript?

如何在 WordPress 中内联关键 CSS 和延迟未使用的 CSS?


直接的答案是在最后或异步加载 Javascript。 WordPress 用户可以访问各种免费插件,包括 10Web Booster,它为两个关键的网站性能问题提供了有效的解决方案:JS 执行和 CSS 交付。

Booster 中实现的 JS 延迟技术可以帮助减少 JavaScript 代码的解析和执行,显着提高网站速度。 延迟技术归结为最大限度地减少需要一次加载到页面上的 JavaScript 文件和块的数量,在请求发生之前主动管理请求,而 Critical CSS 以可见的方式内联推送所需的任何暂存代码样式或设计元素进入页面以消除呈现网站时的额外负载。 这种先进的方法解决了潜在的网站速度问题,这意味着页面会立即呈现,从而改善用户体验并在搜索引擎结果中获得更高的排名。

免费获取 10WEB BOOSTER
免费获取 10WEB BOOSTER

跟踪您的 DNS 查找时间

持续对您的网站进行基准测试是理解 DNS 查找时间如何影响网站性能的最简单技术。 这将更清楚地说明必须更改的内容以及瓶颈所在。 为此,您需要一个可以记录网站加载时间的监控工具。 考虑一个可以评估超过 DNS 查找时间的方法,因为您还必须监控其他重要的网站指标以保持网站的整体性能。

结论

优化 DNS 查找是网站优化和用户体验改善的重要组成部分。 本文解释了 DNS 查找的工作原理、如何减少它们,以及过多的 DNS 查找对 UX 和 SEO 有什么样的影响,并提供了使用不同策略减少 DNS 查找的建议。

过多的 DNS 查找会增加页面加载速度的不必要时间,并对用户体验产生负面影响。 如果您阻止不需要的 DNS 查找,您的站点在搜索引擎中的性能和排名将得到保留。 但是,有一些方法可以减少 DNS 查找并提高您网站的速度。 通过遵循此博客文章中概述的提示,您可以确保您的网站以最高效率运行。

您还有其他减少 DNS 查找的技巧吗? 在下面的评论中与我们分享!

常见问题

是什么导致 DNS 查找缓慢?

导致 DNS 查找缓慢的可能原因有很多,包括 DNS 服务器损坏、DNS 设置不正确、互联网连接速度慢,或者网络上其他应用程序或设备同时发出的 DNS 请求过多。

多少次 DNS 查找太多了?

这个问题没有明确的答案,因为过多的 DNS 查找次数会因每个网站的配置和使用情况而异。 通常,在您开始看到响应延迟之前,每秒最多进行 10-15 次查找。

是否有 WordPress 插件可以减少 DNS 查找?

是的,一些 WordPress 插件有助于减少 DNS 查找,例如 10Web Booster、LiteSpeed 缓存和 WP Rocket。

最快的 DNS 提供商有哪些?

一些最快的 DNS 提供商包括 Google Public DNS、OpenDNS 和 CloudFlare 自己的 Public DNS 服务。

如何减少 CloudFlare 中的 DNS 查找?

可以通过启用完全压缩来减少 DNS 查找,这将压缩来自 Cloudflare 的响应和对 Cloudflare 的请求。
此外,使用像 Cloudflare 这样的 CDN 还允许您在其边缘节点缓存静态文件(例如,图像、CSS、JavaScript),这样就不必从源服务器再次下载这些文件。 这可以减少 DNS 查找,因为文件是从本地缓存提供的,而不是通过 Internet 查找。