Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
Core Web Vitals

What Is FCP? How to Measure and Improve First Contentful Paint

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

First Contentful Paint (FCP) is the elapsed time from the start of a page navigation until the browser first draws eligible content, such as text, an image, an SVG, a CSS background image, video, or a non-white canvas. It tells you that the browser has shown something—not that the page’s main content is ready.

Use field data to see what real visitors experience, lab tests to investigate likely causes, and then recheck field data after changes. Judge FCP at the 75th percentile with mobile and desktop separated.

What is FCP?

FCP measures the interval between navigation start and the first paint of content the browser considers meaningful. The eligible content types include text, images (including CSS background images), SVG elements and non-white canvas; MDN also includes video. Content inside a cross-origin iframe is not counted by the parent page. Text can count while a webfont is still loading, so the first paint may not use the final typeface.

MDN summarizes the metric’s purpose as answering: “Is anything happening?” FCP is therefore an early, user-centered loading signal. It is not a completion metric and does not prove that the page is usable or that its primary information is visible.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

FCP versus LCP

FCP records the first eligible visual response. Largest Contentful Paint (LCP) records when the largest visible image or text block in the viewport is rendered. A navigation can have a fast FCP because a small heading or background appears, while the article, product image or other main content remains delayed. Measure both when assessing perceived loading.

What can be included in the time?

FCP can reflect more than rendering work in the browser. Depending on the navigation, the interval can include the previous page’s unload work, connection setup, redirects and server time to first byte (TTFB). These factors help explain why field results differ from a controlled lab run.

What is a good FCP score?

web.dev’s FCP guidance (updated October 19, 2022) classifies 1.8 seconds or less as good and more than 3.0 seconds as poor. Values between those boundaries need improvement.

FCP result web.dev interpretation How to report it
≤ 1.8 s Good State whether the value is field or lab data, the device segment and the percentile.
> 1.8 s and ≤ 3.0 s Needs improvement Investigate the page’s measured bottleneck and retest under comparable conditions.
> 3.0 s Poor Prioritize diagnosis; identify whether server, network, resource or rendering work is delaying the first paint.

Use percentiles and device segments

Evaluate the 75th percentile of page loads rather than an average or a single run. Split mobile and desktop data so a fast desktop population does not hide a slow mobile experience. The web.dev field thresholds above use the same cutoffs for both device groups; Lighthouse’s lab presentation uses device-specific scoring bands, which are a different comparison context.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When comparing two numbers, label the context: field versus lab, page-level versus origin-level data, mobile versus desktop, percentile versus one run, and FCP versus LCP. A lower lab result does not by itself establish that real users improved.

How to measure FCP

1. Check field performance

PageSpeed Insights and Chrome User Experience Report (CrUX) data can show FCP collected from real visitors. Field data incorporates the networks, devices and conditions that your audience actually uses. It is the appropriate view for deciding whether users experience a problem.

2. Run a lab diagnostic

Lighthouse, Chrome DevTools and the Lighthouse run inside PageSpeed Insights provide controlled measurements and diagnostics. A lab run is useful for reproducing a page load, inspecting the critical path and finding likely opportunities, but it represents the selected test conditions rather than your entire audience.

3. Measure in production code

The Paint Timing API exposes a first-contentful-paint entry through PerformanceObserver. A minimal observer is:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
const observer = new PerformanceObserver((list) => {
  for (const entry of list.getEntries()) {
    if (entry.name === 'first-contentful-paint') {
      console.log('FCP:', entry.startTime);
    }
  }
});
observer.observe({ type: 'paint', buffered: true });

For production collection, the web-vitals JavaScript library handles several edge cases more reliably than a raw entry listener. Neither approach can expose paint timing for content in a cross-origin iframe to the parent page.

4. Filter and qualify raw measurements

Do not treat every API entry as a valid page-visit FCP. Exclude pages that were in a background tab, account for back-forward cache restores, and handle prerender activation timing. Record the page, device class and navigation context with the value so later comparisons remain meaningful.

A practical measurement loop

  1. Inspect field data to establish whether visitors and which device group are affected.
  2. Run a lab audit on the same page and examine its waterfall, render-blocking resources and diagnostics.
  3. Make one targeted change tied to the identified bottleneck.
  4. Repeat the lab test under comparable conditions, then wait for new field data before claiming a real-user improvement.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to improve FCP

Start with the opportunities and diagnostics for the specific page. Techniques below are directions to investigate, not guarantees; the highest-value fix depends on what delays that page’s first eligible paint.

Remove work that blocks the first render

  • Defer or eliminate render-blocking JavaScript that is not needed for the initial view.
  • Reduce blocking CSS, minify it and remove rules that the page does not use.
  • Remove unused JavaScript and avoid loading features before they are needed.

Shorten the server and navigation path

  • Reduce TTFB through server, application and caching improvements.
  • Avoid unnecessary redirects, which add navigation and connection time.
  • Use efficient caching for static assets so repeat visits do not download them again.

Prioritize early requests

  • Preload a key request only when it is genuinely required early in rendering.
  • Reduce the number and size of requests on the critical path.
  • Reduce critical request depth so the browser discovers first-view resources sooner.

Control payloads and fonts

  • Reduce large network payloads and prioritize visible content in the DOM.
  • Keep text visible while webfonts load instead of hiding it until the font is ready.
  • Inspect DOM size when diagnostics indicate that excessive markup is slowing style or layout work.

Retest the cause, not just the score

After each change, verify that the intended blocking resource, response delay or payload issue actually changed. Re-run the lab test with the same device and network assumptions, then monitor the 75th-percentile mobile and desktop field distributions. A better lab FCP is evidence of a controlled-test change; only follow-up field data can show whether users benefited.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Frequently Asked Questions

Does FCP mean the page is ready?

No. FCP only confirms that the browser painted the first eligible content. Use LCP and other page-specific checks to determine whether the main content has appeared and the experience is usable.

Why can my field FCP be slower than Lighthouse?

Field data includes real devices, networks, redirects, connection setup and server conditions. Lighthouse uses a controlled environment, so its result is diagnostic rather than a direct description of every visitor’s experience.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read next

Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.