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

Web2026-10-30TryQuickToolBox

你已经构建了一个快速的网站,但用户仍然抱怨速度慢。或者,在谷歌更新后,你的SEO排名下降了。罪魁祸首可能是Core Web Vitals——谷歌衡量用户体验的指标。在本指南中,你将了解它们是什么、如何测量它们,以及改善每项指标的具体步骤。

什么是Core Web Vitals?

Core Web Vitals是三个量化用户体验关键方面的指标:

这些指标是谷歌页面体验信号的一部分,直接影响SEO和用户满意度。

如何测量Core Web Vitals

你需要实验室数据和现场数据。实验室数据(合成测试)有助于调试;现场数据(真实用户监控)反映实际体验。

实验室工具

现场工具

以下是如何使用web-vitals库将指标发送到你的分析平台:

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

function sendToAnalytics(metric) {
  const body = JSON.stringify(metric);
  // 如果可用,使用navigator.sendBeacon
  (navigator.sendBeacon && navigator.sendBeacon('/analytics', body)) ||
    fetch('/analytics', {body, method: 'POST', keepalive: true});
}

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

改善LCP

LCP通常是最具影响力的指标。要改善它:

  1. 优化LCP元素:识别它(通常是主视觉图像或标题)并确保它快速加载。
  2. 预加载关键资源:对图像、字体和样式表使用<link rel="preload">。
  3. 使用现代图像格式:提供WebP或AVIF并带有回退方案。
  4. 谨慎实现懒加载:不要对LCP图像进行懒加载;优先加载它。
  5. 减少服务器响应时间:使用CDN、缓存并优化后端。
  6. 消除渲染阻塞资源:延迟非关键的CSS和JavaScript。

示例:预加载你的主视觉图像:

<link rel="preload" as="image" href="/hero.webp" imagesrcset="/hero-480.webp 480w, /hero-800.webp 800w" imagesizes="(max-width: 600px) 480px, 800px">

改善INP

INP衡量响应性。高INP通常来自阻塞主线程的长任务。

  1. 分解长任务:使用setTimeout、requestIdleCallback或scheduler.yield()让出主线程。
  2. 优化事件处理程序:对昂贵的操作进行防抖或节流。
  3. 减少JavaScript执行:代码分割、树摇,并延迟非关键脚本。
  4. 避免大型DOM更新:批量进行DOM更改并明智地使用虚拟DOM。
  5. 使用Web Worker处理CPU密集型工作。

示例:使用scheduler.yield()让出(在支持的地方):

async function handleClick() {
  // 做一些工作
  await scheduler.yield();
  // 让出后继续
}

改善CLS

CLS关乎视觉稳定性。防止意外偏移:

  1. 始终在图像和视频上包含宽度和高度属性。
  2. 为广告和嵌入内容预留空间,使用CSS aspect-ratio或固定尺寸。
  3. 避免在现有内容上方插入内容,除非由用户交互触发。
  4. 使用CSS变换进行动画,而不是触发布局的属性。
  5. 预加载字体并使用font-display: swap以避免不可见文本偏移。

示例:使用aspect-ratio预留空间:

.video-container {
  aspect-ratio: 16 / 9;
  width: 100%;
}

Core Web Vitals比较

指标 衡量内容 良好阈值 常见修复方法
LCP 加载性能 ≤2.5秒 优化图像、预加载、减少服务器时间
INP 响应性 ≤200毫秒 分解长任务、优化JS、使用Worker
CLS 视觉稳定性 ≤0.1 设置尺寸、预留空间、避免动态插入

工具和工作流程

将Core Web Vitals监控集成到你的开发工作流程中:

在上传到网站之前快速优化图像,试试我们的图像压缩器,在不损失质量的情况下减小文件大小。

常见问题

Core Web Vitals的当前阈值是什么?

LCP良好≤2.5秒,需要改进≤4秒;INP良好≤200毫秒,需要改进≤500毫秒;CLS良好≤0.1,需要改进≤0.25。

我应该多久测量一次Core Web Vitals?

通过现场数据持续测量,并在每次重大代码更改时通过实验室工具测量。设置回归警报。

我可以在不重建网站的情况下改善Core Web Vitals吗?

是的——许多修复如图像优化、预加载和延迟脚本可以逐步应用。