资源有限时,先处理“影响面大、修复成本低、可验证”的问题:先确认慢在服务器响应、下载资源还是浏览器渲染,再按证据排序。不要一上来就换服务器或上CDN,那通常是成本最高的一步。
网站访问速度可以粗略拆成三段:服务器处理请求并返回首字节(TTFB)、浏览器下载HTML/CSS/JS/图片、浏览器解析并渲染页面。三者优化手段完全不同,判断错阶段会白花钱。
假设一个例子:某博客首页加载要6秒。用浏览器开发者工具的“网络”面板查看,发现HTML本身只用了0.3秒返回,但一张首屏大图2.8MB、加载耗时3秒,另外两个JS文件各阻塞了约1秒。这个假设说明,问题主要在资源体积和阻塞脚本,而不是服务器。如果TTFB本身就有2秒以上,才需要先查服务器、数据库或后端逻辑。
defer或async,把首屏关键CSS内联,其余CSS异步加载。判断依据是“网络”面板中脚本是否排在HTML解析之前。Content-Encoding和Cache-Control。常见错误是跳过测量直接动手:比如先花钱换高配服务器,结果瓶颈其实在图片;或者只压缩了图片,却没发现两个同步脚本仍在阻塞首屏。另一个错误是只看总加载时间,不看单项资源的耗时占比,导致优化了不重要的部分。
可以用两个指标做粗筛:一是最大单文件体积,二是阻塞渲染的资源数量。优先处理“体积最大且出现在首屏”的文件,以及“位于HTML头部且无defer/async”的脚本。修改后重新测量同一页面、同一网络条件,对比前后数值。如果某项改动没有带来可测量的变化,就说明它不是当前瓶颈,应换下一项。
适用条件:这套顺序适合中小型内容站和展示型网站。如果网站是重交互应用,瓶颈可能在框架初始化和接口请求,需要单独分析。
打开浏览器开发者工具的网络面板,刷新首页,按“大小”和“耗时”各排一次序,记录前三名资源。先处理其中体积最大的一张图片或一个脚本,改完再测一次,用数据确认是否继续下一项。