DefinitionA Core Web Vitals metric that measures how long it takes for the largest visible element in the viewport, usually a hero image or heading, to render. Good is 2.5 seconds or less.
Largest Contentful Paint (LCP) is a Core Web Vitals metric that measures how long it takes for the largest visible element in the viewport, usually a hero image, product photo or heading, to render after a visitor starts loading the page. Google calls an LCP of 2.5 seconds or less “good”, between 2.5 and 4 seconds “needs improvement”, and anything above 4 seconds “poor”.
The common misunderstanding is that LCP is a page speed score. It is not. A page can score well in Lighthouse and still fail LCP because one oversized banner takes four seconds to arrive. The other confusion is which number counts. Google judges largest contentful paint on field data: the 75th percentile of real visitors in the Chrome User Experience Report (CrUX). A lab test on your own fast laptop says nothing about a visitor in Groningen on 4G, and Google scores the second one.
Why LCP matters for a webshop
LCP is one of the three Core Web Vitals, and those feed into Google’s page experience signals. The ranking effect is modest and mainly a tiebreaker. The bigger reason to care is behaviour. On a webshop the LCP element is almost always what people came to see: the hero banner, the product image, the first row of category images. If it appears late, the visitor stares at a blank area and a share of them leave; how large that share is varies by study, but the direction is always the same.
The concrete consequence is money leaking at the top of the funnel. A WooCommerce shop that pays for Google Ads clicks to a product page with a 5 second LCP is buying clicks that never become page views in GA4, let alone add-to-cart events. Fixing LCP does not change rankings overnight, but it immediately improves what happens to the traffic you already have.
How to measure LCP
Start with field data, because that is what Google uses. PageSpeed Insights shows the CrUX figures at the top of the report and a lab run below it; read those two parts separately. The Core Web Vitals report in Google Search Console groups your URLs into good, needs improvement and poor, which shows whether a problem sits on one template, such as all product pages, or across the whole shop. My Core Web Vitals checker pulls the same CrUX field data next to a lab measurement for any URL.
Lab data is for diagnosis, not for scoring. In Chrome DevTools, the Performance panel marks the LCP element and breaks the timing into four parts: time to first byte, resource load delay (how long the browser waited before it even requested the image), resource load time, and render delay. A high TTFB points at hosting or missing server caching; a long load delay means the image is lazy-loaded or discovered late; a long load time means the file is too big; render delay points at CSS or JavaScript blocking the paint. For larger shops I crawl with Screaming Frog connected to the PageSpeed Insights API to get LCP per URL.
Common LCP mistakes
Lazy-loading the hero image. Many themes add loading=”lazy” to every image, including the one at the top, so the browser postpones the exact element LCP measures. The LCP image should load eagerly, with fetchpriority=”high” and ideally a preload hint in the head.
Uploading images straight from the camera. A 3 MB JPEG of 4000 pixels wide displayed at 800 pixels is the most common cause of a poor largest contentful paint I find in audits. Compress, resize to the displayed dimensions and serve WebP or AVIF. My image optimisation checker flags exactly these files on a page.
Trusting the lab score. A shop owner runs Lighthouse on a desktop, sees green and considers it done, while Search Console keeps reporting poor mobile URLs. The 75th percentile of real mobile users is the figure that counts, and it is nearly always worse than the lab run.
Slider plugins and plugin bloat. A homepage slider loads five large images plus its own JavaScript and CSS before the first slide paints. Add a dozen plugins injecting render-blocking scripts and the LCP element waits in a queue. One static hero image nearly always beats a carousel, for LCP and for clicks.
How I handle LCP for clients
I begin with the Search Console Core Web Vitals report to find which templates fail, then pick one representative URL per template and break its LCP into the four sub-parts in DevTools. That gives a short, ordered list of causes instead of a generic speed checklist. On a typical WooCommerce or PrestaShop shop the fixes land in a predictable order: server caching (LiteSpeed where the hosting supports it) and a CDN for TTFB, image compression, modern formats and correct sizing, removing lazy-loading from the LCP element and adding fetchpriority and preload, then deferring the scripts and stylesheets that block rendering.
The deliverable is a prioritised fix list per template implemented by me or the client’s developer, followed by a re-measurement about four weeks later when CrUX has caught up. This work sits inside my Core Web Vitals service and usually connects to a broader technical SEO audit, because the same crawl that surfaces slow templates also surfaces their indexing issues.
Frequently asked questions
What is a good LCP time?
Google’s threshold for good is 2.5 seconds or less, measured at the 75th percentile of real visitors. Between 2.5 and 4 seconds is “needs improvement” and above 4 seconds is “poor”. For a webshop I aim at under 2 seconds on mobile to keep headroom for new banners or plugins.
Which element is the LCP element on a webshop?
On most shops it is the hero banner on the homepage, the main product image on a product page and the category image or first product tile on a category page. It can change with screen size, so a heading may be the LCP element on mobile and an image on desktop. DevTools and PageSpeed Insights both show which element was measured.
Why does PageSpeed Insights show a different LCP than Search Console?
PageSpeed Insights shows field data and a single lab run; Search Console only uses field data. The lab run is one simulated device at one moment; the field figure is the 75th percentile of real visits over the previous 28 days. When the two disagree, the field figure is the one Google scores.
Does improving LCP improve rankings?
Slightly, and mostly as a tiebreaker when content and links are comparable. The larger effect is on bounce rate and conversion, because a page that paints its main content quickly keeps more of the traffic you already earn or pay for. I treat LCP as technical SEO, but I sell it on the conversion argument.