利用 Chrome DevTools MCP 分析 Web 性能。测量核心 Web 指标(FCP、LCP、TBT、CLS、Speed Index),识别渲染阻塞资源、网络依赖链、布局偏移、缓存问题及无障碍缺陷。适用于审计、分析、调试或优化页面加载性能、Lighthouse 分数及网站速度。
网络性能审计 : 使用 Chrome DevTools MCP 工具进行网页性能审计是一项面向实际任务的技能,主要用于这种技能侧重于核心网络维度、网络优化和高水平的访问缺口;FIRST: 校验 M。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用 Chrome DevTools MCP 工具对网页性能进行审计。本技能聚焦于核心网页指标(Core Web Vitals)、网络优化以及高层次的可访问性缺陷。
开始前请务必执行此检查。 尝试调用 navigate_page 或 performance_start_trace。若调用失败,立即中止——说明 chrome-devtools MCP 服务未正确配置。
请用户在 MCP 配置中添加以下内容:
"chrome-devtools": {
"type": "local",
"command": ["npx", "-y", "chrome-devtools-mcp@latest"]
}
| 任务 | 工具调用 |
|---|---|
| 加载页面 | navigate_page(url: "...") |
| 启动性能追踪 | performance_start_trace(autoStop: true, reload: true) |
| 分析洞察项 | performance_analyze_insight(insightSetId: "...", insightName: "...") |
| 列出网络请求 | list_network_requests(resourceTypes: ["Script", "Stylesheet", ...]) |
| 获取请求详情 | get_network_request(reqid: |
| 可访问性快照 | take_snapshot(verbose: true) |
复制下方清单以跟踪审计进度:
Audit Progress:
- [ ] Phase 1: Performance trace (navigate + record)
- [ ] Phase 2: Core Web Vitals analysis (includes CLS culprits)
- [ ] Phase 3: Network analysis
- [ ] Phase 4: Accessibility snapshot
- [ ] Phase 5: Codebase analysis (skip if third-party site)
导航至目标 URL:
navigate_page(url: "")
启用自动停止并强制刷新,启动性能追踪以捕获冷加载指标:
performance_start_trace(autoStop: true, reload: true)
等待追踪完成,随后获取结果。
故障排查:
navigate_page 确认页面是否成功加载使用 performance_analyze_insight 提取关键指标。
注意: 洞察项名称可能因 Chrome DevTools 版本不同而异。若指定的 insightName 不生效,请从追踪响应中提取 insightSetId,进而查询当前支持的全部 insight。
常用 insight 名称:
| 指标 | Insight 名称 | 关注点 |
|---|---|---|
| LCP | LCPBreakdown |
最大内容绘制时间;含 TTFB、资源加载、渲染延迟等细分项 |
| CLS | CLSCulprits |
导致布局偏移的元素(如无尺寸声明的图片、动态注入内容、字体切换) |
| 渲染阻塞 | RenderBlocking |
阻塞首次绘制的 CSS/JS |
| 文档延迟 | DocumentLatency |
服务器响应时间问题 |
| 网络依赖关系 | NetworkRequestsDepGraph |
延迟关键资源加载的请求链 |
示例:
performance_analyze_insight(insightSetId: "", insightName: "LCPBreakdown")
关键阈值(良好 / 需改进 / 较差):
列出全部网络请求,识别优化机会:
list_network_requests(resourceTypes: ["Script", "Stylesheet", "Document", "Font", "Image"])
重点关注:
中且未设置 async/defer/media 属性的 JS/CSSCache-Control、ETag 或 Last-Modified 响应头获取单个请求详细信息:
get_network_request(reqid: )
获取可访问性树快照:
take_snapshot(verbose: true)
标记高层次缺陷:
若审计的是无代码库访问权限的第三方网站,请跳过本阶段。
分析代码库,定位可实施优化的具体位置。
搜索配置文件以确定技术栈:
| 工具 | 配置文件 |
|---|---|
| Webpack | webpack.config.js, webpack.*.js |
| Vite | vite.config.js, vite.config.ts |
| Rollup | rollup.config.js, rollup.config.mjs |
| esbuild | esbuild.config.js, 含 esbuild 的构建脚本 |
| Parcel | .parcelrc, package.json(parcel 字段) |
| Next.js | next.config.js, next.config.mjs |
| Nuxt | nuxt.config.js, nuxt.config.ts |
| SvelteKit | svelte.config.js |
| Astro | astro.config.mjs |
同时检查 package.json 中的框架依赖项和构建脚本。
mode: 'production'、package.json 中是否声明 sideEffects、是否启用 usedExports 优化treeshake 相关配置项index.js 全量 re-export)、整包引入大型工具库(如 lodash、moment)content 配置)@babel/preset-env 的 targets 配置及 useBuiltIns 设置core-js 的显式导入(通常体积过大)browserslist 配置是否覆盖范围过宽terser、esbuild 或 swc 进行混淆按以下结构呈现审计结果:
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.6万人学习
共89课时 | 133.1万人学习
共49课时 | 82万人学习