跳转到内容

性能问题

性能差 = 流失访客 + SEO 降权。每多 1 秒加载,跳出率 +30%。本节给排查路径。

指标优秀良好
TTFB(首字节时间)< 200ms< 600ms> 1s
LCP(主内容加载)< 2.5s< 4s> 4s
FID(首次交互)< 100ms< 300ms> 300ms
CLS(视觉偏移)< 0.1< 0.25> 0.25

测量工具:PageSpeed Insights

先用 Lighthouse 测,看哪个指标差:

指标差优化方向
TTFB服务器响应慢 / 数据库慢
LCP图片大 / 渲染阻塞
FIDJS 阻塞
CLS图片没声明宽高 / 动态插入元素

常见原因

瓶颈怎么查优化
数据库慢查询慢查询日志加索引 / 优化 SQL
N+1 查询APM 看让开发者批量查询
服务器配置低看 CPU / 内存让运维升配
没用 CDN看是否走 CDN让运维加 CDN
缓存失效看缓存命中率让运维优化缓存
网络带宽不足看带宽使用让运维升带宽

典型场景:Hero 图 5MB + 不压缩。

优化

  • 压缩:转 WebP,宽度限制 1920px
  • 懒加载:除 Hero 外都 loading="lazy"
  • 多尺寸:手机用 800w,桌面用 1600w
  • CDN:图片走 CDN

详见 上传与媒体设置 - 图片自动压缩

典型:GA + 客服 + Hotjar + 广告 + … 一堆脚本。

优化

  • 延迟加载(页面交互后才加载)
  • 异步加载async / defer
  • 删除无用的(每季度审计一次)

症状

  • 后台列表加载 10s+
  • 前台某些页加载慢

让运维查

  • 慢查询日志:哪些 SQL 超 1s
  • 索引缺失:让开发者加索引
  • 数据量大:分库分表(极大量场景)

让运维查

  • 哪个进程占用高?
  • 流量是否暴增?
  • 是否被恶意爬虫 / 攻击?

应急

  • 限流(Cloudflare / Nginx)
  • 临时升级服务器
  • 找根因(常是死循环或大流量爬虫)

常见慢查询

  • 列表页全表扫描(没用索引)
  • 关联查询过深(N+1)
  • 复杂的统计 SQL

让开发者

  • 看慢查询日志找 Top 10
  • 加索引
  • 优化 SQL

多层缓存

用途
CDN 缓存静态资源(图片、CSS、JS)
HTTP 缓存浏览器缓存
SSR 缓存服务器端渲染结果
数据库查询缓存重复查询
业务对象缓存(Redis)热数据

问题

  • 缓存没命中 → 命中率 < 80% 需优化
  • 缓存过期太久 → 用户看到旧数据
  • 缓存雪崩 → 大量缓存同时过期

让运维优化。

多语言站点常见慢

  • 每页加载所有语言版本(应只加载当前语言)
  • 字典 / 翻译数据全量加载(应按需)

让开发者优化为按需加载

问题:媒体文件本地存储,海外访客慢。

优化

  • OSS / S3(阿里云、AWS)
  • CDN(Cloudflare、阿里云 CDN)
  • 海外节点加速

成本:每月 ¥100-1000(按流量)。

必接的监控

工具
PageSpeed Insights抽样测速
Lighthouse CICI / CD 集成
Web Vitals真实用户性能
APM(New Relic / 阿里云 ARMS)全链路
服务器监控(Prometheus / 云监控)服务器指标

按 ROI 排:

  1. 图片优化(投入低、效果大)
  2. CDN(一次配,永久受益)
  3. 数据库索引(查询加速 10x+)
  4. 删除无用第三方脚本
  5. 缓存优化
  6. 服务器升配(最贵但简单)

设定 目标值

  • 首页 LCP < 2.5s
  • 产品页 LCP < 3s
  • API 响应 < 500ms

任何超出预算的代码不能上线——形成强制纪律。