一个人,一台电脑,一段代码,与Google打了一场酣畅淋漓的性能拉锯战
【序章】Google Search Console 给我的第一记耳光
项目上线已经一个月,SEO 配置万无一失,Vercel 部署也顺利。可打开 Google Search Console,页面清一色“已抓取-尚未编入索引”。
什么?!
难道是新站观察期?还是 robots.txt 配错了?我们开始自我排查,改 User Agent、改 canonical、关中间件……甚至迷信地怀疑是不是域名风水不对。
期间我们还遇到各种“看似关键”的问题,比如 Next.js 默认的 308 跳转,理论上可能影响抓取效率。我们一顿操作修复了它——可惜收录依然是零。
就在一筹莫展之际,我偶然点开了一个链接:PageSpeed Insights。
“哇,还能打分欸?来来来,测一下我最得意的工具页面。”
几秒钟后,PageSpeed 的裁判狠狠甩出了一块 38 分的红牌。
我愣住了,脑子嗡的一下,手指颤抖地再点一遍分析——40 分。
“什么鬼?我这可是 nextjs + nestjs 的现代架构啊。怎么可能这么低?!”
愤怒之下,我顺手把 Adobe 同款工具页地址贴进去,结果是:65 分。
“哼!大厂也不过如此。60 分就算及格吧?那我冲个 60 就行了。”
我对自己说。
那一刻我还不知道,我将开启一场旷日持久的修炼之路。
【第一阶段】从“你是个什么东西”开始修炼
PageSpeed 的评分报告像是打开了一个新的异世界大门。
LCP?TBT?CLS?FLJ?这些新名词简直像小说里的宗派招式,全是陌生术语,让人望而生畏。
每一次点击“分析”按钮,就像在参加一场玄幻修行考核。
我开始满世界查资料,一边盯着 Lighthouse 报告一边 Google:
“TBT 是什么?”
“Next.js 怎么优化 LCP?”
“为什么我的网页评分比大厂低?”
好在这是 AI 时代,我的得力助手——婉儿上线了。
我:LCP 是啥?
婉儿:最大内容绘制,是衡量用户看到页面主内容的时间点。
我:TBT 怎么破?
婉儿:主线程被阻塞太久,得清理干扰项,比如大编辑器组件。
就这样,我像是一个刚刚下山历练的修仙少年,每天跟不同的敌人交战。
dynamic、lazy、isClient、App Router、RSC、客户端边界拆分……一个个像招式一样熟练掌握。
遇到问题——测试,测试,再测试。
晚上做梦都在跟 PageSpeed 的评分打架。
【第二阶段】LCP 与 TBT:宿敌登场,斗智斗勇
第 4~7 天,我把全部精力都倾注到两个“大魔王”身上——LCP 与 TBT。
LCP 就像个死皮赖脸的粘人精,死死咬住 Hero 区域。
我试过用 MUI 的 Box、用 RSC 组件、换字体、关掉图片……甚至直接用纯 HTML+Module CSS 写死它,一字不差地刻进页面。
PageSpeed 看了看,冷冷地说:LCP 延迟 1700ms。
我一怒之下,改变战术,采用双lazy打法!除了外壳layout,其他统统lazy!
这个结构最终打动了 PageSpeed,一次提分 30!
TBT 更像个暴躁老哥,一不小心就满屏红色警告。
尤其是 Monaco Editor,把主线程按在地上摩擦。
我试过用 dynamic、lazy、包 loader,结果全都失败。
最后只能重写一整套超轻量编辑器,才终于清除这个拖后腿的元凶。
期间我们还误入“字体优化”歧途,一度因为 webfont 拖慢加载时间,导致 CLS 飙高,PageSpeed 分数原地打转。
我甚至还测试了完全不要字体,使用系统字体,只为争取那 0.1s 的加载速度。
那段时间,每一次优化都像是一场打怪升级的试炼,每晚都在 Devtools、Lighthouse、Speed Insights 三件套中沉浮。
【第三阶段】破晓之光,分数跃升!
第 8 天,一次深夜测试,我带着“这次真的应该没问题了吧?”的期待再次点击分析。
“正在分析中……”
几秒钟后,PageSpeed 像游戏 GM 一样,郑重其事地给我递出一个数字:94 分!
“啊这……这是真的?”
我迅速扔进去 Adobe 的那页,看看我的对手进展如何:69 分。
“不错嘛,彼此都没躺平,互相尊重!”
此刻,我已不是那个刚刚被 PageSpeed 打出 38 分的小白。
我成了一个有数据、有指标、有技术、有执行力的“优化战士”。
【通关】凌晨 2 点,胜利的绿灯终于亮起
第 9 天,凌晨 2:00。
我静静地看着 Vercel 的 Speed Insights 面板,在一片绿意中,看到了最终的评分:98 分。
绿了,全绿了。
GSC 也不再高冷了,一个个页面终于从“已抓取未编入索引”转成“已编入索引”。
我合上电脑,望着窗外黑夜。
那一刻我突然明白:
性能优化,并不是为了分数。
它是一种信仰,一种细节决定成败的执念。
独立开发者无法用流量砸出成绩,唯一能依靠的,只有技术的基本功和一点点不服输的韧劲。
【对比图】
- ✅ 优化前 —— 打脸的 38 分
- ✅ AiMuo 工具评分 vs Adobe 工具评分(同一时间)
- ✅ 优化前后 Vercel Speed Insights 评分
【实践验证】你也可以感受这次优化成果👇
不需要注册,不需要加载动画,不需要等待——打开即用。
【后记】游戏不是一次通关,是一次又一次的“试炼”
这场性能优化战役结束了吗?没有。
我知道,只要我继续开发,新的组件、功能、样式都会重新拉低分数。
Google 不会因此对我特别照顾,PageSpeed 不会为我开小灶。
但这正是它的魅力所在。
每一次失败,都是学习的机会;每一次优化,都是成长的节点。
独立开发者的世界没有组队,没有复活甲,只有反复试错和不断坚持。
但你会惊讶地发现,越走下去,装备越强、技能越多,回过头看,自己早已是当初梦想中的模样。
👉 如果你也在独立开发的路上挣扎,欢迎收藏 + 分享这篇文章。
👉 如果你想体验我“九死一生”之后的成果,欢迎访问 aimuo.com。
愿所有的付出都被温柔以待,与诸君共勉!