First contentful paint on 34 homepages: three clear the 1.8-second bar
First contentful paint is the moment the first text or image lands, and on 34 homepages only 3 came in under the 1.8-second target. The median page stayed blank for about 3.9 seconds — and the gap to largest contentful paint is where the real wait hides.

FIELD TEST · 2026-10-01 · 34 homepages · single Lighthouse run
Sample and method: 34 homepages, including our own four sites, each loaded once by Lighthouse 13.5.0 in its mobile configuration on 2026-10-01; we read first contentful paint from each JSON report. One run per site, no averaging, no repeat.
First contentful paint is the moment the first text or image lands on the screen, and across these 34 homepages it mostly arrived late. Only 3 cleared the 1.8-second bar web.dev sets for the metric. The median homepage took about 3.9 seconds to show anything. FCP is not a Core Web Vital, though — the loading metric you are graded on is largest contentful paint — and the gap between the two is the part worth reading the tables for.
How we measured it
First contentful paint "measures the time from when the user first navigated to the page to when any part of the page's content is rendered on the screen", where content means text, images, SVG or a non-white canvas (web.dev, read 2026-10-01). Because it is measured from navigation start, the number includes redirect time, connection setup and time to first byte, so a slow server shows up here as readily as heavy CSS.
We ran one headless Lighthouse per host with only the loading audits enabled and kept the raw millisecond value rather than the rounded one. The panel is the 30-site set we have used for other surveys, plus our own four sites. A handful of hosts redirected us to a market-specific locale because of where this machine sits — stripe.com landed on /nl, developer.mozilla.org and slack.com on their Chinese paths, canva.com on /zh_cn — and we kept whatever the redirect served. That is a difference between this reading and one taken from another location.
The first contentful paint results: three homepages passed
The published target for this metric is 1.8 seconds or less on mobile. Three sites cleared it: a static marketing page, the MDN docs, and Hacker News. Eight more came in under 3.0 seconds, the point past which web.dev calls the result poor. The remaining 23, two thirds of the panel, painted nothing for over three seconds.
| Homepage | FCP (ms) |
|---|---|
| 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 |
| Band | Sites |
|---|---|
| 1.8 s or less | 3 |
| Over 1.8 to 3.0 s | 8 |
| Over 3.0 s | 23 |
First contentful paint is not how fast your page is. It is how long it stays blank.
The gap to largest contentful paint
The more useful reading is the distance between the first paint and the last meaningful one, because that gap is time a visitor spends looking at a half-drawn page. On eight of the 34 sites the two metrics came in at the same millisecond, which usually means the page paints in one pass. On the others the gap ran into seconds. The widest was Wired, at 24.1 seconds between its first paint and its largest element.
| Homepage | FCP → LCP (s) |
|---|---|
| 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 |
A page can pass FCP and still feel slow, because the thing a reader came for is often the last thing to load. That is exactly the gap this table measures, and it is the metric Google grades: the chapter on largest contentful paint is where that one lives.
What the numbers do not tell you
These are lab numbers from one run, and one run is a small sample. Lighthouse load times move with the machine, the network and the day: astro.build returned 7,148 ms in this panel and 1,715 ms in an earlier single test the same afternoon. We did not re-run any site, so we cannot tell you how stable any individual reading is. What survives the noise is the shape — three fast sites, a long tail over three seconds — and that shape is stable enough to act on.
The other limit is what FCP counts. It is the first pixel of any content, so it fires early on a page that paints a logo and goes quiet, and late on one that blocks everything behind a stylesheet. It does not know which of those happened. FCP is also not one of the three Core Web Vitals; if you only have room to watch one loading number, watch the largest contentful paint instead. If you want the responsiveness side, the interaction to next paint chapter is the one that matters, and the total blocking time survey is its lab companion.
What this means for you
One command gives you your own number, with no account and no sign-up.
npx lighthouse https://example.com/ \
--only-audits=first-contentful-paint,largest-contentful-paint \
--output=json --output-path=fcp.json --quiet
- Read the two numbers together. The gap between them is what a visitor actually waits through.
- Treat a fast FCP as a floor, not a finish. It tells you the page is not blank; it says nothing about the main content.
- Do not compare your score to this table unless you are on the same machine and network we were.
- Do not optimise FCP by hiding content later. Painting something quickly and then blocking the real thing is worse than a slow start.
Common questions
How did you measure this?
One headless Lighthouse run per homepage on 2026-10-01, mobile configuration, reading the first-contentful-paint audit from the JSON output. No repeats, no averaging, no field data. The sample is 34 pages of one type: homepages, and it includes our own four sites.
Is first contentful paint a ranking factor?
No. It is not one of the three Core Web Vitals, so it is not part of the page experience signals at all. It is worth fixing because a page that shows nothing for four seconds loses visitors before your content can compete, not because Google scores it.
What is the difference between FCP and LCP?
FCP is the first piece of content; LCP is the largest one in the viewport. A page can paint a heading at one second and its hero image at eight, passing FCP and failing LCP. That is why a good FCP on its own is a weak signal.
Why is my FCP different from PageSpeed Insights?
PageSpeed Insights can show field data from real users, and a local Lighthouse run cannot. When the two disagree, the field number describes your visitors, and the lab number only helps explain it.
Next step
The number is easy to get and hard to argue with. Take your own pair — FCP and LCP — and look at what sits between them, because that is the window a reader spends staring at a page that has not finished. Watching that gap across the pages people land on is part of what QueryWin works on.


