# First Contentful Paint (FCP)

Category: [Performance & Core Web Vitals](https://seo-geo-glossary.com/en/glossary/category/performance-core-web-vitals/) › [Core Web Vitals & metrics](https://seo-geo-glossary.com/en/glossary/category/performance-core-web-vitals/core-web-vitals-metrics/) · Also known as: FCP

**First Contentful Paint (FCP)** is a performance metric for the time between the start of navigation and the moment the first piece of content is rendered. Text, images (including background images), SVG elements and non-white canvas elements count as content.

## Thresholds

According to web.dev, an FCP of 1.8 seconds or less is good, 1.8 to 3.0 seconds needs improvement, and more than 3.0 seconds is poor, measured at the 75th percentile of page views. Lighthouse uses stricter limits for desktop (0.9 and 1.6 seconds).

## How does it relate to the Core Web Vitals?

FCP is not a Core Web Vital. Those are LCP, INP and CLS. FCP marks when anything appears, while LCP marks when the largest element in the viewport is rendered, so FCP comes first. web.dev notes that FCP includes time for unloading the previous page, connection setup, redirects and time to first byte.

Lab tools such as Lighthouse and Chrome DevTools measure FCP, as do field sources such as the Chrome UX Report, PageSpeed Insights and Search Console.

## Example

In an illustrative example, a product page loads a large stylesheet in the `<head>`. The browser shows nothing until the file has downloaded, and FCP is 3.4 seconds, which is rated poor.

## At a glance

- **Metrics:** FCP (First Contentful Paint)
- **Measures:** Time from navigation to the first rendered content
- **Data source:** Field data (e.g. CrUX) and lab data (Lighthouse)
- **“Good” threshold:** 1.8 s or less
- **Assessment:** 75th percentile of page loads
- **Docs:** [web.dev: First Contentful Paint](https://web.dev/articles/fcp)

Last checked: October 8, 2026

## Thresholds

- **FCP** (First Contentful Paint): good ≤ 1.8 s, needs improvement ≤ 3 s, poor > 3 s ([Source](https://web.dev/articles/fcp))

Assessed at the 75th percentile of page loads, mobile and desktop separately.

## Web Vitals metrics compared

| Metric | Measures | Core Web Vital? | Field or lab | “Good” per web.dev |
|---|---|---|---|---|
| LCP (Largest Contentful Paint) | Render time of the largest image, text block or video visible in the viewport, from the start of navigation | yes (loading) | field and lab | 2.5 s or less |
| INP (Interaction to Next Paint) | Latency of interactions across the whole visit until the next paint; one value that all (or nearly all) interactions fall below | yes (interactivity), since 2024-03-12 | field; in the lab only with simulated interactions, Lighthouse does not measure INP | 200 ms or less |
| CLS (Cumulative Layout Shift) | Largest burst of unexpected layout shifts during the entire lifecycle of the page | yes (visual stability) | field and lab | 0.1 or less |
| TTFB (Time to First Byte) | Time from the start of navigation until the first byte of the response arrives | no (helps diagnose LCP) | field and lab | 0.8 s or less |
| FCP (First Contentful Paint) | Time from the start of navigation until any part of the page's content is rendered | no (helps diagnose LCP) | field and lab | 1.8 s or less |
| TBT (Total Blocking Time) | Total time after FCP during which the main thread was blocked long enough to prevent input responsiveness | no (lab proxy for INP) | lab; web.dev does not recommend field measurement | less than 200 ms on average mobile hardware |
| Speed Index | How quickly content is visually displayed during page load (from a video of the load) | no | lab (Lighthouse) | Threshold according to Lighthouse: mobile up to 3.4 s “fast” (web.dev gives no value) |
| FID (First Input Delay), historical | Time from the first interaction until the browser can begin processing event handlers | until 2024-03-12, replaced by INP | field only | 100 ms or less |

Sources: [web.dev: Web Vitals](https://web.dev/articles/vitals); [web.dev: Largest Contentful Paint (LCP)](https://web.dev/articles/lcp); [web.dev: Interaction to Next Paint (INP)](https://web.dev/articles/inp); [web.dev: Cumulative Layout Shift (CLS)](https://web.dev/articles/cls); [web.dev: Time to First Byte (TTFB)](https://web.dev/articles/ttfb); [web.dev: First Contentful Paint (FCP)](https://web.dev/articles/fcp); [web.dev: Total Blocking Time (TBT)](https://web.dev/articles/tbt); [web.dev: First Input Delay (FID)](https://web.dev/articles/fid); [web.dev Blog: Interaction to Next Paint is officially a Core Web Vital (2024-03-12)](https://web.dev/blog/inp-cwv-launch); [Chrome for Developers: Lighthouse – Speed Index](https://developer.chrome.com/docs/lighthouse/performance/speed-index). Last checked: October 8, 2026

## Related terms

- [Largest Contentful Paint (LCP)](https://seo-geo-glossary.com/en/glossary/largest-contentful-paint/index.md)
- [Interaction to Next Paint (INP)](https://seo-geo-glossary.com/en/glossary/interaction-to-next-paint/index.md)
- [First Input Delay (FID)](https://seo-geo-glossary.com/en/glossary/first-input-delay/index.md)
- [Time to First Byte (TTFB)](https://seo-geo-glossary.com/en/glossary/time-to-first-byte/index.md)
- [Render-blocking resources](https://seo-geo-glossary.com/en/glossary/render-blocking-resources/index.md)
- [Core Web Vitals](https://seo-geo-glossary.com/en/glossary/core-web-vitals/index.md)

## Sources

- [First Contentful Paint (FCP) – web.dev](https://web.dev/articles/fcp)
- [First Contentful Paint – Lighthouse, Chrome for Developers](https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint)
- [Web Vitals – web.dev](https://web.dev/articles/vitals)
- [First contentful paint – MDN](https://developer.mozilla.org/en-US/docs/Glossary/First_contentful_paint)

---

Last updated: October 8, 2026
URL: https://seo-geo-glossary.com/en/glossary/first-contentful-paint/
