前端性能优化实战:我是如何把 Astro 博客 LCP 优化到 0.7s 的?

0 阅读2分钟

前言:本文记录了一次完整的 Lighthouse 性能优化过程。从 62 分到 99 分,我踩遍了图片加载、本地预览环境、LCP

调优、字体阻塞的所有坑。

背景

最近用 Astro 5 重构了个人博客 AltStack。本以为静态站点性能无敌,结果第一次跑分只有 62 分,LCP 高达 8.2s。

这就好比买了一辆法拉利,结果开出了拖拉机的速度。

核心优化点复盘

1. 警惕 6MB 的“隐形杀手”

很多时候,慢的不是代码,是资源。我发现首页引用了两张未经压缩的 4K 大图。 对策:使用 Python 脚本 + Pillow 库进行本地压缩,并转换为 WebP 格式。体积从 6MB -> 300KB。

2. LCP 的优先级魔法

浏览器默认是懒加载图片的 (loading="lazy")。但这对于首屏大图(LCP 元素)是致命的。 代码修正: <Image src={heroImage} loading="eager" // 立即加载 fetchpriority="high" // 提高优先级 />

1 仅此一行代码,LCP 从 2.5s 降至 0.8s。
2
3 ### 3. 字体是性能杀手
4 我的 FCP 一度卡在 4.3s,罪魁祸首是 2.1MB 的中文字体文件。
5 为了追求极致速度,我最终选择移除自定义字体,改用系统字体栈:
6 `font-family: PingFang SC, Hiragino Sans GB, Microsoft YaHei, sans-serif;`
7 虽然牺牲了一点个性,但换来了秒开的体验。
8
9 ### 4. 评论区懒加载

第三方脚本(如 Twikoo)是渲染阻塞的常客。 我使用 IntersectionObserver 实现了“看见才加载”:只有当用户滚动到评论区时,才请求 JS。这让 TBT(总阻塞时间)直接归零。

总结

性能优化不是玄学,是工程。 如果你对 Astro、Cloudflare 边缘缓存策略或具体的火焰图分析感兴趣,欢迎阅读我的完整复盘文章。

👉 阅读完整版(体验更佳): xbstack.com/stack/dev/l…