要检查“为什么打开网页很慢”,不能只盯着服务器或只测一次首页。更有效的做法是把用户访问路径拆成四段:DNS 与连接、服务器响应、内容传输、浏览器渲染,再分别记录耗时。这样你才能判断慢在用户侧、网络侧还是站点侧,而不是凭感觉换服务器。
用户从点击链接到看到页面,通常经过以下环节:
其中任何一段变长,用户都会感觉“打开很慢”。检查的目标是找出主要耗时段,而不是同时优化所有环节。
在桌面浏览器中按 F12 打开开发者工具,切换到“网络”面板,勾选“禁用缓存”,刷新页面。重点看几个时间字段:
如果 TTFB 很高,优先查服务器;如果 TTFB 正常但大量图片、脚本下载慢,优先查资源体积与传输;如果资源都很快但页面仍卡,查渲染与脚本执行。
检查出瓶颈后,常见处理方向有两类:
判断依据是耗时分布,而不是主观偏好。若前端资源总下载时间远大于 TTFB,先做前端优化收益更直接;若 TTFB 已超过页面总时间的一半,先查后端和网络链路更合理。两者并不互斥,但应按占比决定先后。
浏览器面板适合观察,命令行适合对比前后变化。例如在终端执行:
curl -o /dev/null -s -w "dns:%{time_namelookup} connect:%{time_connect} tls:%{time_appconnect} ttfb:%{time_starttransfer} total:%{time_total}\n" https://example.com/
这条命令把 DNS、连接、TLS、TTFB 和总时间分开输出。你可以在优化前后各跑几次,取相对稳定的结果做比较。注意:单次结果会受本地网络波动影响,应多测几次并区分“可能原因”与“已定位原因”。如果 DNS 时间高,可能是本地解析或权威解析问题;如果 connect 高,可能是链路或目标网络问题;如果 ttfb 高,则更可能是服务器处理慢。
复查的意义在于确认改动是否命中了真正瓶颈。如果改完没有变化,说明判断的耗时段可能不是主因,需要回到观察步骤重新分段。
下一步:选一个真实页面,用开发者工具记录一次完整加载,再按 DNS、连接、TTFB、下载、渲染分别记下耗时,然后只针对占比最高的那一段做一次改动并复测。