What Is Largest Contentful Paint? An SEO Fixes Guide

Published
15 min read

Largest Contentful Paint measures when the largest eligible visible element renders. Learn thresholds, candidates, timing phases and fixes.

What Is Largest Contentful Paint?

Largest Contentful Paint, or LCP, measures when the largest eligible image, text block or video element visible in the viewport is rendered during page load. It approximates when the page’s main visible content becomes available.

LCP is a page-load metric rather than a complete score for speed or quality. The browser observes eligible paint candidates as the initial view develops and records progressively larger elements. The final candidate may be a hero image, a product image, a heading-and-copy block, a poster frame or another large visible element. The metric is sensitive to the full delivery chain: server response, discovery, downloading, CSS, fonts, JavaScript rendering and main-thread work. A page can have a fast response and still produce slow LCP because its primary asset is discovered late or cannot render. Conversely, shrinking the candidate visually without improving useful content can make a number look better while weakening the experience.

  • Measured from navigation start
  • Tracks the largest eligible visible element
  • Candidate can change during loading
  • Reflects network and rendering dependencies
  • Varies by viewport, device and content
  • Needs field and diagnostic context
LCP fundamentals
QuestionAnswerWhy it matters
What is timed?Render of largest eligible visible elementRepresents main-view completion
Where?Initial viewportChanges by device
When?During page loadingCandidates can update
Which element?Image, text or video candidateFix depends on type
What affects it?Response, load and render chainRequires decomposition
Is it the whole UX?NoPair with stability and interaction

LCP is most useful when teams identify the actual element and its dependency chain rather than treating the metric as an isolated stopwatch.

What Is a Good LCP Score?

A practical LCP target is 2.5 seconds or less for the 75th percentile of page loads, evaluated separately for mobile and desktop; 2.5–4 seconds needs improvement, while more than 4 seconds is poor.

Percentile evaluation matters because an average can hide a substantial slow-user population. Segmenting by device class prevents fast desktop sessions from masking weak mobile delivery. The thresholds organize investigation, but they do not replace business context or trend analysis. A page at 2.4 seconds can still regress after a banner, font or tag release, while a page above 2.5 seconds may require several coordinated changes rather than one quick fix. Track route families and templates, not only the home page. A sitewide number can conceal a slow product template with most organic entrances. Maintain the threshold as a decision boundary while also watching the element, resource timing and affected user share.

  • Good: 2.5 seconds or less
  • Needs improvement: above 2.5 through 4 seconds
  • Poor: above 4 seconds
  • Evaluate the 75th percentile
  • Separate mobile and desktop populations
  • Segment by template and key route
LCP interpretation
RangeClassificationNext action
≤ 2.5 sGoodProtect against regression
> 2.5–4.0 sNeeds improvementDecompose and prioritize
> 4.0 sPoorInvestigate shared blockers
Fast lab, slow fieldPopulation mismatchInspect devices and geography
Slow one templateLocalized architecture issueFix shared template
Sitewide regressionCommon dependency changedReview release timeline

Use the threshold to prioritize affected users and templates, then diagnose the element and phases responsible for the measured delay.

Which Elements Can Become the LCP Element?

LCP candidates commonly include image elements, poster images for video, images referenced through supported visual content, and blocks containing text; the selected element depends on the largest eligible painted area inside the viewport.

The candidate can differ between mobile and desktop because responsive layouts change element size and position. A desktop hero image may become a smaller mobile thumbnail while a headline block becomes largest. Cookie banners, skeletons and placeholders can complicate interpretation, although browser eligibility rules aim to avoid meaningless visual candidates. Background imagery needs special inspection because discovery can depend on CSS. Text candidates depend on font and style readiness. Dynamic applications may introduce a later, larger element after API data arrives. Record the element locator, URL when available, dimensions and viewport. Do not optimize an assumed hero before confirming what real sessions and representative lab runs identify.

  1. Measure representative mobile and desktop routes.
  2. Record the observed LCP element.
  3. Identify whether it is text, image or video poster.
  4. Trace its source and rendering dependencies.
  5. Check whether the candidate changes across runs.
  6. Confirm that the element represents useful content.
Common LCP candidates
CandidateTypical pagePrimary dependency
Hero imageLanding pageDiscovery and image request
Product imageProduct detailResponsive media pipeline
Headline blockArticle or categoryCSS and font rendering
Video posterMedia pagePoster discovery and transfer
Collection bannerCategory pageCSS or image load
Client-rendered panelApplication landingBundle and API completion

The correct LCP fix begins with the element actually selected on the route and device population being improved.

How Is LCP Calculated?

LCP records the render time of the largest eligible content candidate observed in the viewport, updating as larger candidates appear; the measurement generally stops around user interaction or page lifecycle boundaries defined by the browser.

The metric is exposed through performance entries, which can include timing, size, element identity and a resource URL when applicable. Candidate size reflects visible area rather than the source file’s pixel count, so a huge download displayed in a small box does not become important merely because the file is large. Elements removed from the document may no longer be available through the entry’s element reference, which is one reason field instrumentation should capture relevant attribution promptly. Cross-origin resource timing and privacy behavior can affect detail. For diagnosis, break the result into response delay, resource-load delay, resource duration and element-render delay rather than guessing from the total.

  1. Observe eligible visible content paints.
  2. Update the entry when a larger candidate renders.
  3. Record time relative to navigation start.
  4. Capture element, size and URL attribution when available.
  5. Stop candidate updates at the relevant lifecycle boundary.
  6. Send field attribution with route and device context.
LCP timing components
PhaseMeaningExample cause
Response delayTime before useful HTML arrivesOrigin or redirect latency
Load delayWait before resource request startsLate discovery
Load durationTime to transfer resourceLarge image or weak connection
Render delayWait after resource is readyCSS or main-thread work
Text readinessStyle and font pathBlocking stylesheet or font
Client content delayApplication creates candidateBundle and API chain

LCP becomes actionable when its total time is decomposed into the network and rendering phases that teams can change.

Field Data vs Lab Data for LCP

Field data measures real user devices, networks, caches and page states, while lab data runs controlled synthetic conditions. Field data proves population impact; lab data reproduces and diagnoses causes.

The two sources can disagree without either being wrong. A lab test may use a cold cache and one device profile, while returning visitors in the field benefit from cached assets. Field traffic may include slower devices, distant regions, consent flows, experiments and personalized banners absent from the test. Route aggregation can also mix different content and LCP elements. Begin with field data to locate affected templates and user segments, then reproduce representative conditions in the lab. Validate the proposed fix in controlled traces and monitor the field distribution after release. Avoid comparing a single lab run with a multiweek percentile as if they were equivalent observations.

  • Field data captures real population variance
  • Lab data provides repeatable diagnostics
  • Cache and connection assumptions differ
  • Experiments and consent can change candidates
  • Route aggregation can hide template outliers
  • Post-release field confirmation takes time
Field and lab LCP compared
DimensionFieldLab
UsersReal populationSynthetic profile
NetworkActual conditionsControlled throttling
CacheMixed statesChosen state
ContentReal routes and variantsSelected test URL
StrengthOutcome distributionDetailed diagnosis
LimitationLess controlledMay not represent population

Use field data to decide where LCP matters and lab evidence to determine why it is slow and whether a change addresses the right phase.

What Causes Slow Largest Contentful Paint?

Slow LCP usually comes from delayed HTML, late candidate discovery, long resource transfer, render-blocking CSS or fonts, heavy main-thread work, client-rendered content or an oversized primary asset.

A redirect chain or slow server delays every later stage. An image referenced only in a late stylesheet or inserted after JavaScript runs cannot start early. Incorrect responsive sizing can download far more pixels than the display needs. Competing preloads and third-party requests can consume bandwidth before the primary asset. Text candidates may wait for CSS and fonts. Even after the image is downloaded, a busy main thread or hidden component can postpone rendering. Lazy loading the LCP image is a frequent self-inflicted delay. Diagnose the phase before choosing a fix: compressing an image will not solve a two-second request-discovery gap, and preloading will not fix heavy post-download execution.

  • Redirect or slow server response
  • Primary resource discovered late
  • LCP image incorrectly lazy loaded
  • Oversized or poorly encoded media
  • Blocking CSS and font chains
  • JavaScript or API-created main content
  • Main-thread work after the resource arrives
Slow LCP causes by phase
PhaseCauseEvidence
ResponseOrigin latency or redirectsNavigation timing
DiscoveryCSS or JavaScript insertionWaterfall initiator
TransferLarge primary assetResource timing
StyleBlocking CSS or fontDependency chain
ApplicationAPI and bundle waitNetwork and DOM timeline
RenderLong main-thread tasksPerformance trace

Slow LCP is rarely solved reliably until the team identifies which timing phase owns the largest avoidable delay.

How Do You Improve LCP?

Improve LCP by shortening server response, exposing the real candidate early, prioritizing it appropriately, serving a correctly sized asset, reducing blocking dependencies and rendering primary content without unnecessary client work.

Start with the largest measured phase. Remove avoidable redirects and improve cache or origin behavior when response delay dominates. Put the primary image in initial HTML with accurate responsive sources, and do not lazy load it. Use preload only when evidence shows the browser discovers a proven critical resource too late. Reduce or split render-blocking resources, but protect the styles required for a correct first view. Deliver public main content through stable HTML when a client-side rendering chain causes the delay. Reserve media dimensions and retest visual quality so performance work does not create layout or accessibility regressions.

  1. Identify the real LCP element and timing phases.
  2. Fix response delay before downstream symptoms.
  3. Expose the candidate in initial HTML.
  4. Remove lazy loading from the primary visual.
  5. Serve responsive, compressed media.
  6. Reduce blocking CSS, fonts and scripts.
  7. Limit client work before main content.
  8. Verify field trend after deployment.
LCP fix map
FindingCandidate fixRegression check
Slow responseCache or origin workFreshness and status
Late image discoveryHTML or measured preloadNo duplicate request
Large transferResponsive optimized mediaVisual quality
Text render delayCritical CSS and font policyReadable stable text
Client-created heroServer or static deliveryData accuracy
Main-thread delayReduce early JavaScriptPrimary actions

The best LCP improvement removes delay from the measured candidate’s real path while preserving content truth, visual quality and interaction.

How Do You Audit Largest Contentful Paint?

Audit LCP by combining field percentiles with representative lab traces, recording the selected element, decomposing its phases and testing every route, device and content pattern affected by the shared template.

Start with real-user distributions segmented by mobile, desktop and route family. Select URLs that represent common and worst-performing content, not only the homepage. In a controlled test, capture navigation timing, waterfall, LCP attribution, responsive media choice, main-thread work and visual sequence. Repeat runs because network and cache variance can change the result. Check whether banners, experiments or viewport differences select a different candidate. Map each delay to its owner: origin, template, image pipeline, CSS, font, application bundle or third party. Pair the audit with lazy-loading, JavaScript SEO and server-rendering evidence where relevant.

  1. Segment field LCP by device and route family.
  2. Select representative and slow URLs.
  3. Record the actual LCP element.
  4. Decompose response, delay, load and render phases.
  5. Inspect discovery, priority and responsive sizing.
  6. Review CSS, fonts, scripts and main-thread work.
  7. Test proposed fixes across affected templates.
  8. Monitor field percentiles after release.
LCP audit worksheet
CheckEvidencePass condition
Population75th-percentile segmentsTarget routes identified
ElementLCP attributionUseful candidate confirmed
ResponseNavigation timingNo avoidable origin delay
DiscoveryWaterfall and initiatorCandidate found early
TransferResource timingEfficient asset
RenderPerformance traceLimited post-load delay
VariantsDevice and banner testsStable diagnosis
ReleaseField trendSustained improvement

A complete LCP audit connects a population outcome to one real element, one dependency chain and a verified production improvement.

Largest Contentful Paint FAQ

LCP measures when the largest eligible visible content element renders, but the number becomes useful only when it is paired with element attribution, timing phases and real-user context.

Treat LCP as a diagnostic path to useful content rather than a target that can be improved by hiding or shrinking the wrong element.

  • Measure real users and controlled traces
  • Identify the candidate before optimizing
  • Protect visual quality and page meaning
What does LCP measure?
It measures when the largest eligible content element visible in the viewport is rendered during page load.
What is a good LCP?
A practical target is 2.5 seconds or less at the 75th percentile, segmented for mobile and desktop.
What can be an LCP element?
Common candidates include large images, text blocks and video poster images visible in the initial viewport.
Why does the LCP element change?
Responsive layout, content timing and later larger paints can produce different candidates across devices or runs.
Should the LCP image be lazy loaded?
Usually no. A primary visible image should be discoverable and requested early.
Does a fast server guarantee good LCP?
No. Late discovery, resource transfer, blocking styles, fonts, scripts and render delay can still dominate.
Is lab LCP the same as field LCP?
No. Lab data is controlled and diagnostic; field data reflects real devices, networks, caches and users.
How often should LCP be audited?
Review after template, media, font, script, server or third-party changes and monitor high-value route families continuously.

LCP stays actionable when every reported value carries element, route, device and timing-phase context.

Find and Fix the Real LCP Bottleneck

Identify the actual candidate, trace every delay and connect LCP findings to prioritized technical SEO work. Novaverb helps teams turn page evidence into accountable fixes.

Use Novaverb’s SEO tools to inspect page resources, rendered content, internal links and shared-template behavior. Before changing valuable routes or media URLs, review external evidence with the Free Backlink Checker and explore broader patterns in Backlinks Explorer. Tie each performance change to the route’s actual LCP element and verify it against real production data.

  • Segment field performance by template
  • Capture the selected LCP element
  • Decompose every timing phase
  • Fix the largest shared bottleneck
  • Protect visual and content quality
  • Monitor after every release

The strongest LCP program makes meaningful content appear sooner for real visitors without weakening what the page says or does.