资源有限时,不要从“优化代码”开始,而要先找出让最多用户、在最多页面上变慢的那一个环节。按下面清单从上到下查,遇到第一个“结果异常”的项就先修它,通常比同时改十处更有效。
要查的是“慢在哪一段”,而不是“感觉慢”。用浏览器开发者工具的 Network 面板打开一个代表性页面,看三个数字:服务器返回第一个字节的时间、页面主文档下载耗时、最大那张图片或脚本的耗时。如果服务器响应就占了大部分时间,后面优化图片和脚本收益很小;如果服务器很快、资源加载很慢,问题就在资源体积或数量上。适用条件:任意页面都可执行。判断结果:某一项明显高于其余项,它就是优先处理对象。
要查的是影响范围。分别用手机网络和宽带、从不同地区或不同运营商访问同一页面。如果只有移动网络慢,优先压缩图片、减少首屏脚本;如果所有人都慢,优先查服务器和数据库。这一步决定了投入方向,避免把时间花在只影响少数人的问题上。
把候选问题列成一张表,逐项标注:影响多少页面、影响多少访问者、预计修复需要多久。优先做“影响面大、改动小”的项,例如压缩首屏大图、开启文本压缩、减少重定向。把“影响面小、改动大”的项,例如整体重构前端框架,放到后面。这是资源有限时最实用的排序依据。
每项都记录“查之前的值”和“改之后的值”,否则无法判断改动是否真的有效。假设某页面首屏图片共 4MB,压缩到 800KB 后移动端明显变快,这说明图片是主要瓶颈;如果压缩后几乎没变化,瓶颈就在别处,应回到第一步重新定位。
打开慢影响的是用户等待和页面体验,抓取与索引是搜索引擎发现和理解页面的另外环节。速度改善可能间接帮助抓取预算,但不能保证收录或排名变化。因此排查时以真实用户的加载数据为准,不要把“没被收录”直接当成“打开慢”来处理。
下一步:选一个访问量最高的页面,按上面清单完整跑一遍,只修排在第一的那个问题,改完再测一次,确认有效后再处理第二项。