Core Web Vitals:测量与提升网页性能

Web2026-11-07TryQuickToolBox

为什么 Core Web Vitals 对您的网站很重要

您可能听说过 Core Web Vitals (CWV) —— Google 用于衡量用户体验的指标。但如果您的网站感觉缓慢或卡顿,您并不孤单。许多开发者都在努力将 CWV 分数转化为具体的修复措施。本指南将通过实用步骤和代码片段,引导您测量并改善每个核心指标。

Core Web Vitals 包含三个具体指标:最大内容绘制 (LCP) 用于衡量加载性能,首次输入延迟 (FID) 用于衡量交互性,以及累积布局偏移 (CLS) 用于衡量视觉稳定性。Google 将这些作为排名信号,因此优化它们对用户和 SEO 都有好处。

理解三个核心 Web 指标

在深入修复之前,让我们先明确每个指标衡量的是什么,以及获得良好分数的阈值。

指标 衡量内容 良好 需要改进 差
LCP 加载性能 ≤ 2.5秒 2.5秒 – 4.0秒 > 4.0秒
FID 交互性 ≤ 100毫秒 100毫秒 – 300毫秒 > 300毫秒
CLS 视觉稳定性 ≤ 0.1 0.1 – 0.25 > 0.25

注意:FID 将于 2024 年 3 月被 Interaction to Next Paint (INP) 取代,但优化原则相似。这里我们仍以 FID 为重点,因为它仍被广泛引用。

如何测量 Core Web Vitals

您需要实验室数据和现场数据来获得完整的画面。实验室数据(合成测试)有助于调试,而现场数据(真实用户监控)则显示实际用户体验。

实验室工具

现场工具

要收集现场数据,请引入 web-vitals 库并将指标发送到您的分析端点:

<script type="module">
import {onLCP, onFID, onCLS} from 'https://unpkg.com/web-vitals@3?module';

function sendToAnalytics(metric) {
  const body = JSON.stringify(metric);
  navigator.sendBeacon('/analytics', body);
}

onLCP(sendToAnalytics);
onFID(sendToAnalytics);
onCLS(sendToAnalytics);
</script>

这为您提供了真实世界数据,以补充实验室测试。

改善最大内容绘制 (LCP)

LCP 衡量最大的内容元素(图像、文本块或视频)何时变为可见。要改善它,请关注服务器响应时间、资源加载和渲染阻塞资源。

1. 优化服务器响应时间

2. 优化图像

如需快速压缩图像,请尝试我们的 图像压缩器。

3. 消除渲染阻塞资源

4. 预加载重要资源

对字体或主图等关键资产使用 <link rel="preload">:

<link rel="preload" href="/hero.webp" as="image">

改善首次输入延迟 (FID)

FID 衡量从用户首次与页面交互到浏览器能够响应的时间。长 JavaScript 任务会阻塞主线程,导致延迟。

1. 分解长任务

使用 setTimeout 或 requestIdleCallback 将长时间运行的 JavaScript 拆分为更小的块。例如:

function processItems(items) {
  if (items.length === 0) return;
  const item = items.pop();
  // 处理项目
  setTimeout(() => processItems(items), 0);
}

2. 优化事件处理程序

3. 减少 JavaScript 执行时间

4. 对繁重任务使用 Web Workers

将 CPU 密集型工作移出主线程:

const worker = new Worker('worker.js');
worker.postMessage(data);
worker.onmessage = (e) => { /* 处理结果 */ };

改善累积布局偏移 (CLS)

CLS 衡量意外的布局偏移。常见原因包括没有尺寸的图像、广告、嵌入内容和网络字体。

1. 始终为媒体设置宽度和高度

在图像和视频上包含 width 和 height 属性,或使用 CSS aspect-ratio:

img {
  aspect-ratio: 16 / 9;
  width: 100%;
  height: auto;
}

2. 为动态内容预留空间

对于广告或嵌入内容,使用占位元素预留空间或设置固定尺寸。

3. 避免在现有内容上方插入内容

如果必须插入横幅,请使用不会导致布局偏移的变换动画或叠加层。

4. 使用 font-display: swap

防止网络字体导致文本不可见和布局偏移:

@font-face {
  font-family: 'MyFont';
  src: url('myfont.woff2') format('woff2');
  font-display: swap;
}

监控与持续改进

优化 Core Web Vitals 不是一次性任务。使用以下工具设置持续监控:

定期审查现场数据并迭代修复。优先处理分数最差的指标。

常见问题

什么是 Core Web Vitals?

Core Web Vitals 是 Google 用来衡量用户体验的一组指标:LCP(加载)、FID(交互性)和 CLS(视觉稳定性)。

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

通过 Search Console 或 RUM 持续监控现场数据。在重大更改后以及至少每月运行一次实验室测试。

改善 Core Web Vitals 会影响 SEO 吗?

是的,Core Web Vitals 是一个排名信号。更好的分数可以提高搜索可见性和用户满意度。

准备好优化图像以获得更好的 LCP 了吗?使用我们的免费 图像压缩器 在不损失质量的情况下减小文件大小。