Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Largest Contentful Paint (LCP) measures how long it takes the largest eligible image, text block, or video in the visible part of a page to render after navigation begins. Google’s recommended “good” threshold is 2.5 seconds or less at the 75th percentile, assessed separately for mobile and desktop. To improve a slow result, first confirm it in real-user data, then diagnose which part of the LCP timeline is slow before changing the page.
What LCP measures—and what it does not
LCP is a Core Web Vital intended to approximate when a page’s main content has appeared. It tracks the render time of the largest eligible content element visible in the viewport, measured from the start of navigation. The candidate can change while the page loads, so the final LCP is not necessarily the first large element the browser paints. See Google’s LCP definition and thresholds.
LCP is not the same as total page-load time or first paint. It includes navigation-related time such as connection setup, redirects, and server response, so a slow LCP can begin before the browser downloads the visible image or renders its text. A warm, local test may not reproduce a visitor’s connection setup or server distance.
Google’s LCP thresholds
| Rating | LCP at the 75th percentile |
|---|---|
| Good | 2.5 seconds or less |
| Needs improvement | More than 2.5 seconds and no more than 4.0 seconds |
| Poor | More than 4.0 seconds |
Google’s Chrome team and web.dev published these recommended thresholds in 2025. Evaluate the 75th percentile (p75) separately for mobile and desktop; a single average can hide a slower experience for one group. These are experience targets, not a guarantee that every visitor will see the same timing.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
How to measure LCP
Use field data to establish what visitors experience, then use a lab test to investigate why. The distinction matters: field data represents observed users, while a lab run offers repeatable conditions for debugging but may not match users’ devices, networks, locations, cache state, redirects, or personalized content.
Check real-user field data first
- PageSpeed Insights: View Chrome User Experience Report (CrUX) field data where available. Check whether the result is for the specific URL or the broader origin; the tool may show origin-level data when there is not enough URL-level coverage.
- Chrome DevTools or Search Console: Use them to inspect CrUX information and Core Web Vitals status. Compare mobile and desktop rather than treating them as interchangeable.
- Site RUM: If you need data for your own visitors or more useful segments, collect real-user monitoring (RUM) data. The web-vitals JavaScript library is Google’s recommended practical wrapper for browser metric APIs because it handles important measurement details.
CrUX is anonymized real-user measurement. If URL-level data is unavailable, origin-level results can still provide context, but they may not describe an individual page. A site’s own RUM can add detail; direct browser-API instrumentation requires care with backgrounded pages, back-forward-cache restores, iframe content, and prerendered pages.
Rank #2
Use lab tools to diagnose, not replace, field data
Run Lighthouse, inspect the Chrome DevTools Performance panel, or use WebPageTest to reproduce and investigate a slow result. Look for the LCP element, its render timing, and related network requests. Lighthouse diagnostics can identify opportunities, and controlled runs are useful during development or in continuous integration, but a lab score alone does not establish how visitors’ field experience changed.
Compare like with like: the same page, device category, and relevant test conditions. If field data is poor but a local run looks fast, investigate differences such as redirects, cache state, network quality, visitor location, and page personalization instead of assuming the field result is wrong. Google’s LCP optimization guide also describes using timing gaps to narrow the cause.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Rank #3
- Used Book in Good Condition
Find the slow part of the LCP timeline
Before optimizing, identify the LCP element and inspect the initial HTML document and any resource that supplies that element. LCP can be divided into four consecutive parts that add up to the total:
- Time to First Byte (TTFB): Navigation start until the first byte of the HTML response arrives.
- Resource load delay: Time from TTFB until the browser starts loading the LCP resource, if the element depends on one.
- Resource load duration: Time spent downloading that resource.
- Element render delay: Time from resource completion until the element is rendered.
For a text LCP element there may be no image download, but discovery and rendering can still be delayed. Use the browser’s timing details and network waterfall to determine which part is actually consuming time; reducing one part may not improve total LCP much if another remains the bottleneck.
Interpret the timing pattern
- High TTFB: Check redirects, server distance from visitors, network conditions, and whether caching is working. A large TTFB uses up the time available for the remaining stages.
- Large gap between TTFB and First Contentful Paint (FCP): Look for render-blocking resources or substantial client-side rendering work.
- Large gap between FCP and LCP: Investigate late discovery of the LCP resource, JavaScript-managed content, or rendering work that delays the element.
How to improve LCP based on the cause
Make a change that targets the slowest measured component, then check its effect in a waterfall and in field data. The right fix depends on whether the delay comes from the server, discovery, downloading, or rendering.
If TTFB is high
- Reduce unnecessary redirects.
- Check how far the server is from visitors and whether the response path is unnecessarily slow.
- Investigate cache misses, including query parameters or other request details that prevent effective caching.
- Review other server-response causes before tuning image bytes. A high TTFB can make the 2.5-second target difficult or, in some cases, impossible to meet.
If resource load delay is high
- Make the LCP resource discoverable in the initial HTML where possible. A browser can start loading a resource earlier when it can find it without waiting for client-side JavaScript.
- Do not use
loading="lazy"on an image likely to be the LCP element. - Consider
fetchpriority="high"for the LCP image, but do not give high priority indiscriminately to many images. Verify the browser’s prioritization in DevTools. - Consider preloading a resource when it cannot be discovered early through HTML, and confirm that the preload helps rather than competing with more important requests.
If resource load duration is high
- Check that the image is sized appropriately for how it is displayed and compressed sufficiently.
- Consider a suitable modern image format where browser support and your delivery setup allow it.
- Keep byte-saving work proportional to the measured delay. Faster image transfer will have limited effect on total LCP if TTFB, discovery, or rendering takes longer.
In one web.dev analysis of Chrome field data, the majority of origins in the poor-LCP bucket spent less than 10% of p75 LCP downloading the LCP image. That is a finding about the origins in that analysis, not a universal constant—and it does not mean image optimization never helps. It does show why measuring the subparts is more useful than assuming image compression is the answer.
Best Value
If element render delay is high
- Reduce render-blocking CSS and remove, defer, or otherwise avoid loading styles that are not needed for the initial view.
- Avoid synchronous scripts in the document head where possible, and reduce long main-thread tasks that delay rendering.
- Do not make the LCP element wait for JavaScript unnecessarily. Server rendering or static generation can expose content and image URLs earlier, but assess the server-response trade-off if server rendering increases TTFB.
Choose the measurement method that fits the question
| Method | Best use | Coverage and limits |
|---|---|---|
| CrUX through PageSpeed Insights, DevTools, or Search Console | Check observed Chrome user experience and whether the recommended target is met. | URL-level data may be unavailable; distinguish page data from origin data and compare mobile with desktop. |
| Site RUM using web-vitals | Understand the site’s own real-user population and useful visitor segments. | Requires instrumentation and data collection; direct API use has lifecycle and iframe edge cases. |
| Lighthouse, DevTools Performance, or WebPageTest | Reproduce a problem under controlled conditions and test potential changes. | Lab conditions may differ from real visitors’ devices, networks, locations, cache states, redirects, or content. |
Verify the change with measurements
- Record the field LCP result by device category and note whether it is URL-level or origin-level data.
- Reproduce the page in a lab tool and identify the LCP element, its network requests, and the longest of the four LCP components.
- Change the part that the timings identify, then inspect the network waterfall and rerun the lab diagnostics.
- Check field data again over time to see whether visitors’ LCP changed. Do not infer a real-world gain solely from a better lab result.
Definitions and tool behavior can change. Google’s LCP definition page was last updated September 4, 2025; use the current definition and optimization guidance when applying the metric to a live site.
Quick Recap
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.

