用 Claude 给网站提速:从性能检测到优化命令全流程
Claude 如何提高网站速度|附完整命令
网站速度不仅影响用户体验,也会直接影响搜索引擎排名、转化率和服务器成本。一个加载缓慢的网站,往往会导致用户在页面打开前就离开;而一个经过优化的网站,则可以显著提升访问留存、下单率和整体品牌可信度。
过去,网站性能优化通常需要开发者手动分析代码、排查资源、阅读性能报告、修改构建配置、压缩图片、调整缓存策略等,流程繁琐且容易遗漏。现在,借助 Claude 这类 AI 编程助手,尤其是配合 Claude Code、命令行工具和性能检测工具,我们可以更高效地完成网站速度优化。
本文将以实战思路介绍:如何使用 Claude 分析网站性能问题、定位瓶颈、修改代码、执行优化命令,并给出一套可直接参考的完整命令流程。
一、为什么要用 Claude 来优化网站速度?
Claude 的优势并不只是“能聊天”,而是在代码理解、项目结构分析、长上下文处理、命令行协作方面表现突出。对于网站性能优化来说,它可以帮助我们完成以下工作:
-
快速阅读项目结构
Claude 可以理解前端项目目录,例如 React、Vue、Next.js、Nuxt、Astro、Vite 等项目,并判断哪些文件可能影响首屏加载速度。 -
分析构建产物大小
它可以根据构建结果、bundle 分析报告,判断哪些依赖过大、哪些代码可以拆分。 -
给出优化方案
例如图片压缩、懒加载、代码分割、SSR/SSG、缓存策略、Tree Shaking、字体优化等。 -
辅助修改代码
Claude 可以直接根据你的项目文件提出修改建议,甚至在 Claude Code 中自动编辑代码。 -
生成完整命令
性能优化往往需要多步命令操作,例如安装工具、运行 Lighthouse、生成构建报告、压缩资源、部署验证等。Claude 可以帮你整理成标准流程。
二、网站速度优化前,需要关注哪些核心指标?
在开始优化之前,我们不能只凭感觉判断“快”或“慢”,而应该使用标准指标衡量。
常见性能指标包括:
1. LCP:最大内容绘制
LCP,即 Largest Contentful Paint,表示页面中最大的可见内容加载完成所需时间。
通常是首屏大图、标题、Banner 或主要内容区域。
推荐标准:
- 2.5 秒以内:优秀
- 2.5 到 4 秒:需要改进
- 4 秒以上:较差
如果 LCP 太慢,常见原因包括:
- 首屏图片太大
- 服务端响应慢
- CSS 阻塞渲染
- JavaScript 包体积过大
- 字体加载阻塞
2. FCP:首次内容绘制
FCP,即 First Contentful Paint,表示浏览器第一次渲染出文本、图片、SVG 或 canvas 的时间。
如果 FCP 过慢,通常说明页面早期渲染被阻塞。
3. CLS:累计布局偏移
CLS,即 Cumulative Layout Shift,表示页面加载过程中元素是否突然移动。
例如图片没有设置宽高,广告插入后把内容顶下去,字体加载后文字发生跳动,都会导致 CLS 变差。
4. INP:交互到下一次绘制
INP,即 Interaction to Next Paint,是衡量页面交互响应速度的重要指标。
如果 JavaScript 执行时间过长,用户点击按钮后页面迟迟没有响应,就会导致 INP 变差。
5. TTFB:首字节时间
TTFB,即 Time To First Byte,表示浏览器发出请求后收到服务器第一个字节的时间。
TTFB 慢,可能是:
- 服务端接口慢
- 数据库查询慢
- 没有使用缓存
- 服务器距离用户太远
- SSR 页面生成过慢
三、准备工作:安装 Claude Code 与性能检测工具
如果你使用的是 Claude Code,可以直接在项目目录中让 Claude 读取和修改代码。
注意:以下命令以 macOS / Linux 环境为例,Windows 用户可以使用 PowerShell 或 WSL。
四、完整命令:从检测到优化的标准流程
下面是一套通用的网站速度优化命令流程,适用于大多数前端项目。
1. 进入项目目录
cd your-project
如果你的项目还没有拉取到本地,可以先执行:
git clone https://github.com/your-name/your-project.git
cd your-project
2. 查看当前项目结构
ls
如果你希望更清楚地查看目录结构,可以安装并使用 tree:
# macOS
brew install tree
# Ubuntu / Debian
sudo apt update
sudo apt install tree -y
# 查看项目结构
tree -L 3
3. 安装项目依赖
根据项目使用的包管理器执行对应命令。
npm
npm install
pnpm
pnpm install
yarn
yarn install
如果你不确定项目使用什么包管理器,可以查看锁文件:
ls
判断方式如下:
package-lock.json -> npm
pnpm-lock.yaml -> pnpm
yarn.lock -> yarn
4. 启动本地开发服务
npm
npm run dev
pnpm
pnpm dev
yarn
yarn dev
一般情况下,本地地址可能是:
http://localhost:3000
http://localhost:5173
http://localhost:8080
5. 构建生产版本
很多性能问题在开发环境中不明显,因此必须构建生产版本。
npm
npm run build
pnpm
pnpm build
yarn
yarn build
构建完成后,常见产物目录包括:
dist
build
.next
.output
6. 本地预览生产版本
如果是 Vite 项目:
npm run preview
或:
pnpm preview
Next.js 项目通常使用:
npm run start
或:
pnpm start
7. 安装 Lighthouse
Lighthouse 是 Google 官方的网站性能检测工具,可以生成详细性能报告。
npm install -g lighthouse
检测本地网站:
lighthouse http://localhost:3000 --view
如果你的网站运行在其他端口,例如 Vite 默认端口 5173:
lighthouse http://localhost:5173 --view
生成 JSON 报告:
lighthouse http://localhost:3000 --output=json --output-path=./lighthouse-report.json
生成 HTML 报告:
lighthouse http://localhost:3000 --output=html --output-path=./lighthouse-report.html
8. 让 Claude 分析 Lighthouse 报告
如果你使用 Claude Code,可以在项目根目录执行:
claude
然后输入:
请分析当前项目的 lighthouse-report.html 和 lighthouse-report.json,
找出影响网站速度的主要问题,并按照优先级给出优化方案。
请重点关注 LCP、FCP、CLS、INP、TTFB、JS 体积、CSS 阻塞、图片资源和缓存策略。
如果你使用网页端 Claude,也可以上传 Lighthouse 报告,然后输入类似提示词:
你是一名资深前端性能优化工程师。
请分析我上传的 Lighthouse 报告,指出导致网站加载慢的主要原因。
请按影响程度排序,并给出具体修改建议。
如果涉及代码,请给出修改前和修改后的示例。
五、使用 Claude 分析项目代码
在 Claude Code 中,可以让 Claude 直接读取项目文件。
进入项目目录后:
claude
输入:
请扫描当前项目结构,分析影响首屏加载速度的因素。
请重点检查:
1. 是否存在过大的第三方依赖;
2. 是否有未使用的组件或库;
3. 是否可以进行路由级代码分割;
4. 图片是否过大;
5. 字体是否阻塞渲染;
6. CSS 和 JavaScript 是否可以延迟加载;
7. 是否存在重复请求或低效接口调用。
最后请给出可执行的优化清单。
Claude 通常会先分析项目结构,然后指出可能需要查看的文件。你可以继续让它深入:
请继续检查 package.json、构建配置文件、入口文件、路由文件和首页组件。
找出最可能影响 LCP 和 JavaScript 包体积的问题。
六、优化方向一:分析 JavaScript 包体积
JavaScript 包体积过大,是网站变慢最常见的原因之一。尤其是后台管理系统、电商网站、内容站首页,如果一次性加载过多组件,会严重影响首屏速度。
1. 安装 bundle 分析工具
如果是 Vite 项目,可以使用 rollup-plugin-visualizer:
npm install rollup-plugin-visualizer -D
pnpm:
pnpm add rollup-plugin-visualizer -D
yarn:
yarn add rollup-plugin-visualizer -D
然后在 vite.config.ts 或 vite.config.js 中加入:
import { visualizer } from 'rollup-plugin-visualizer'
export default {
plugins: [
visualizer({
filename: 'stats.html',
open: true,
gzipSize: true,
brotliSize: true
})
]
}
构建:
npm run build
构建完成后会生成:
stats.html
你可以让 Claude 分析:
请分析 stats.html 中的 bundle 体积。
找出体积最大的依赖,并判断哪些可以:
1. 按需加载;
2. 替换为更轻量的库;
3. 移除;
4. 使用动态 import;
5. 拆分到独立 chunk。
2. Next.js 项目分析包体积
Next.js 项目可以使用官方分析工具。
安装:
npm install @next/bundle-analyzer
或:
pnpm add @next/bundle-analyzer
修改 next.config.js:
const withBundleAnalyzer = require('@next/bundle-analyzer')({
enabled: process.env.ANALYZE === 'true',
})
module.exports = withBundleAnalyzer({
reactStrictMode: true,
})
执行分析:
ANALYZE=true npm run build
pnpm:
ANALYZE=true pnpm build
然后让 Claude 分析:
请根据 Next.js bundle analyzer 的结果,
指出哪些页面或依赖导致 JavaScript 体积过大,
并给出具体优化方案和代码修改建议。
七、优化方向二:图片压缩与格式转换
图片通常是页面中体积最大的资源。很多网站慢,不是代码问题,而是首页 Banner、商品图、背景图没有压缩。
1. 查找大图片
find public -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.webp" \) -exec du -h {} + | sort -hr | head -20
如果图片目录在 src/assets:
find src/assets -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.webp" \) -exec du -h {} + | sort -hr | head -20
2. 安装图片压缩工具 sharp
npm install sharp -D
或:
pnpm add sharp -D
3. 批量转换图片为 WebP
创建脚本文件:
mkdir -p scripts
touch scripts/convert-to-webp.js
写入以下内容:
const sharp = require('sharp')
const fs = require('fs')
const path = require('path')
const inputDir = process.argv[2] || 'public'
const outputDir = process.argv[3] || 'public-optimized'
function walk(dir) {
const files = fs.readdirSync(dir)
let results = []
for (const file of files) {
const filePath = path.join(dir, file)
const stat = fs.statSync(filePath)
if (stat.isDirectory()) {
results = results.concat(walk(filePath))
} else if (/\.(jpg|jpeg|png)$/i.test(filePath)) {
results.push(filePath)
}
}
return results
}
async function convert() {
const images = walk(inputDir)
for (const image of images) {
const relativePath = path.relative(inputDir, image)
const outputPath = path.join(
outputDir,
relativePath.replace(/\.(jpg|jpeg|png)$/i, '.webp')
)
fs.mkdirSync(path.dirname(outputPath), { recursive: true })
await sharp(image)
.resize({
width: 1600,
withoutEnlargement: true
})
.webp({ quality: 80 })
.toFile(outputPath)
console.log(`Converted: ${image} -> ${outputPath}`)
}
}
convert()
执行转换:
node scripts/convert-to-webp.js public public-optimized
如果图片在 src/assets:
node scripts/convert-to-webp.js src/assets src/assets-optimized
然后你可以让 Claude 帮你替换代码中的图片引用:
请把项目中使用 jpg、jpeg、png 的图片引用,
在不破坏页面显示的前提下,尽量替换为 webp。
如果是首屏关键图片,请保留清晰度;
如果是非首屏图片,请建议使用懒加载。
八、优化方向三:图片懒加载
对于非首屏图片,应尽量使用懒加载,避免页面一打开就加载所有图片。
普通 HTML:

React 示例:

Next.js 推荐使用 next/image:
import Image from 'next/image'
export default function Hero() {
return (
)
}
非首屏图片不要加 priority:
可以让 Claude 检查:
请检查当前项目中所有 img 标签和图片组件。
请判断哪些图片属于首屏关键图片,哪些可以懒加载。
请为图片补充 width、height、alt,并避免 CLS。
九、优化方向四:路由级代码分割
如果网站一次性加载所有页面的 JS,首屏必然变慢。优化方式是让用户访问哪个页面,就只加载哪个页面的代码。
React 中可以使用 React.lazy:
import React, { Suspense } from 'react'
const AboutPage = React.lazy(() => import('./pages/AboutPage'))
function App() {
return (
Loading... Vue 路由懒加载:
const routes = [
{
path: '/about',
component: () => import('@/views/AboutView.vue')
}
]
让 Claude 检查路由:
请检查项目中的路由配置。
请将非首页页面改为动态 import,实现路由级代码分割。
同时确保加载状态体验良好,不影响 SEO。
十、优化方向五:第三方依赖瘦身
很多网站加载慢,是因为引入了过重的依赖。例如:
- 整包引入 lodash
- 整包引入 antd 或 element-plus
- 使用 moment.js
- 引入大型图表库但只用一个简单图表
- 首页加载富文本编辑器、地图、视频播放器等重组件
可以先查看依赖:
npm ls --depth=0
pnpm:
pnpm list --depth=0
查看哪些包体积较大:
npx cost-of-modules
如果没有安装:
npm install -g cost-of-modules
cost-of-modules
常见替换建议:
moment.js -> dayjs
lodash -> lodash-es 或单函数导入
大型图表库 -> 按需加载或替换为轻量图表库
富文本编辑器 -> 动态 import
地图组件 -> 用户需要时再加载
让 Claude 执行依赖分析:
请分析 package.json 中的 dependencies 和 devDependencies。
请指出哪些依赖可能过大、重复或不必要。
请给出替换方案,并说明替换后的风险和修改步骤。
十一、优化方向六:CSS 优化
CSS 也会阻塞页面渲染。常见问题包括:
- 全站 CSS 一次性加载
- 未使用 CSS 太多
- UI 框架样式全部引入
- 首屏关键 CSS 没有优先处理
- 动画影响渲染性能
可以检查 CSS 文件大小:
find dist -type f -name "*.css" -exec du -h {} + | sort -hr
如果是 Next.js:
find .next -type f -name "*.css" -exec du -h {} + | sort -hr
让 Claude 分析:
请检查项目中的全局 CSS、组件 CSS 和 UI 框架样式引入方式。
请判断是否存在未使用样式、重复样式或过大的 CSS 文件。
请给出减少 CSS 阻塞渲染的优化建议。
十二、优化方向七:字体优化
字体文件过大或加载方式不合理,也会拖慢页面。
建议:
- 使用
font-display: swap - 只加载必要字重
- 中文字体不要轻易全量自托管
- 关键字体可以 preload
- 避免过多字体格式
CSS 示例:
@font-face {
font-family: 'Inter';
src: url('/fonts/inter.woff2') format('woff2');
font-weight: 400;
font-display: swap;
}
预加载关键字体:
让 Claude 检查:
请检查项目中的字体加载方式。
请判断是否存在字体阻塞渲染、字体文件过大、加载字重过多的问题。
请给出优化后的 CSS 或框架配置。
十三、优化方向八:缓存策略
缓存可以显著提升二次访问速度。静态资源应该设置较长缓存时间,并通过文件 hash 控制更新。
Nginx 示例配置:
location ~* \.(js|css|png|jpg|jpeg|gif|webp|svg|woff2)$ {
expires 30d;
add_header Cache-Control "public, max-age=2592000, immutable";
}
HTML 文件不建议长缓存:
location ~* \.html$ {
add_header Cache-Control "no-cache";
}
如果使用 Vercel、Netlify、Cloudflare Pages 等平台,通常静态资源缓存已经较好,但仍可以让 Claude 检查配置:
请根据当前项目部署方式,检查缓存策略是否合理。
请说明 HTML、JS、CSS、图片、字体分别应该如何设置 Cache-Control。
如果使用 Nginx,请给出完整配置示例。
十四、优化方向九:开启 Gzip 或 Brotli 压缩
文本资源如 JS、CSS、HTML、JSON,非常适合压缩传输。
Nginx 开启 Gzip:
gzip on;
gzip_comp_level 6;
gzip_min_length 1024;
gzip_types
text/plain
text/css
text/xml
application/json
application/javascript
application/xml
application/rss+xml
image/svg+xml;
Brotli 压缩效果通常比 Gzip 更好。如果服务器支持 Brotli,可以开启:
brotli on;
brotli_comp_level 6;
brotli_types
text/plain
text/css
application/javascript
application/json
image/svg+xml
application/xml;
检测是否开启压缩:
curl -H "Accept-Encoding: gzip" -I https://example.com
如果返回头中包含:
content-encoding: gzip
说明 Gzip 生效。
检测 Brotli:
curl -H "Accept-Encoding: br" -I https://example.com
如果看到:
content-encoding: br
说明 Brotli 生效。
十五、优化方向十:减少接口请求和服务端耗时
如果网站是 SSR 或依赖接口渲染,接口慢会直接导致页面慢。
可以用 curl 测试接口耗时:
curl -o /dev/null -s -w "DNS: %{time_namelookup}\nConnect: %{time_connect}\nTTFB: %{time_starttransfer}\nTotal: %{time_total}\n" https://example.com/api/data
如果 TTFB 很高,说明后端响应慢,需要从接口、数据库、缓存入手。
让 Claude 分析接口请求:
请检查项目中首页的数据请求逻辑。
请判断是否存在:
1. 串行请求可以改成并行;
2. 重复请求;
3. 不必要的首屏请求;
4. 可以缓存的数据;
5. 可以延迟到用户交互后再请求的数据。
请给出优化后的代码示例。
串行请求优化为并行请求示例:
// 优化前
const user = await fetchUser()
const products = await fetchProducts()
const banners = await fetchBanners()
// 优化后
const [user, products, banners] = await Promise.all([
fetchUser(),
fetchProducts(),
fetchBanners()
])
十六、使用 Claude 的推荐提示词模板
下面给出几组实用提示词,可以直接复制使用。
1. 全站性能分析提示词
你是一名资深前端性能优化工程师。
请分析当前项目,找出影响网站加载速度的主要原因。
请按照影响程度从高到低排序,并分别说明:
1. 问题位置;
2. 影响的性能指标;
3. 优化方案;
4. 需要修改的文件;
5. 修改风险;
6. 验证方式。
请优先关注 LCP、FCP、CLS、INP、TTFB 和 bundle size。
2. 让 Claude 直接修改代码的提示词
请根据刚才的性能分析结果,优先处理收益最高且风险最低的优化项。
请直接修改相关文件。
要求:
1. 不改变现有业务逻辑;
2. 不破坏页面样式;
3. 优先减少首屏资源体积;
4. 对非首屏组件使用动态加载;
5. 对图片增加 width、height、loading 属性;
6. 修改完成后说明改动内容和验证命令。
3. 构建失败排查提示词
我执行 npm run build 后失败了。
请根据终端报错分析原因,并给出最小修改方案。
要求不要大范围重构,只修复导致构建失败的问题。
4. Lighthouse 报告复查提示词
这是优化后的 Lighthouse 报告。
请对比优化前后的指标变化,判断优化是否有效。
如果仍存在性能问题,请继续给出下一轮优化建议。
十七、一套完整可复制的优化命令
下面是一套从检测、分析、优化到复查的完整命令示例。
# 1. 进入项目
cd your-project
# 2. 安装依赖
npm install
# 3. 构建生产版本
npm run build
# 4. 启动生产预览
npm run preview
另开一个终端:
# 5. 安装 Lighthouse
npm install -g lighthouse
# 6. 生成性能报告
lighthouse http://localhost:5173 \
--output=html \
--output-path=./lighthouse-report.html
lighthouse http://localhost:5173 \
--output=json \
--output-path=./lighthouse-report.json
分析包体积:
# 7. 安装 bundle 分析工具
npm install rollup-plugin-visualizer -D
# 8. 修改 vite.config 后重新构建
npm run build
查找大图片:
# 9. 查找 public 目录下最大图片
find public -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.webp" \) -exec du -h {} + | sort -hr | head -20
安装图片处理工具:
# 10. 安装 sharp
npm install sharp -D
使用 Claude:
# 11. 打开 Claude Code
claude
输入:
请结合 lighthouse-report.html、lighthouse-report.json、package.json、构建配置和源码,
分析当前网站速度问题,并优先修复影响最大的问题。
修改后请告诉我需要执行哪些命令验证。
优化后复查:
# 12. 重新构建
npm run build
# 13. 重新启动预览
npm run preview
# 14. 再次生成 Lighthouse 报告
lighthouse http://localhost:5173 \
--output=html \
--output-path=./lighthouse-report-after.html
十八、性能优化后的验证方式
优化不是“改完就结束”,必须验证。
建议至少验证以下内容:
- 构建是否成功
npm run build
- 页面是否正常显示
npm run preview
- Lighthouse 分数是否提升
lighthouse http://localhost:5173 --view
- 主要页面是否可访问
手动检查:
首页
列表页
详情页
登录页
核心转化页
- 浏览器控制台是否有错误
打开 Chrome DevTools,检查 Console 和 Network。
- 线上环境是否生效
curl -I https://example.com
查看缓存和压缩头:
curl -H "Accept-Encoding: br" -I https://example.com
十九、常见错误与注意事项
1. 不要只看 Lighthouse 总分
Lighthouse 分数有参考价值,但不能代表全部真实体验。你更应该关注具体指标,例如 LCP、INP、CLS 和 TTFB。
2. 不要盲目删除依赖
Claude 可能会建议移除某些依赖,但在执行前要确认业务是否真的不需要。对于大型项目,依赖可能在动态路由或边缘页面使用。
3. 图片压缩要注意清晰度
压缩质量过低会影响品牌形象。通常 WebP quality 设置为 75 到 85 比较合适。
4. 首屏图片不要随便懒加载
首屏 Banner 或核心视觉图如果懒加载,反而可能导致 LCP 变差。首屏关键图片应该优先加载。
5. 动态 import 不等于一定更快
代码分割能减少首屏体积,但如果拆分过细,可能造成请求过多。要根据实际 bundle 报告判断。
6. 缓存策略必须配合文件 hash
如果 JS/CSS 文件名没有 hash,却设置了很长缓存,用户可能长期访问旧版本资源。
二十、总结
使用 Claude 提高网站速度,本质上不是让 AI “凭空优化”,而是把它放进一个标准化流程中:
- 先用 Lighthouse、bundle analyzer、curl 等工具获取客观数据;
- 再让 Claude 分析报告和项目源码;
- 根据影响程度选择优先级;
- 让 Claude 辅助修改代码;
- 重新构建和检测;
- 对比优化前后的指标变化。
一套高效的网站速度优化流程,应该是“数据驱动 + AI 辅助 + 人工复核”。Claude 可以大幅提升排查和修改效率,但最终仍需要开发者根据业务场景判断取舍。
如果你希望快速开始,可以直接执行这几个核心步骤:
cd your-project
npm install
npm run build
npm run preview
npm install -g lighthouse
lighthouse http://localhost:5173 --output=html --output-path=./lighthouse-report.html
claude
然后把下面这段提示词交给 Claude:
请分析当前项目和 lighthouse-report.html,
找出影响网站速度的核心问题。
请优先修复收益最高、风险最低的问题,
并在修改后给出验证命令。
通过这套方法,你可以把原本需要数小时甚至数天的性能优化工作,压缩到更短时间内完成,并且更系统、更可验证地提升网站速度。