Core Web Vitals:衡量并提升网站性能

Web2026-10-16TryQuickToolBox

你构建了一个快速的网站,但用户仍然抱怨速度慢。或者你的 SEO 排名在 Google 更新后下降了。罪魁祸首可能是 Core Web Vitals——Google 用来衡量真实用户体验的一组指标。忽视它们可能会损害用户满意度和搜索可见性。

在本指南中,你将了解什么是 Core Web Vitals、如何准确衡量它们,以及改善每个指标的实用步骤。我们将重点介绍当前的三项指标:最大内容绘制(LCP)、下次绘制交互(INP)和累积布局偏移(CLS)。

什么是 Core Web Vitals?

Core Web Vitals 是 Web Vitals 的一个子集,Google 认为它们对于提供出色的用户体验至关重要。它们量化了内容加载的速度、页面对交互的响应速度以及视觉稳定性。

Google 将这些指标用作排名信号,但更重要的是,它们反映了真实用户的痛点。缓慢的 LCP 会让等待内容的用户感到沮丧;高 INP 会让页面感觉卡顿;高 CLS 会导致误点击和烦恼。

三项核心 Web Vitals

这些阈值基于真实用户的现场数据,而非实验室测试。Google 在页面加载的第 75 百分位处评估它们,这意味着 75% 的用户体验应达到“良好”阈值。

如何衡量 Core Web Vitals

你需要实验室数据和现场数据。实验室工具在受控条件下模拟单次页面加载,而现场数据(真实用户监测,RUM)则捕获跨设备和网络的实际用户体验。

实验室工具

现场工具

以下是如何使用 web-vitals 库将指标记录到控制台:

import {onLCP, onINP, onCLS} from 'web-vitals';

function sendToAnalytics(metric) {
  const body = JSON.stringify(metric);
  // Use navigator.sendBeacon() or fetch() to send data
  (navigator.sendBeacon && navigator.sendBeacon('/analytics', body)) ||
  fetch('/analytics', {body, method: 'POST', keepalive: true});
}

onLCP(sendToAnalytics);
onINP(sendToAnalytics);
onCLS(sendToAnalytics);

若想在不编写代码的情况下快速检查,你可以使用解析性能数据的在线工具。例如,如果你有服务器日志,Nginx 日志分析器可以帮助你识别可能影响 LCP 的慢响应。

改善最大内容绘制(LCP)

LCP 通常是最具影响力的优化指标。它受服务器响应时间、资源加载时间和客户端渲染的影响。

优化服务器响应

优化资源

消除渲染阻塞资源

<head> 中的 CSS 和 JavaScript 会阻塞渲染。内联关键 CSS,并异步加载其余部分。对于 JavaScript,使用 defer 或 async。

改善下次绘制交互(INP)

INP 衡量从用户交互到下次绘制的时间。它受 JavaScript 执行、事件处理和渲染工作的影响。

减少 JavaScript 执行时间

优化事件处理

改善渲染性能

改善累积布局偏移(CLS)

CLS 衡量意外的布局偏移。它由加载过程中元素改变位置引起,通常是由于没有尺寸的图像、广告或动态注入的内容。

始终包含尺寸属性

对于图像和视频,设置 width 和 height 属性或使用 CSS aspect-ratio。这可以预留空间并防止偏移。

<img src="#" width="800" height="600" alt="Hero">

为动态内容预留空间

使用 Font-Display Swap

自定义字体在加载时可能导致不可见文本(FOIT)或布局偏移。使用 font-display: swap 立即显示回退文本,并预加载字体以减少交换时间。

综合运用:实用工作流程

  1. 衡量:从 PageSpeed Insights 开始,获取实验室和现场数据。确定需要改善的指标。
  2. 诊断:使用 Lighthouse 和 Chrome DevTools Performance 面板查找瓶颈。查看瀑布图、主线程活动和布局偏移。
  3. 优化:应用上述技术,优先处理影响最差指标的更改。
  4. 测试:重新运行实验室测试以确认改进。部署到暂存环境并使用 RUM 监控现场数据。
  5. 监控:使用 web-vitals 库设置持续的 RUM,并在出现回归时发出警报。使用 Search Console 跟踪 Core Web Vitals 状态。

请记住,优化可能会有权衡。例如,延迟加载图像可以改善初始加载,但如果 LCP 图像被延迟加载,可能会损害 LCP。始终与真实用户一起测试。

常见问题

Core Web Vitals 的当前阈值是多少?

对于 LCP,良好为 ≤2.5 秒,需要改善为 ≤4.0 秒,差为 >4.0 秒。对于 INP,良好为 ≤200 毫秒,需要改善为 ≤500 毫秒,差为 >500 毫秒。对于 CLS,良好为 ≤0.1,需要改善为 ≤0.25,差为 >0.25。这些阈值在页面加载的第 75 百分位处评估。

我应该多久检查一次 Core Web Vitals?

使用 RUM 持续监控现场数据。每月检查 Search Console 以了解整体趋势。在重大代码更改或部署后运行实验室测试。Core Web Vitals 可能会随着你网站或第三方脚本的更新而变化。

没有开发人员我能改善 Core Web Vitals 吗?

某些改进可以通过插件或设置实现(例如,启用缓存、优化图像)。然而,显著的收益通常需要代码更改,例如内联关键 CSS、延迟 JavaScript 或重构资源加载方式。INP 和高级 LCP 优化通常需要开发人员的帮助。

准备好分析你的服务器性能了吗?试试我们的 Nginx 日志分析器,找出可能影响你 Core Web Vitals 的慢请求。