“打开网页的速度慢”并不总意味着要继续做性能优化。判断的关键不是它慢不慢,而是慢在谁身上、慢在哪个环节、继续投入是否还能改变结果。如果瓶颈已经在你的控制范围之外,或者当前页面的问题根本不是加载速度,而是抓取、索引或内容匹配,那么继续压缩图片、合并脚本只会消耗有限的人手,方向应该转向别处。
用户感觉慢,可能发生在几个完全不同的阶段。把它们混在一起,就会做出错误的排期。
这四类的处理手段不同。服务器响应慢,压缩前端图片几乎没有帮助;第三方脚本拖慢交互,换服务器也不会明显改善。因此第一步不是优化,而是定位。
很多团队看到速度指标不理想,就默认继续做技术优化。但实际工作中,速度问题可能来自三种与优化无关的情况。
第一种,页面本身不难加载,但搜索引擎还没有抓取或索引它。此时用户通过搜索找不到页面,感受到的“慢”其实是“根本出不来”。抓取、索引、排名是不同环节,速度优化只影响其中一部分,不能替代收录问题的处理。
第二种,速度已经够用,但内容与搜索意图不匹配。用户点进来发现不是想要的,很快返回,这种“慢”是体验判断,不是加载时间。继续把加载时间从两秒压到一秒,不会改变用户要不要留下。
第三种,瓶颈在第三方。广告脚本、统计工具、客服组件、外部字体,这些资源的响应时间你无法直接控制。继续优化自己的代码,收益会被第三方拖累抵消。
满足以下条件时,继续做速度优化是合理的:
一个可执行的检查方式是:用浏览器开发者工具的网络面板打开目标页面,按耗时排序,看最慢的几项分别属于自己服务器、第三方域名还是本地资源。如果最慢的几项集中在你能改的地方,就继续优化;如果集中在第三方或网络链路,就要考虑调整方向。
出现以下信号时,把时间继续投在速度优化上收益很低:
这里的判断依据是:继续优化能否改变最终结果。如果答案是否定的,调整方向不是放弃速度,而是把它排到更合适的优先级。
假设你只有一个人、每周几小时,可以按下面的顺序处理:
这个顺序的依据是:抓取和索引决定页面能否出现,内容匹配决定用户是否留下,速度决定体验是否顺畅。三者是不同环节,不能互相替代。把速度优化放在前两步之前,常见结果是投入了时间,页面依然没有获得应有的获取效果。
下一步可以做的,是选一个具体页面,记录它当前是否已被索引、内容是否匹配搜索意图、以及加载瓶颈分别属于谁。三项都清楚之后,再决定这一周的人手投向哪里。