「首页都三秒了,用户还说卡,到底卡在哪?」

网站访问速度慢怎么解决的,答案不是「优化一下」,是把一次打开拆成五段,看最长的那一段落在哪。下面这张表就是拆法,后面六节逐行说。

段 从哪到哪 这一段长说明什么
dns问域名到拿到 ip问路慢
tcp拿到 ip 到连上握手慢
tls连上到加密谈好证书链或协商慢
ttfb请求发完到第一个字节服务端在想
下载第一个字节到最后一个字节体积大或带宽小

表里这五段是同一趟请求里前后相接的五截,加起来约等于总耗时。第六节讲的是表外那一段。总分只能告诉你「慢」,不能告诉你「慢在哪」。

dns 段最长,是问路那一步慢

判据是 dns 段比 tcp 段还长。换一家解析再跑,还慢就是解析侧。

换一家变快,就记下原来那家。同一时段多跑两次,看是不是只在高峰慢。

tcp 和 tls 长,是连接没谈拢

tcp 长,看线路和节点距离。tls 长,看证书链是否完整、有没有多余跳转。

两条加起来仍不到总耗时三成,就先别动这两段。三成是经验线。

ttfb 最长,是服务端在想事情

ttfb 是从请求发完到收到第一个字节。这一段长,去看后端、数据库、缓存。

判据是 ttfb 占一半以上,同时下载段很短。一半是经验线。两条同时成立,才轮到翻服务端日志。

用宝塔拨测的网站测速跑一次,五段耗时是分开列的,先看最长那一段,再看它占几成。

下载段最长,是体积和带宽的事

下载段是从第一个字节到最后一个字节。

这一段长,先看页面总字节数,再看单文件最大的那个。

那么先压图、合并请求、开压缩。这一段和内存关系不大。

五段都短还慢,去看渲染和第三方

<figure><img src="https://image.bt.cn/20261113/c05092fbfe3ecf6b54011b753bb1401d.svg" alt="五段耗时都在一次请求之内,渲染和第三方脚本在请求之外" loading="lazy" width="1200" /><figcaption>五段都短还卡,问题在虚线右边</figcaption></figure>

五段加起来不到一秒,用户还说卡,那就不是网络的事。

看首屏渲染、字体、第三方脚本、图片懒加载。这几样不在这五段里。

那么换个干净的浏览器再开一次,先排除扩展和缓存。

只压一段,别五段一起动

有人把五段都压到两百毫秒以内,用户还是说卡。最后发现是统计脚本卡在渲染,跟这五段没关系。

先修最长的那一段。修完再跑一次,看第二名换成了谁。