一次线上实测:我们用 AI Agent 把网站加载速度提了上去
AI Agent 如何提高网站速度|生产环境实测
在过去很长一段时间里,网站性能优化更多依赖工程师的经验:打开浏览器 DevTools,看瀑布流、看 Lighthouse、看接口耗时、看资源体积,然后一点点定位问题。这个过程并不难,但非常耗时间,尤其是在生产环境中,问题往往不是单点造成的,而是由前端资源、服务端接口、缓存策略、第三方脚本、网络链路、数据库查询、CDN 配置等多个因素共同叠加。
最近,我们在一个真实生产环境的网站中引入了 AI Agent,用它辅助完成性能诊断、优化建议生成、代码改造、配置检查和持续监控。本文将结合一次生产环境实测,完整介绍 AI Agent 是如何帮助网站提速的,包括优化前后的关键指标变化、Agent 的工作流程、具体优化动作,以及实际落地时需要注意的问题。
一、为什么网站速度依然重要?
很多团队在产品初期更关注功能交付,性能优化通常会被放到后面。但从真实业务数据来看,网站速度直接影响用户体验、转化率和搜索引擎表现。
一个页面如果首屏打开慢,用户很可能在还没看到内容之前就关闭页面。尤其是在移动端网络环境不稳定、设备性能差异较大的情况下,速度问题会被进一步放大。
常见的影响包括:
- 跳出率升高:页面加载超过 3 秒,用户流失明显增加;
- 转化率下降:电商、SaaS、内容站都会受到影响;
- SEO 表现变差:Core Web Vitals 已经成为搜索体验的重要参考;
- 服务器成本上升:低效接口和无效资源请求会增加带宽与计算压力;
- 用户主观体验下降:即使页面最终加载成功,卡顿、白屏、布局跳动也会降低信任感。
传统优化方式通常依赖人工排查,而 AI Agent 的优势在于:它可以自动读取数据、发现模式、生成假设、执行部分检查,并将复杂的性能问题拆解成可执行任务。
二、什么是用于性能优化的 AI Agent?
这里所说的 AI Agent,不是简单问答式的聊天机器人,而是具备一定任务规划和工具调用能力的智能代理。它可以围绕一个目标持续工作,例如“让网站首页加载速度提升 30%”。
在我们的实践中,AI Agent 主要承担以下角色:
-
性能数据分析员
自动读取 Lighthouse、WebPageTest、Chrome DevTools、服务器日志、APM 监控数据,识别异常指标。 -
前端优化助手
分析 JavaScript 包体积、CSS 阻塞、图片格式、字体加载、路由拆分等问题,并给出改造建议。 -
后端诊断助手
结合接口耗时、数据库慢查询、缓存命中率,判断性能瓶颈是否来自服务端。 -
配置审计助手
检查 Nginx、CDN、缓存头、压缩策略、HTTP/2 或 HTTP/3 配置是否合理。 -
代码修改建议生成器
根据仓库代码生成 Pull Request 草稿,例如懒加载图片、拆分组件、移除未使用依赖等。 -
持续监控告警助手
在上线后持续比对指标,发现回退风险,提醒团队及时处理。
也就是说,AI Agent 并不是替代工程师,而是把大量重复、繁琐、跨领域的分析工作自动化,让工程师把时间集中在判断和实施上。
三、生产环境背景
本次测试的网站是一个内容型业务网站,包含首页、列表页、详情页、搜索页和用户中心。技术栈大致如下:
- 前端框架:React + Next.js;
- 构建工具:Webpack;
- 后端服务:Node.js + Java;
- 数据库:MySQL + Redis;
- 部署方式:Kubernetes;
- 静态资源:CDN 分发;
- 图片服务:对象存储 + CDN;
- 监控工具:Prometheus、Grafana、Sentry、Lighthouse CI;
- 访问来源:PC 约 35%,移动端约 65%。
优化目标是首页和详情页,因为它们承担了大部分自然搜索流量和广告投放流量。我们选取了连续 7 天的线上真实数据作为优化前基线,再在优化上线后观察 7 天,尽量减少偶然波动。
为了避免测试结果只停留在实验室环境,我们同时关注了两类指标:
1. 实验室指标
主要来自 Lighthouse 和 WebPageTest:
- Performance Score;
- First Contentful Paint,简称 FCP;
- Largest Contentful Paint,简称 LCP;
- Total Blocking Time,简称 TBT;
- Speed Index;
- Cumulative Layout Shift,简称 CLS。
2. 真实用户指标
主要来自 RUM,也就是 Real User Monitoring:
- 页面真实加载耗时;
- 用户设备分布;
- 网络类型分布;
- 资源加载失败率;
- 首屏接口耗时;
- JS 错误率;
- 页面跳出率;
- 转化漏斗数据。
实验室指标便于复现,真实用户指标更接近业务影响。两者结合,才能判断优化是否真正有效。
四、优化前的主要问题
在接入 AI Agent 后,我们先让它读取已有的 Lighthouse 报告、资源清单、构建产物分析文件、Nginx 配置、CDN 配置和部分接口日志。Agent 生成了一份初步诊断报告,其中识别出几个高优先级问题。
1. 首屏 JavaScript 体积过大
首页首屏需要下载和执行的 JavaScript 资源接近 900KB,gzip 后仍然较大。Agent 进一步分析 bundle 后发现:
- 部分组件虽然首屏不可见,但被同步打包进首页;
- 一个图表库只在运营活动模块中使用,却进入了首页主包;
- 日期处理库重复引入;
- 部分工具函数没有被 tree shaking;
- 多语言资源一次性加载,实际首屏只需要一种语言。
这导致移动端中低端设备在解析和执行 JS 时出现明显阻塞,TBT 偏高。
2. 图片资源没有充分优化
首页 Banner 和文章封面图存在以下问题:
- 部分图片仍然是 JPEG 或 PNG,没有使用 WebP/AVIF;
- 图片尺寸大于实际展示尺寸;
- 首屏外图片没有懒加载;
- 缺少合理的
srcset和响应式图片策略; - 个别图片未设置宽高,导致布局跳动。
图片问题对 LCP 和 CLS 影响很明显,尤其是首页大图作为 LCP 元素时,优化空间很大。
3. 缓存策略不统一
Agent 检查响应头后发现,静态资源和接口的缓存策略存在不一致:
- 部分带 hash 的静态资源缓存时间只有 1 小时;
- 某些字体文件没有设置长期缓存;
- API 接口缺少合理的
Cache-Control; - CDN 边缘缓存命中率低于预期;
- 首页 HTML 没有充分利用短缓存和 stale 策略。
缓存策略不合理会导致重复请求过多,影响二次访问体验,也增加服务器压力。
4. 服务端接口耗时波动
首页首屏依赖几个接口,其中一个聚合接口 P95 耗时超过 800ms。Agent 结合日志和调用链发现:
- 聚合接口串行请求了多个下游服务;
- 部分数据每次请求都实时计算;
- Redis 缓存命中率不稳定;
- 数据库存在几条慢查询;
- 接口返回字段过多,前端实际只使用其中一部分。
这类问题不是简单前端压缩资源能够解决的,必须从服务端一起优化。
5. 第三方脚本影响主线程
网站中接入了统计、广告、客服和 A/B 测试脚本。Agent 通过瀑布流和主线程任务分析发现:
- 某些第三方脚本阻塞了页面交互;
- 多个统计脚本重复采集相似事件;
- 部分脚本在首屏加载阶段同步执行;
- 广告脚本导致布局位移。
第三方脚本往往是性能优化中的隐形杀手。它们不在业务代码仓库里,却能显著影响用户体验。
五、AI Agent 的优化流程
为了避免 AI Agent 给出“看起来正确但无法落地”的建议,我们没有让它直接修改生产代码,而是设计了一套相对安全的工作流。
第一步:收集数据
Agent 通过预设工具读取以下数据:
- Lighthouse CI 报告;
- WebPageTest 测试结果;
- 构建产物体积分析;
- 生产环境 RUM 数据;
- CDN 日志;
- Nginx 配置;
- 服务端接口耗时;
- 数据库慢查询日志;
- Git 仓库相关代码。
数据收集完成后,Agent 会按照影响程度、实施成本和风险等级给每个问题打分。
第二步:生成性能假设
Agent 不会直接下结论,而是生成可验证的假设。例如:
首页 LCP 偏高的主要原因可能是首屏 Banner 图片体积过大,同时图片未设置 preload,导致浏览器发现资源时间偏晚。
或者:
TBT 偏高可能由首页主包中的图表库和多语言资源引起,建议拆分首屏非必要模块,并验证主包体积变化。
这种假设式分析比直接给建议更可靠,因为每个优化动作都可以通过实验验证。
第三步:制定优化计划
Agent 将优化任务拆成多个小任务,并给出优先级:
| 优先级 | 优化任务 | 预期影响 | 风险 |
|---|---|---|---|
| P0 | 压缩首屏图片并启用响应式图片 | 降低 LCP | 低 |
| P0 | 拆分首页非首屏 JS | 降低 TBT | 中 |
| P0 | 优化首页聚合接口缓存 | 降低 TTFB | 中 |
| P1 | 调整 CDN 和静态资源缓存头 | 提升二次访问速度 | 低 |
| P1 | 延迟第三方脚本加载 | 降低主线程阻塞 | 中 |
| P2 | 字体子集化与 font-display 优化 | 改善 FCP | 低 |
| P2 | 清理重复依赖 | 降低包体积 | 中 |
第四步:生成代码修改建议
对于部分改动,Agent 会直接生成代码 diff 或 PR 草稿。但所有修改必须经过工程师 review,尤其是涉及缓存、接口和第三方脚本的部分。
第五步:灰度发布和监控
我们没有一次性全量上线,而是按 5%、20%、50%、100% 的比例灰度发布。每个阶段观察:
- 页面加载指标是否改善;
- 错误率是否升高;
- 接口压力是否异常;
- CDN 命中率是否变化;
- 业务转化是否受影响。
这一步非常关键。性能优化不能只看技术指标,还要看业务指标和稳定性。
六、具体优化动作
下面是本次生产环境中实际执行的主要优化动作。
1. 拆分首屏 JavaScript
优化前,首页主包包含了大量非首屏组件。AI Agent 根据路由、组件使用情况和首屏渲染路径,建议将以下内容改为动态加载:
- 活动弹窗;
- 图表组件;
- 评论模块;
- 推荐列表下半部分;
- 用户登录后才显示的个性化模块;
- A/B 实验面板。
在 Next.js 中,部分组件可以使用动态导入:
import dynamic from 'next/dynamic';
const ChartBlock = dynamic(() => import('@/components/ChartBlock'), {
ssr: false,
loading: () => 加载中...,
});
对于首屏完全不可见的模块,我们延后到用户滚动接近视口时再加载。这样可以减少初始 JS 下载和执行压力。
优化后,首页首屏 JS gzip 体积从约 900KB 降至约 520KB,TBT 明显下降。
2. 优化图片格式与加载策略
图片优化是收益非常明显的一项。我们做了几件事:
- 将首屏大图转换为 WebP,并为支持的浏览器提供 AVIF;
- 根据设备宽度生成多尺寸图片;
- 为首屏 LCP 图片增加
preload; - 为非首屏图片启用懒加载;
- 设置明确的
width和height,减少 CLS; - 控制图片质量参数,避免无意义的超高清图。
示例:
图片标签:

优化后,首页 LCP 图片体积平均下降超过 55%,移动端 LCP 改善非常明显。
3. 调整缓存策略和 CDN 配置
AI Agent 检查后发现,很多带 hash 的静态资源没有长期缓存,这是典型的配置浪费。
我们将静态资源缓存改为:
Cache-Control: public, max-age=31536000, immutable
适用于:
- JS bundle;
- CSS 文件;
- 字体文件;
- 带内容 hash 的图片;
- 构建产物资源。
对于 HTML 页面,则采用短缓存加 stale 策略:
Cache-Control: public, max-age=60, stale-while-revalidate=300
这样用户可以快速拿到缓存内容,同时 CDN 在后台刷新,兼顾速度和内容新鲜度。
对于部分公共接口,我们也做了缓存分层:
- 浏览器短缓存;
- CDN 边缘缓存;
- 服务端 Redis 缓存;
- 数据库兜底查询。
上线后,CDN 命中率从约 72% 提升到约 88%,源站请求压力明显下降。
4. 优化首页聚合接口
前端优化只能解决一部分问题,如果服务端首包慢,页面仍然会慢。首页聚合接口是本次优化的重点之一。
AI Agent 根据链路追踪提出了几个建议:
- 将串行请求改为并行请求;
- 对低频变化的数据增加 Redis 缓存;
- 对热门内容做预计算;
- 删除前端不使用的返回字段;
- 为慢查询增加索引;
- 设置合理的超时和降级策略。
原来的伪代码类似:
const banner = await getBanner();
const articles = await getArticles();
const hotList = await getHotList();
const userConfig = await getUserConfig();
return {
banner,
articles,
hotList,
userConfig,
};
优化后改为:
const [banner, articles, hotList, userConfig] = await Promise.all([
getBannerWithCache(),
getArticlesWithCache(),
getHotListWithCache(),
getUserConfigWithFallback(),
]);
return {
banner,
articles,
hotList,
userConfig,
};
同时,我们将部分实时计算改成定时任务预生成。例如热门文章列表不需要每次请求都实时计算,可以每 1 分钟或 5 分钟刷新一次。
优化后,首页聚合接口 P95 从约 820ms 降至约 310ms,TTFB 明显改善。
5. 延迟加载第三方脚本
第三方脚本不能简单删除,因为它们往往服务于广告、统计和客服。但可以调整加载时机。
我们将第三方脚本分为三类:
| 类型 | 示例 | 加载策略 |
|---|---|---|
| 必要统计 | 核心 PV/UV 统计 | afterInteractive |
| 非关键营销 | 广告、推荐 | idle 后加载 |
| 用户触发 | 客服、反馈组件 | 点击后加载 |
对于 Next.js,可以使用类似策略:
import Script from 'next/script';
客服组件则改成用户点击按钮后再加载 SDK。这样不会影响首屏渲染,也减少主线程阻塞。
6. 字体优化
字体问题容易被忽略。我们发现网站加载了完整字体文件,但实际首屏只使用部分字符和字重。
优化措施包括:
- 只加载必要字重;
- 使用字体子集化;
- 为字体设置长期缓存;
- 使用
font-display: swap; - 避免多个字体文件同时阻塞渲染。
示例:
@font-face {
font-family: 'SiteFont';
src: url('/fonts/sitefont-subset.woff2') format('woff2');
font-display: swap;
}
该项对 FCP 有一定帮助,也减少了弱网环境下的空白等待。
7. 清理重复依赖和无效代码
AI Agent 通过构建分析发现,项目中存在重复依赖。例如两个版本的日期库同时存在,部分工具函数从大包中整体引入。
我们做了这些清理:
- 将
import _ from 'lodash'改为按需引入; - 统一日期库版本;
- 删除废弃组件;
- 移除未使用 polyfill;
- 检查 tree shaking 是否生效;
- 将大型库替换为轻量方案。
例如:
// 优化前
import _ from 'lodash';
// 优化后
import debounce from 'lodash/debounce';
这类优化单项收益可能不大,但累计起来效果明显。
七、生产环境实测结果
经过两轮灰度和一次全量发布后,我们统计了优化前后 7 天的数据。以下数据为生产环境真实用户数据的近似汇总,已去除异常爬虫和极端网络波动。
1. Lighthouse 实验室指标
| 指标 | 优化前 | 优化后 | 变化 |
|---|---|---|---|
| Performance Score | 62 | 87 | +25 |
| FCP | 2.1s | 1.3s | -38% |
| LCP | 4.2s | 2.3s | -45% |
| TBT | 620ms | 210ms | -66% |
| CLS | 0.18 | 0.05 | -72% |
| Speed Index | 4.8s | 2.7s | -44% |
2. 真实用户指标
| 指标 | 优化前 | 优化后 | 变化 |
|---|---|---|---|
| 首页 P75 LCP | 3.9s | 2.4s | -38% |
| 详情页 P75 LCP | 3.4s | 2.2s | -35% |
| 首页接口 P95 | 820ms | 310ms | -62% |
| JS 错误率 | 0.42% | 0.39% | 基本持平 |
| CDN 命中率 | 72% | 88% | +16pp |
| 首屏资源体积 | 1.8MB | 980KB | -46% |
| 跳出率 | 48.5% | 43.1% | -5.4pp |
从结果看,性能指标有明显改善,并且没有带来错误率上升。更重要的是,跳出率出现下降,说明优化不只是“跑分变好”,也对真实用户体验产生了积极影响。
八、AI Agent 在其中到底贡献了什么?
这次优化不是 AI Agent 独立完成的,而是 AI Agent 与工程师协作完成的。它真正有价值的地方主要体现在以下几个方面。
1. 缩短定位时间
过去工程师可能需要花一两天才能整理出完整的性能瓶颈列表。Agent 接入数据后,可以在较短时间内生成初步诊断,并按照优先级排序。
尤其是跨前端、后端、CDN、数据库的问题,Agent 能把分散信息统一到一份报告中,减少沟通成本。
2. 提供系统化视角
人工排查时容易只盯着熟悉领域。例如前端工程师会优先看 JS 和图片,后端工程师会优先看接口和数据库。而 Agent 可以同时检查多个层面:
- 浏览器渲染;
- 网络传输;
- 静态资源;
- 接口性能;
- 缓存策略;
- 第三方脚本;
- 构建配置;
- 运行时错误。
这种系统化视角有助于避免“头痛医头、脚痛医脚”。
3. 自动生成可执行任务
Agent 不只是说“优化图片”或“减少 JS”,而是能进一步指出哪些图片、哪些组件、哪些依赖、哪些接口最值得处理。这让优化任务更容易进入研发排期。
4. 辅助生成代码和配置
对于一些模式化改动,例如动态导入、缓存头配置、图片懒加载、依赖替换,Agent 可以生成初稿。虽然仍需人工 review,但能节省不少时间。
5. 持续发现性能回退
性能优化不是一次性项目。随着新功能上线,网站速度很容易再次变慢。Agent 可以结合 CI 和监控数据,在发现包体积增加、LCP 变差、接口耗时升高时自动提醒。
九、使用 AI Agent 做性能优化的风险
虽然 AI Agent 很有帮助,但不能盲目信任。生产环境优化必须谨慎,因为错误的优化可能引发更严重的问题。
1. 可能给出不准确建议
Agent 的判断依赖输入数据。如果数据不完整或指标口径不一致,它可能得出错误结论。例如只看 Lighthouse,可能忽略真实用户中的低端设备问题。
2. 缓存优化有业务风险
缓存配置错误可能导致用户看到旧数据,甚至出现权限相关问题。涉及用户信息、订单状态、价格库存等数据时,必须严格区分公共缓存和私有缓存。
3. 自动改代码不能直接上线
Agent 生成的代码可能存在边界问题,例如 SSR 不兼容、组件闪烁、埋点丢失、降级逻辑不完整。所有代码都应经过 review、测试和灰度。
4. 指标改善不等于体验改善
有些优化会让 Lighthouse 分数变高,但真实体验未必变好。例如过度懒加载可能导致用户滚动时内容突然出现,影响阅读流畅度。
5. 第三方脚本需要业务协同
广告、统计、客服脚本通常涉及运营、市场和客服团队。延迟或移除脚本前,需要确认对业务数据和收入的影响。
十、推荐的落地方案
如果你的团队也想用 AI Agent 优化网站速度,可以按照以下路径推进。
阶段一:建立性能基线
先不要急着优化,应该建立可靠的数据基线:
- 接入 Lighthouse CI;
- 接入 RUM 真实用户监控;
- 记录核心页面的 FCP、LCP、CLS、INP;
- 记录接口 P90、P95、P99;
- 记录资源体积和 CDN 命中率;
- 记录跳出率、转化率等业务指标。
没有基线,就无法判断优化是否有效。
阶段二:让 Agent 做诊断而非决策
早期建议让 Agent 只做分析和建议,不直接修改代码。工程师根据报告判断优先级,并挑选低风险任务先做。
阶段三:小范围自动化
当流程稳定后,可以让 Agent 自动完成一些低风险任务,例如:
- 生成 bundle 分析报告;
- 检查图片是否超尺寸;
- 提醒新增依赖体积;
- 检查缓存头是否异常;
- 对 Lighthouse 分数下降发出告警;
- 生成优化 PR 草稿。
阶段四:接入 CI/CD
在 CI 阶段增加性能门禁:
- JS 主包体积不能超过阈值;
- Lighthouse 分数不能低于阈值;
- LCP 不能明显回退;
- 图片资源不能超过限制;
- 新增第三方脚本必须说明理由。
Agent 可以帮助解释失败原因,并建议修复方案。
阶段五:持续优化业务链路
性能优化最终要服务业务。除了技术指标,还应关注:
- 搜索流量是否提升;
- 页面跳出率是否下降;
- 注册转化是否提高;
- 广告收入是否受影响;
- 用户停留时长是否变化。
这样才能证明性能优化的真实价值。
十一、哪些场景最适合 AI Agent?
结合本次实测经验,以下场景特别适合引入 AI Agent:
-
页面多、技术栈复杂的网站
人工逐页排查成本高,Agent 可以批量扫描和归类。 -
前后端性能问题交织的系统
Agent 可以综合前端、接口、缓存、数据库数据进行分析。 -
团队缺少专职性能工程师
Agent 可以作为性能优化助手,降低入门门槛。 -
频繁迭代导致性能容易回退的产品
Agent 可以持续监控变更带来的影响。 -
已有监控但缺少分析能力的团队
很多团队有大量数据,却没人长期分析。Agent 能把数据转成行动项。
十二、总结
这次生产环境实测说明,AI Agent 确实可以显著提升网站性能优化效率。它的价值不在于“神奇地一键提速”,而在于帮助团队更快发现问题、更系统地拆解瓶颈、更稳定地执行优化,并在上线后持续监控回退。
在本次优化中,我们通过 AI Agent 辅助完成了:
- 首屏 JavaScript 拆分;
- 图片格式和响应式加载优化;
- CDN 与缓存策略调整;
- 首页聚合接口优化;
- 第三方脚本延迟加载;
- 字体和依赖清理;
- 性能回归监控。
最终,首页 P75 LCP 从 3.9 秒降到 2.4 秒,Lighthouse Performance Score 从 62 提升到 87,首屏资源体积下降约 46%,CDN 命中率提升到 88%,跳出率也出现了明显下降。
不过,AI Agent 不是万能工具。生产环境中的性能优化必须遵循数据驱动、灰度发布、人工审核和持续监控的原则。正确的使用方式不是让 Agent 替代工程师,而是让它成为工程师的“性能副驾驶”。
未来,随着 Agent 能力增强,它可能会进一步承担自动性能巡检、自动生成优化 PR、自动回滚性能异常变更等工作。但无论工具如何进化,性能优化的核心仍然不变:理解用户真实体验,找到关键瓶颈,用最小风险换取最大收益。