Google SEO 进阶

Core Web Vitals优化实战:LCP/INP/CLS的诊断与修复优先级

Core Web Vitals 三个指标的合格线是 LCP ≤ 2.5 秒、INP ≤ 200 毫秒、CLS ≤ 0.1,且按 75 分位真实用户数据判定...

Core Web Vitals:先修 LCP,再修 INP,最后 CLSCore Web Vitals: fix LCP first, then INP, then CLS 合格线:LCP ≤ 2.5 秒、INP ≤ 200 毫秒、CLS ≤ 0.1Pass: LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1 指标Metric 合格线 / 待改进 / 差Good / Needs work / Poor 首要修复方向Top fix LCPLCP ≤2.5s / 2.5–4s / >4s≤2.5s / 2.5–4s / >4s 首屏图 CDN + 字体 preloadCDN hero image + font preload INPINP ≤200ms / 200–500ms / >500ms≤200ms / 200–500ms / >500ms 主线程 JS 拆分 + 长任务消除Split main-thread JS, remove long tasks CLSCLS ≤0.1 / 0.1–0.25 / >0.25≤0.1 / 0.1–0.25 / >0.25 图片宽高 + 广告位占位img dimensions + reserved slots 反直觉:Lighthouse 95 分不等于 Core Web Vitals 合格Counter-intuitive: Lighthouse 95 ≠ CWV pass Lighthouse 是实验室数据,合格要看 CrUX 真实用户 75 分位Lab vs field: pass requires 75th percentile CrUX data 修复顺序:LCP 收益最大,CLS 改完即稳定,INP 最耗时但必须做Order: LCP highest ROI, CLS stable once fixed, INP slowest
Core Web Vitals 三指标阈值、修复方向与优先级排序

Core Web Vitals优化实战:LCP/INP/CLS的诊断与修复优先级

结论先行:Core Web Vitals 三个指标的合格线是 LCP ≤ 2.5 秒、INP ≤ 200 毫秒、CLS ≤ 0.1,且按 75 分位真实用户数据判定。修复顺序不是三个一起做,而是 LCP 先(收益最大)、CLS 次之(改完即稳定)、INP 最后(最耗时但必须做)。反直觉判断:Lighthouse 本地跑分 95 分不代表合格,因为它是实验室数据;真正决定 SEO 信号的是 CrUX 真实用户 28 天滚动数据。B2B 独立站常见瓶颈是首屏产品图未走 CDN、JS 未拆分导致主线程阻塞、广告位和字体加载无占位。

一、三个指标各管什么:先分清再动手

很多团队一上来就跑 Lighthouse,看到一堆红叉就乱修。先搞清楚每个指标衡量什么,才能对症下药。

指标 衡量什么 合格线 常见元凶
LCP 最大内容绘制 首屏最大元素加载完成时间 ≤ 2.5 秒 首屏图过大、字体阻塞、服务器响应慢
INP 交互到下一次绘制 用户点击后界面响应延迟 ≤ 200 毫秒 主线程长任务、JS 体积过大、第三方脚本
CLS 累计布局偏移 页面加载过程中元素跳动程度 ≤ 0.1 图片无宽高、广告位无占位、字体切换

判断口径必须是 75 分位:100 个访客里,前 75 个达标才算合格。均值或中位数没有意义。CrUX 数据在 Search Console 体验报告里看,那是 Google 排名信号用的同一份数据。

还要注意三个指标互相牵制:压缩图片能降 LCP,但如果图片 lazy load 策略错误,反而会把 LCP 元素推迟到第二帧;字体 preload 能降 LCP,但 preload 太多字体会挤占网络请求,影响 INP。改动一项后必须等 14 天看真实用户数据,不要连环改。

二、LCP 修复:收益最大的先做

LCP 通常占三指标优化收益的 50% 以上。它由四个阶段组成,先看自己卡在哪一段。

LCP 阶段 诊断工具 常见瓶颈 修复手段
TTFB 服务器响应 WebPageTest 瀑布 PHP 渲染慢、未走 CDN CDN 边缘缓存、PHP 升级
资源加载 Chrome DevTools 性能 首屏图未压缩、未 preload WebP/AVIF、preload 关键图
资源渲染 Lighthouse 机会项 字体阻塞渲染 font-display: swap + preload
客户端渲染 Trace 性能面板 SPA 等 JS 下载完才渲染 SSR 或骨架屏

场景示例:一个 B2B 工业站首屏产品图 1.8MB 未压缩,TTFB 正常但 LCP 卡在 4.2 秒。把图片转 WebP 压到 320KB 并加 fetchpriority=”high”,LCP 一周内降到 1.9 秒。这个改动只动了一个 img 标签,没有改任何服务器配置。

CDN 节点选择和缓存策略直接影响 TTFB,见 CDN 全球加速。多语言站的图片本地化还要和 多语言站的图表处理 一起考虑。

三、INP 修复:最耗时但不能跳过

INP 是 2024 年 3 月替换 FID 的新指标,衡量从用户交互到界面真正响应的完整延迟。它比 LCP 难修,因为问题分散在整个 JS 包。

问题 诊断方法 修复手段 预期收益
主线程长任务 > 50ms Performance 面板长任务标记 代码拆分、Web Worker INP 降 100 至 200 毫秒
第三方脚本阻塞 Coverage 面板看占比 延迟加载、async/defer INP 降 50 至 150 毫秒
事件回调太重 调用栈看耗时函数 防抖节流、拆分回调 INP 降 30 至 80 毫秒
渲染阻塞资源 Lighthouse 未用 CSS/JS 关键 CSS 内联、非关键延迟 INP 降 50 至 100 毫秒

反直觉点:INP 差不一定是你自己代码的问题。B2B 站常埋了 LinkedIn 像素、HubSpot 表单插件、在线客服聊天脚本,这三者加起来能让主线程阻塞 300 毫秒以上。先把第三方脚本按加载优先级排一遍,比改业务代码收益快。

四、CLS 修复:改完即稳定的低 hanging 果实

CLS 是三指标里最好修的:90% 的 CLS 问题来自两个原因——图片没写宽高、广告或嵌入内容无占位。

CLS 元凶 判断方法 修复手段
图片未写 width/height DevTools 看 layout shift img 标签加 width/height + aspect-ratio
字体切换跳动 FOIT/FOUT 现象 font-display: swap + size-adjust
广告/嵌入无占位 广告加载后推开内容 预留固定高度容器
动态注入横幅 顶部通知条弹出 占位空间,不挤压内容

场景示例二:一个出海 SaaS 站博客 CLS 长期在 0.35,原因是文章顶部有一个”订阅 Newsletter”横幅在 JS 加载后插入,把整篇文章往下推了 120 像素。把横幅改为服务端渲染并预留 120px 占位,CLS 一周内降到 0.04。

五、诊断工具与验证流程

阶段 工具 数据来源 验证时限
定位问题 CrUX 报表 / GSC 体验报告 真实用户 28 天数据 每周看一次
实验室复现 Lighthouse / WebPageTest 模拟 Moto G4 慢 4G 修复前跑一次
线上监控 CrUX / RUM 工具 75 分位指标趋势 上线后 14 天
验收 GSC 核心网页指标报告 三类指标全部”已通过” 上线后 28 天

常见错误是只看 Lighthouse 本地分。Lighthouse 跑的是干净环境,没有你的真实用户网络、没有第三方脚本、没有登录态。本地 95 分但 CrUX 不合格的站非常多。修复后一定要等 28 天滚动数据更新,不要上线第三天就判断成功。

性能优化和 Core Web Vitals 指标体系 本身是一套持续工程,不是一次性项目。官网维护期 里应把 CWV 月报列为固定项。

六、性能预算怎么写进迭代流程

修完一轮 CWV 不等于一劳永逸。新功能、新插件、新营销脚本都会把指标重新拉差。正确做法是把性能预算写进发布流程,每次上线前卡一道关。

页面类型 LCP 预算 INP 预算 CLS 预算 JS 总包预算
首页与落地页 ≤ 2.0 秒 ≤ 150 毫秒 ≤ 0.05 ≤ 250KB gzip
产品详情页 ≤ 2.5 秒 ≤ 200 毫秒 ≤ 0.1 ≤ 350KB gzip
博客文章页 ≤ 2.5 秒 ≤ 200 毫秒 ≤ 0.1 ≤ 300KB gzip
联系与表单页 ≤ 2.0 秒 ≤ 150 毫秒 ≤ 0.05 ≤ 200KB gzip

每次发版前用 Lighthouse CI 在预发环境跑这几类核心页,超过预算就不让合并。营销团队临时加的弹窗、客服脚本、像素追踪,要走一个评审清单:这个脚本能不能延迟加载、能不能放到首屏之后、能不能只在特定页面加载。三个月做一次 CrUX 月报,看 75 分位趋势,发现某类页面连续两月下滑就立项修。

还有一个常被忽略的点:图片资产治理。新写的博客文章如果直接上传未压缩的原图,LCP 会立刻被拉差。在内容后台默认接一条图片压缩流水线,上传时自动转 WebP、压到合理体积、生成 srcset,比事后逐篇修要省力得多。这套流水线和媒体资产治理流程对齐,见 媒体资产治理。

第三方脚本是 INP 恶化的头号推手。营销团队为了一个新活动临时加的像素、聊天插件、表单嵌入,往往没有延迟加载,全部挤在首屏渲染阶段。每个季度把全站第三方脚本清单拉出来过一遍:哪些还在用、哪些可以延迟到首屏之后、哪些已经没人看了可以直接删。把这个评审固定成发布流程的一环,比每次事后优化要省心得多。

最后强调验证口径:修复后不要只看 Lighthouse 本地分,要等 CrUX 真实用户二十八天滚动数据更新。本地跑分只能用来定位问题,不能用来宣布成功。把每月 CWV 月报固定发给工程和市场负责人,让性能变成一个跨团队共同盯的指标,而不是 SEO 一个人的 KPI。

FAQ 常见问题

LCP、INP、CLS 三个先修哪个?
按 LCP → CLS → INP 顺序。LCP 占优化收益 50% 以上,且修复手段明确(图片压缩、CDN、preload);CLS 改完即稳定,成本最低;INP 最耗时,要拆 JS 包,但 2024 年起已是排名信号必须做。三个一起做容易资源分散,建议两周一个指标。
Lighthouse 95 分为什么 Search Console 还说不合格?
Lighthouse 是实验室数据,跑在干净模拟环境;Search Console 用的是 CrUX 真实用户 28 天滚动数据,包含真实网络、真实设备、真实第三方脚本。本地 95 分但 CrUX 不合格的站非常多,尤其是埋了 LinkedIn、HubSpot、在线客服脚本的 B2B 站。修复后以 CrUX 为准。
INP 从 500 毫秒降到 200 以内要多久?
取决于第三方脚本占比。如果 INP 差主要来自第三方脚本(聊天、CRM、像素),延迟加载或 async 改造 1 周内可降到 300 毫秒;如果差在业务 JS 包,需要代码拆分和长任务消除,通常 4 至 8 周。先在 Coverage 面板看第三方占比,超过 30% 先收拾第三方。
CLS 多少算正常?
≤ 0.1 为合格,0.1 至 0.25 待改进,>0.25 为差。绝大多数 B2B 站 CLS 问题来自图片未写宽高和广告位无占位。给所有 img 加 width/height 并设置 aspect-ratio,给动态横幅预留固定高度容器,CLS 通常一周内可降到 0.05 以下。
Core Web Vitals 直接影响排名吗?
是排名信号,但权重远低于内容质量和外链。Google 官方说明 CWV 是页面体验信号的一部分,只有在内容相近时才起决定作用。不要为了 CWV 牺牲内容质量;正确做法是先把 LCP 压到 2.5 秒内、CLS 压到 0.1 以下,再把精力放回内容。
移动端和桌面端 CWV 要分开看吗?
必须分开看。Google 用移动端优先索引,移动端 CWV 是排名信号主依据;桌面端数据只影响桌面搜索结果。B2B 站常出现桌面端 90 分移动端 60 分的情况,因为移动端网络和设备性能差异大。诊断时按移动端 4G 慢网模拟。

写在最后

Core Web Vitals 是技术 SEO 里投入产出比最清晰的一项:每个指标都有明确阈值、明确诊断工具、明确修复手段。不要被 Lighthouse 分数迷惑,看 CrUX 真实用户数据。

落地三步:本周用 GSC 体验报告定位哪个指标最差;下周按 LCP → CLS → INP 顺序修第一个;上线后 28 天看 CrUX 是否全部合格。三个指标都在合格线内,你已经超过 70% 的 B2B 出海站。

一句可以记住的话:CWV 不是跑分游戏,是真实用户的等待时间——LCP 看图,INP 看手,CLS 看眼睛,三个都舒服才算合格。

崔立姝
崔立姝 环形山专家

交付 · 运营负责人 · 环形山交付与运营团队

环形山(Crater)交付 & 运营负责人。负责 SEO 落地执行、社媒渠道运营与内容分发,擅长用数据拆解增长动作。操盘多个出海项目的落地交付,关注 Facebook、Twitter、TikTok、YouTube 与 SEO/GEO 的协同打法。

SEO 落地内容运营案例拆解
1106篇分享
84篇知识库