TrueURL
TrueURL

菜单

免费重定向工具

重定向延迟检测

每一次重定向,都会让访问者在真正的页面加载之前多等一次往返。通过耗时瀑布图,准确查看重定向链中每一跳花了多长时间。

检测次数

为什么重定向延迟很重要

一次重定向就是一次完整的额外请求。浏览器必须查询下一个主机名、建立连接、为新域名协商 TLS 并等待服务器响应,然后才能请求页面本身。同一主机名上的一跳可能只需几十毫秒,而一条经过短链接服务、跟踪域名和 HTTP 到 HTTPS 规则的重定向链,很容易就会增加半秒甚至更多,在移动网络上尤其如此。

重定向时间发生在所有其他环节之前,因此会直接计入 Time to First Byte(TTFB,首字节时间)和 Largest Contentful Paint(LCP,最大内容绘制)。正因为如此,Lighthouse 和 PageSpeed Insights 会对主文档上的重定向发出警告。

耗时是如何测量的

对于每一跳,TrueURL 测量从发出请求到收到响应头所用的时间。需要建立新连接时,其中包括 DNS 查询以及 TCP 和 TLS 连接建立的时间,再加上服务器的处理时间,但不包括下载页面正文的时间。瀑布图按顺序显示各跳,最慢的一跳一眼就能看出来。

测量是在执行检测的 Cloudflare 数据中心(通常是离您最近的那个)进行的,而不是在您的设备上。结果反映的是每台服务器的响应速度,而真实访问者在每一跳上还要加上自己的网络延迟。多次运行可以减少偶然波动:第一次运行可能包含 DNS 缓存尚未预热和新建连接的时间,之后的运行通常更接近稳定状态。

什么样的重定向算慢?

以下仅供粗略参考,也是 TrueURL 为每一跳耗时着色所用的标准:

  • 每跳低于 200 ms:快,常见于由 CDN 边缘节点或简单的 Web 服务器规则响应的重定向。
  • 200~600 ms:可以接受,常见于应用服务器,或者需要建立新 TLS 连接的跨域名重定向。
  • 600 ms 及以上:慢。这类重定向很可能是由较重的应用程序生成的,例如需要加载插件或执行数据库查询的 CMS,而不是一条简单的规则。

最有效的优化方法是彻底去掉多余的跳。其次,要尽可能在离访问者近的地方响应重定向:CDN 或边缘规则的响应速度,远远快于仅为了发送一个 301 就必须启动的应用程序。

如何让重定向更快

  • 在网站以及邮件、广告和社交媒体资料中直接链接到最终 URL,让大多数访问者根本不会遇到重定向。
  • 将 HTTP 到 HTTPS、主机名和斜杠规则合并为一跳;HTTPS 重定向检测可以显示这些规则是否已经合并。
  • 在 CDN、负载均衡器或 Web 服务器配置中处理重定向,而不是在应用程序中处理。
  • 发送 HSTS 响应头,让回访者完全跳过 HTTP 到 HTTPS 的重定向。
  • 避免把多个短链接服务和跟踪重定向层层叠加。

相关指南

  • 阅读约 13 分钟

    HTTP 重定向状态码详解:301、302、303、307、308 等

    详解每个 3xx 状态码的含义:从是否永久、是否保留请求方法、缓存和 SEO 影响 4 个方面对比 301、302、303、307 和 308 跳转,并附 nginx、Apache 和 PHP 配置示例。

    阅读全文

常见问题

一次重定向会让页面变慢多少?

这取决于服务器和距离,但每一跳都是一次完整的往返:同一主机名上的边缘重定向通常需要几十毫秒,而重定向到新域名或来自缓慢应用程序的重定向则需要几百毫秒。移动网络还会增加更多延迟。在上方测量自己的重定向链,就能知道具体数值。

为什么测得的时间与浏览器开发者工具中的不同?

TrueURL 从 Cloudflare 数据中心进行测量,它与目标服务器之间的连接通常比您的设备更快。浏览器还可能复用连接、借助 HSTS 跳过某次重定向,或者使用缓存的 301。这些数值适合用来比较各跳,而不能精确预测每位访问者的实际体验。

为什么第一跳比其他跳慢得多?

对某个主机名的第一次请求通常包括 DNS 查询以及新建 TCP 和 TLS 连接,而同一主机名上的后续各跳可能会复用其中的部分工作。如果慢的是后面的某一跳,请查看那台服务器为生成重定向做了哪些处理。

需要多次运行检测吗?

如果想得到可靠的数据,就需要。单次测量结果会随网络状况和服务器负载而波动。多运行几次,看典型值,而不是某一个异常值;第一次运行预热的缓存,往往会让之后的运行更快。

重定向延迟会影响 SEO 吗?

会间接影响。对于经由重定向到达的访问者,重定向时间会计入 Time to First Byte 和 Largest Contentful Paint,而 LCP 是 Google 核心网页指标(Core Web Vitals)之一。在大型网站上,缓慢的重定向还会减少爬虫在同样时间内能够抓取的页面数量。

每一跳的时间就是页面的总加载时间吗?

不是。它只是收到该跳响应头之前的时间。最终页面之后还要下载 HTML、样式、脚本和图片,因此重定向时间是叠加在正常加载之上的额外延迟。