Web Performance Glossary
FCPMeasured in seconds

What is First Contentful Paint (FCP)?

First Contentful Paint (FCP) is a performance metric that measures the time from when a page starts loading to when the browser renders the first piece of DOM content — any text, image, non-white canvas, or SVG. It is the first signal a user receives that the page is actually loading.

What FCP Measures

FCP marks the point at which the user sees that something is happening. It does not need to be the full page — even a loading indicator or partial text qualifies. FCP is a leading indicator of perceived performance: low FCP makes users feel the site is responsive, even if the main content (LCP) takes a moment longer.

What is a Good FCP Score?

Good≤ 1.8 seconds
Needs Improvement1.8 – 3.0 seconds
Poor> 3.0 seconds

What Causes Poor FCP Scores?

  • High server response time (TTFB) — the browser cannot paint anything until it receives the first byte of HTML
  • Render-blocking resources — JavaScript and CSS in <head> that must download and execute before any rendering occurs
  • Large HTML payloads — pages with many DOM elements require more parsing time before the first paint
  • Slow DNS lookup or connection setup — adds latency before the HTML even starts downloading
  • No HTTP/2 or HTTP/3 — older HTTP protocols serialize requests, increasing time to receive critical resources

How to Fix FCP

  • Improve TTFB through server-side caching (Redis, page cache) or a CDN with edge caching
  • Eliminate render-blocking scripts using defer or async attributes, or move scripts to the end of <body>
  • Inline critical CSS (above-the-fold styles) and load the full stylesheet asynchronously
  • Preconnect to critical third-party origins with <link rel="preconnect">
  • Enable HTTP/2 or HTTP/3 to allow parallel resource downloads
  • Reduce server-side processing time for the initial HTML response

First Paint vs. First Contentful Paint

These two metrics are easy to confuse because they sound identical. First Paint (FP) is the moment the browser paints any pixel that differs from what was on screen before navigation — this can be triggered by nothing more than a background-color change, with zero actual content visible.

First Contentful Paint (FCP) requires real content: the first text, image, canvas, or SVG element to render. Because FP has no content requirement, it almost always fires slightly before FCP, and it is not a metric Lighthouse, PageSpeed Insights, or Google Search Console report or score — FCP is the one that counts for performance audits.

Check Your FCP Score

Check your FCP score with a free Lighthouse audit at speedexporter.com. The export includes your exact FCP timing, score, and the specific audits that explain what is causing it.

Run a free Lighthouse audit →

Frequently Asked Questions

What is a good FCP score?

Google considers FCP "good" at 1.8 seconds or under. Between 1.8 and 3.0 seconds needs improvement. Above 3.0 seconds is poor.

Is FCP a Core Web Vital?

FCP is a Lighthouse metric and contributes to the overall performance score, but it is not one of Google's three Core Web Vitals. The Core Web Vitals are LCP (loading), INP (interactivity), and CLS (visual stability). However, improving FCP typically improves LCP as well.

What is the difference between FCP and TTFB?

Time to First Byte (TTFB) is when the browser receives the first byte of the HTML response. First Contentful Paint (FCP) is when the browser renders the first visible content. Every millisecond of TTFB delays FCP directly.

What is the difference between FCP and LCP?

FCP measures when the first piece of content renders. LCP measures when the largest piece of content renders. FCP is always faster than or equal to LCP. FCP is a good indicator of perceived responsiveness; LCP is a better indicator of when the page is truly useful to the user.

What is the difference between First Paint and First Contentful Paint?

First Paint (FP) fires the moment the browser renders anything different from the previous screen — even a simple background color change with no actual content. First Contentful Paint (FCP) requires actual DOM content: text, an image, a non-white canvas, or an SVG. FP always occurs at or before FCP, and FP is not used in Lighthouse scoring or Core Web Vitals reporting — FCP is the metric that matters.

Does FCP affect SEO?

FCP is not one of Google's three Core Web Vitals (those are LCP, INP, and CLS), so it is not a direct ranking factor on its own. However, FCP contributes 10% to the Lighthouse Performance score and is almost always improved by the same fixes that improve LCP — server response time, render-blocking resources, and critical CSS — so optimizing FCP indirectly supports your Core Web Vitals and rankings.

What is a good FCP score on mobile vs desktop?

Google's 1.8-second "good" threshold applies to both, but mobile FCP is typically 1.5–2x slower than desktop for the same page due to CPU and network throttling in Lighthouse's mobile emulation. A site with a 1.0s desktop FCP might show 2.2s on mobile — always optimize against the mobile number since that is what Lighthouse and PageSpeed Insights report by default.

Related Metrics

Guides & tutorials