资源有限时,不要同时优化所有环节。先处理“影响面最大、修复成本最低、能通过数据验证”的问题:优先压缩首屏必须加载的大图片和阻塞渲染的脚本,其次检查服务器响应时间与缓存配置,最后再考虑代码拆分、CDN等较大改动。判断依据是:同一页面在多次测试中,哪一类资源的加载耗时占比最高,就先处理哪一类。
没有基线数据,任何优化都无法判断是否有效。准备阶段只需要三样东西:一个固定的测试页面、一个固定的测试工具、一份记录表格。
这一步的产出是一张表:页面、测试时间、总大小、请求数、首屏渲染时间。后续所有改动都和这张表对比。
资源有限意味着只能做少数几件事。下面按“改动小、见效快”到“改动大、见效慢”排列,建议从上往下做,做到哪一步收益不明显就停。
loading="lazy",把已上传的大图重新导出为合适尺寸,并用 WebP 等现代格式替换。适用条件:页面图片多、单张超过200KB。判断结果:Network 面板中图片传输总量明显下降。<head> 中的外部 CSS 和同步 JavaScript。非首屏必需的脚本加 defer 或 async;首屏关键 CSS 可以内联,其余异步加载。适用条件:HTML 下载完成后长时间白屏。判断结果:首次内容绘制时间提前。如果以上都做完仍不理想,再考虑 CDN、代码拆分、HTTP/2 或升级主机。这些改动成本更高,应放在最后。
每完成一项改动,用与准备阶段完全相同的方式复测,并对比基线表。需要注意两点:
验证的合格标准不是某个固定数值,而是同一页面在相同条件下,目标指标比基线有稳定改善,且没有引入新的报错或布局问题。
速度优化不是一次性任务。上传新图前先压缩,新增第三方脚本前先评估必要性,主题或插件更新后复测一次关键页面。可以每月用同一套流程抽查一次,把结果追加到基线表中。这样下次再遇到变慢,就能快速看出是哪次改动造成的。
下一步:打开浏览器开发者工具的 Network 面板,对首页做一次禁用缓存的刷新,记录总传输大小和 TTFB,然后对照上面的排序,选出你当前最该先处理的那一项。