first contentful paint 实测:34 个首页里只有 3 个达标,中位数白屏 3.9 秒

first contentful paint 是屏幕第一次出现内容的那一刻,34 个首页里只有 3 个达到 1.8 秒的线。首页中位数大约白屏 3.9 秒——而它和 largest contentful paint 之间的那段间距,才是访客真正等的地方。

效果衡量4 分钟读完1093 次阅读
first contentful paint 实测:34 个首页里只有 3 个达标,中位数白屏 3.9 秒

实测 · 2026-10-01 · 34 个首页 · Lighthouse 单次运行

样本 / 口径:34 个首页,含我们自己的四个站,2026-10-01 各用 Lighthouse 13.5.0 的 mobile 配置加载一次,从每份 JSON 报告里读 first contentful paint。每站一次、不取平均、不复测。

first contentful paint 是屏幕第一次出现文字或图片的那一刻,在这 34 个首页上,它大多来得很晚。只有 3 个站达到 web.dev 定的 1.8 秒线。首页的中位数大约是 3.9 秒才画出第一样东西。FCP 并不是 Core Web Vital——真正被计分的加载指标是 largest contentful paint——所以最该读的,是两者之间的那段空档。

怎么测的

first contentful paint「量的是从用户开始导航,到页面任意一部分内容被画到屏幕上所用的时间」,这里的「内容」指文字、图片(含背景图)、SVG 或非白色的 canvas(web.dev,2026-10-01 访问)。它从导航起点开始算,所以重定向、建立连接、首字节时间都会算进去——服务器慢和 CSS 重,在这里看起来是一样的。

我们用无头 Lighthouse 对每个域名跑一次,只开加载类审计,保留毫秒原值而不是四舍五入后的值。面板是过去几次实测一直在用的 30 个站,加上我们自己的四个站。有几个站因为这台机器的位置被重定向到了地区版——stripe.com 落到 /nl,developer.mozilla.org 与 slack.com 落到中文路径,canva.com 落到 /zh_cn——我们保留重定向后实际服务的那个页面。这意味着换个地方读,数字会不一样。

first contentful paint 的结果:只有 3 个达标

这个指标公布的合格线是移动端 1.8 秒以内。跨过它的是三个站:一个静态营销页、MDN 文档,以及 Hacker News。再有 8 个落在 3.0 秒以内——超过 3.0 秒,web.dev 就把它叫差了。剩下 23 个,占了面板的三分之二,三秒过去屏幕还是空的。

首页FCP(毫秒)
railway.com999
developer.mozilla.org1,348
news.ycombinator.com1,381
en.wikipedia.org1,822
www.framer.com1,975
www.cloudflare.com2,235
techcrunch.com2,509
www.shopify.com2,606
www.reddit.com2,802
arstechnica.com2,859
www.netlify.com2,942
slack.com3,143
vercel.com3,318
medium.com3,364
substack.com3,377
stackoverflow.com3,542
linear.app3,576
byerisk.com4,185
www.nytimes.com4,701
biaojixia.com5,086
figma.com5,974
www.bbc.com5,986
sizemarker.com6,035
www.wired.com6,637
querywin.com6,647
www.theverge.com7,124
astro.build7,148
supabase.com7,230
www.notion.com7,262
www.canva.com7,295
github.com7,440
discord.com8,745
webflow.com9,064
stripe.com10,618
区间站数
1.8 秒以内3
1.8 到 3.0 秒8
超过 3.0 秒23
first contentful paint 说的不是你的页面有多快,而是它白屏了多久。

和 largest contentful paint 的间距

更有用的读法,是第一次绘制和最后一次有意义的绘制之间差多少,因为那段空档就是访客盯着半成品页面的时间。34 个站里有 8 个两个指标落在同一毫秒,通常说明页面一次性画完。其余站点的间距动辄好几秒。最宽的是 Wired,从第一次绘制到最大元素出现隔了 24.1 秒。

首页FCP→LCP(秒)
www.wired.com24.1
substack.com15.6
linear.app14.2
stackoverflow.com13.0
figma.com11.6
www.theverge.com11.3
webflow.com5.6
byerisk.com5.5
biaojixia.com4.9
www.nytimes.com3.5

一个页面可以过了 FCP 却依然很慢,因为读者真正要看的东西,往往是最后才加载出来的。上面这张表量的就是这个间距,而它才是 Google 计分的那一个:那一块在 largest contentful paint 专章里讲。

这些数字说明不了什么

这是实验室数字,而且每个站只跑了一次,一次就是小样本。Lighthouse 的加载时间会随机器、网络和当天状态变:astro.build 在这个面板里是 7,148 毫秒,同一天下午单测一次是 1,715 毫秒。我们没有复测任何一个站,所以给不出单个读数的稳定性。噪音里站得住的是形状——三个快的、一条拖到三秒以上的长尾——这个形状足够稳,可以据此动手。

另一个限制是 FCP 数的是什么。它是任何内容的第一像素,所以一个只画了个 logo 就安静下来的页面会测得很快,一个把内容全堵在样式表后面的页面会测得慢,而 FCP 分不出这两种。它也不在三个 Core Web Vital 里;如果你只盯得动一个加载数字,盯 largest contentful paint。想看响应侧,该看的是 interaction to next paint 专章,以及它的实验室搭档 total blocking time 实测。

这对你意味着什么

一条命令就能拿到你自己的数字,不用账号、不用注册。

npx lighthouse https://example.com/ \
  --only-audits=first-contentful-paint,largest-contentful-paint \
  --output=json --output-path=fcp.json --quiet
  • 两个数字一起读。它们之间的差,才是访客真正等的那段。
  • 把 FCP 快当成下限,不是终点。它只说明页面不白了,没说明正文出来了没有。
  • 别拿你的分数跟这张表比,除非你的机器和网络跟我们这台一样。
  • 别靠「先藏后放」去压 FCP。先画个假的、把真内容往后拖,比一开始就慢更糟。

常见问题

你们是怎么测的?

2026-10-01 对每个首页各跑一次无头 Lighthouse,mobile 配置,从 JSON 输出里读 first-contentful-paint 审计。不复测、不取平均、没有 field 数据。样本是 34 个同类型页面:首页,其中含我们自己的四个站。

first contentful paint 是排名因素吗?

不是。它不在三个 Core Web Vital 里,所以根本不属于 page experience 信号。它值得修,是因为一个四秒都不出东西的页面,会在你的内容和读者见面之前就把人赶走,而不是因为 Google 给它打分。

FCP 和 LCP 有什么区别?

FCP 是第一块内容,LCP 是视口里最大的那一块。一个页面可以在一秒画出标题、八秒才出主图,它过了 FCP、挂了 LCP。所以单看一个好看的 FCP,是很弱的信号。

为什么我的 FCP 和 PageSpeed Insights 不一样?

PageSpeed Insights 能显示真实用户的 field 数据,本地 Lighthouse 不能。两者不一致时,描述你访客的是 field 那个数,实验室的数字只用来解释它。

下一步

拿数字容易,跟它争辩很难。把你自己的两个数——FCP 和 LCP——一起取回来,然后看它们中间夹着什么,因为那正是读者盯着一个还没画完的页面的窗口。把落地页上的这段间距长期盯住,正是 QueryWin 在做的事。

first contentful paint 实测:34 个首页里只有 3 个达标,中位数白屏 3.9 秒