首屏 LCP 测出来 2.4 秒,Performance 面板里有一条 favicon 请求占了 300 毫秒,还排在关键资源前面。日志里能对上时间点,这种反而好排。
浏览器解析 head 时会去拿图标,服务器对这个路径响应慢或者先 404 再重试,这段时间和首屏资源抢连接。HTTP/2 下影响小一些,但慢响应仍然占住一个流。这一点先确认清楚,后面就不用反复试。
<link rel="icon" href="/favicon.ico" sizes="32x32">
「favicon 请求阻塞」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。
改完顺手把文档补一句,省得下次自己重新推一遍。监控和日志的时间要对上,时区不一致会多绕很大一圈。
处理上按这个顺序:给图标配短缓存 避免每次都回源;确认这个路径不再走动态路由 交给静态服务器直接返回;head 里的 link 放到样式表之后 别挤在最前面;用 Performance 面板看首屏关键请求还剩哪些。
结果对不对很好判断,首屏关键路径里不再出现图标请求 LCP 少了 200 毫秒以上。
