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

实测 · 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.com | 999 |
| developer.mozilla.org | 1,348 |
| news.ycombinator.com | 1,381 |
| en.wikipedia.org | 1,822 |
| www.framer.com | 1,975 |
| www.cloudflare.com | 2,235 |
| techcrunch.com | 2,509 |
| www.shopify.com | 2,606 |
| www.reddit.com | 2,802 |
| arstechnica.com | 2,859 |
| www.netlify.com | 2,942 |
| slack.com | 3,143 |
| vercel.com | 3,318 |
| medium.com | 3,364 |
| substack.com | 3,377 |
| stackoverflow.com | 3,542 |
| linear.app | 3,576 |
| byerisk.com | 4,185 |
| www.nytimes.com | 4,701 |
| biaojixia.com | 5,086 |
| figma.com | 5,974 |
| www.bbc.com | 5,986 |
| sizemarker.com | 6,035 |
| www.wired.com | 6,637 |
| querywin.com | 6,647 |
| www.theverge.com | 7,124 |
| astro.build | 7,148 |
| supabase.com | 7,230 |
| www.notion.com | 7,262 |
| www.canva.com | 7,295 |
| github.com | 7,440 |
| discord.com | 8,745 |
| webflow.com | 9,064 |
| stripe.com | 10,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.com | 24.1 |
| substack.com | 15.6 |
| linear.app | 14.2 |
| stackoverflow.com | 13.0 |
| figma.com | 11.6 |
| www.theverge.com | 11.3 |
| webflow.com | 5.6 |
| byerisk.com | 5.5 |
| biaojixia.com | 4.9 |
| www.nytimes.com | 3.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 在做的事。


