TapCub 正式上线:统计、分析、客服一个平台免费用
术语表

什么是首次内容绘制(FCP)?阈值和优化方法

首次内容绘制是浏览器画出最早的文字或图片所用的时间。阈值、它和 LCP 的区别,以及让它变快的办法。

陈屿 审核人 许安 又称 FCP 最后更新 2026 年 11 月 4 日 术语表

一句话回答

首次内容绘制(FCP)衡量从开始导航到浏览器渲染出页面上首块内容(文字、图片、非白色画布或 SVG)的时间。不超过 1.8 秒算良好。

公式: FCP ≈ 首字节时间 + 被阻塞渲染的 CSS 和脚本占用的时间 + 首次渲染

什么是首次内容绘制?

首次内容绘制(FCP)是页面不再是一片空白的时刻:从开始导航到浏览器画出首段文字、图片、SVG 或非白色画布的时间。它告诉访客页面正在加载。

评级FCP
良好不超过 1.8 秒
需改进1.8–3 秒
较差超过 3 秒

FCP 不在三项 Core Web Vitals 之列,但能解释它们。FCP 慢,LCP 不可能快;FCP 快而 LCP 慢,问题出在主图或标题上,而不是页面框架。

FCP 为什么慢

浏览器画出任何东西之前,都要先拿到 HTML(首字节时间),以及 <head> 里所有样式表和同步脚本。所以 FCP 慢几乎总是这几个原因:

  • 服务端响应慢或有重定向,HTML 迟迟不到。
  • head 里有阻塞渲染的 CSS 和 JavaScript。
  • 网页字体加载完之前把文字藏起来。

一个示例拆解

示例数据:某博客移动端的 P75 FCP 是 2.6 秒:等 HTML 1.2 秒,等两个样式表和一个同步脚本 1.0 秒,渲染 0.4 秒。

两项优化:在边缘节点缓存 HTML(首字节 1.2 → 0.5 秒);把首屏需要的 CSS 内联,其余样式和脚本改成不阻塞加载(1.0 → 0.5 秒)。新的 FCP:0.5 + 0.5 + 0.4 = 1.4 秒,达到良好。

能让 FCP 变快的优化

  1. 去掉重定向链,能缓存 HTML 就缓存。
  2. 内联首屏需要的 CSS,其余异步加载。
  3. head 里的脚本加上 defer 或 async。
  4. 用 font-display: swap(或 optional),让文字先用后备字体显示。
  5. 对必需的第三方域名做预连接。

在 TapCub 里看首次内容绘制

TapCub 用站点脚本从真实访问里采集 Web Vitals(第一个页面隐藏时上报一次;用 data-vitals="false" 关闭)。在网站统计 › 监测 › 性能里,卡片可在 P75、中位数、P95 和平均值之间切换,分组可按页面、设备、浏览器、国家和操作系统拆分,「最慢页面」按 P75 最大内容绘制排序。详见性能文档。

这个解释清楚吗?

我们会根据反馈修改和补充这篇内容。

陈屿

技术工程师

专注统计代码、SDK 与接口集成文档,从接入验证到问题排查,帮助开发者更顺畅地完成实施。

常见问题

常见追问

大家看完定义后最常问的几个问题。

还有其他问题?

直接和 TapCub 团队聊聊——工作日通常几小时内回复。

FCP 多少算好?

按真实访问的 P75 计,不超过 1.8 秒算良好,超过 3 秒算较差,中间算需改进。

FCP 是 Core Web Vitals 吗?

不是。Core Web Vitals 是 LCP、INP 和 CLS。FCP 是辅助指标,用来解释 LCP 为什么慢。

FCP 和 LCP 有什么区别?

FCP 是任何内容出现的时间,LCP 是最大元素出现的时间。两者差得多,通常说明主图加载得晚。

背景色算 FCP 吗?

不算。只有内容才算:文字、图片(包括背景图)、SVG 和非白色画布。

在你自己的网站上看这个数字

加一行脚本就能开始,网站和 App 都能接,几分钟内就能看到第一批报表。

看清数据,找到增长。

每一次点击,都有数据依据。装好一行代码,1 分钟看到第一批数据。

无需信用卡 · 统计与客服都有免费版 · 统计无 Cookie