Need help getting your website ranked?
Contact Esabi today to request a FREE SEO analysis!
Over the years, I’ve seen more websites fail Core Web Vitals because of one issue than anything else: a poor Largest Contentful Paint score.
It’s the metric that catches businesses off guard, especially after a website redesign, because it affects how fast a page feels to load far more than people realise.
Largest Contentful Paint (LCP) measures how long it takes for the most visually important element on a page, usually a large image or heading to fully appear, and a good score is 2.5 seconds or faster.
Put simply, if that main element is slow to load, your page feels slow, your Core Web Vitals will fail, and your visitors are far more likely to abandon the page altogether.
I’ve experienced this repeatedly with clients who cannot understand why their sites “look fine” but still suffer speed penalties, and almost always, LCP is the culprit.
This article explains exactly what LCP is, what causes it to perform badly, and most importantly, how I optimise it in the real world.
Table of Contents

Largest Contentful Paint is one of Google’s Core Web Vitals and measures how long it takes for the main piece of visible content on a webpage to fully render.
When someone loads your site, they’re not waiting for hidden scripts, tracking pixels, or cookie banners to execute; they’re waiting for the main, meaningful content they came for.
LCP tracks exactly that.
In my own work, I find most people misunderstand LCP because they assume it measures the entire page load – it doesn’t!
Instead, it tracks the moment when the largest visible content element (usually the hero image, featured image, or main heading) becomes fully visible in the viewport.
It’s essentially Google’s way of measuring perceived load speed, and in my experience, it’s the metric users feel the most.
Only elements within the initial viewport (the visible screen area “above the fold” before scrolling) can be considered LCP candidates.
These include:
Over time during a page load, different elements may register as the “largest”, which means Google may update the LCP candidate until the final one is painted.
From experience, the biggest issue occurs when an initial text block registers first, then a large image loads later and becomes the new LCP, resulting in a much slower final score.
This happens surprisingly often on poorly optimised sites.
Google’s recommended thresholds are:
A “good” score means users see the main content quickly enough to stay engaged, which has a direct impact on bounce rates, retention, and rankings.
In practice, I aim for well below 2 seconds on mobile because mobile devices tend to struggle with slower networks and weaker hardware.

In my experience, LCP problems usually fall into a few categories:
Even a perfectly optimised image cannot load quickly if the server responds slowly.
High TTFB (Time to First Byte) delays everything that follows.
The number one cause I see is a large hero image that is far too big, sometimes several megabytes, or in the wrong format.
CSS and JavaScript that must load before the page paints can delay the actual content from appearing.
This is a common mistake.
If you lazy load the hero image, you are telling the browser to deprioritise it which kills LCP instantly.
If the LCP element contains text, slow-loading web fonts can delay the first render.
Frameworks that rely heavily on JavaScript often delay LCP because nothing meaningful renders until scripts execute.
Every time I diagnose a site with slow LCP, it always comes back to one or more of the issues above.
Google determines the “largest” element based on the element’s visible size within the viewport, not its actual file size.
For example:
CSS properties like scaling, cropping, and padding affect the visible size.
Google cares only about what the user sees, not what is stored on the server.

This is usually my first port of call.
Pagespeed Insights provides:
Field data is the most important because it reflects real-world performance across actual devices.
Lab data helps diagnose repeatable issues during development.

For deeper investigation, I use Chrome DevTools:
This tells me exactly when the element rendered and what events delayed it.
It also shows the specific element highlighted in the DOM, which makes troubleshooting much easier.
DevTools is also excellent for identifying whether fonts, scripts, or third-party requests are causing delays.
Based on years of doing this, these are the most effective and reliable techniques.
Start by identifying the actual LCP element, not what you think it is.
I’ve seen businesses optimise the wrong image because they assumed it was causing the delay.
Pagespeed Insights and Chrome DevTools clearly show the exact element.
Once you know what it is, you can optimise the correct thing.
Sometimes the LCP element is fine – it’s everything around it that is the problem.
Look for:
In my experience, even a minor delay in server response can add hundreds of milliseconds to LCP.
Server speed has a huge impact on LCP.
Switching from low-cost shared hosting to a modern solution can shave a full second off TTFB.
I usually recommend:
You cannot fix frontend issues if the server is slow.
Most LCP issues come from oversized or unoptimised images.
These are the essentials I follow:
Preloading is incredibly effective because it tells the browser the hero image is a priority.
Render-blocking CSS and JavaScript are notorious LCP killers.
I often fix this by:
The goal is to allow the browser to paint the page before tackling heavy scripts.
A CDN can drastically reduce the time it takes for images and other assets to reach users, especially when your audience is global.
CDNs such as Cloudflare, Fastly, and Bunny.net store cached versions of your assets closer to users geographically, reducing latency and improving LCP.
I consider a CDN essential for any modern website.
Yes, very directly.
LCP is one of the key metrics that determines your overall performance score in Lighthouse.
A poor LCP score can drag your entire performance score down, even if everything else is optimised.
I’ve seen sites jump from a score of 40 to over 90 simply by fixing one slow hero image.
LCP also feeds into Core Web Vitals, which influence search rankings. So it matters both for user experience and SEO.

These are the quick fixes I rely on during audits and redesigns:
Many hero images are 3-5 times larger than necessary.
Resizing them to the correct dimensions can dramatically improve LCP.
WebP and AVIF format images load far faster than JPEG or PNG.
Switching alone can reduce load times in half.
If your hero image depends on other files loading first (for example, CSS or JavaScript), its load time will always be slower.
This attribute signals to the browser that the LCP image must load early.
I use it frequently, especially on hero images.
Lazy loading is great for images further down the page, but never for the one acting as LCP.
Doing so delays the image intentionally, which almost guarantees a poor score.
I’ve spent years optimising websites for speed, and if there is one Core Web Vital that consistently makes or breaks user experience, it’s Largest Contentful Paint.
It’s the metric that tells users, “Yes, the page is loading,” or “No, something’s wrong.”
Once you understand what affects LCP and how to fix it, improving your score becomes far less intimidating.
In many cases, a handful of focused changes can transform your performance completely.
Whether you’re preparing for a site rebuild, improving your Core Web Vitals, or simply trying to make your site feel faster, mastering LCP is one of the most valuable technical skills you can learn.
Contact Esabi today to request a FREE SEO analysis!
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Manage your cookie preferences below:
Essential cookies enable basic functions and are necessary for the proper function of the website.
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Service URL: policies.google.com (opens in a new window)
Marketing cookies are used to follow visitors to websites. The intention is to show ads that are relevant and engaging to the individual user.
Google Maps is a web mapping service providing satellite imagery, real-time navigation, and location-based information.
Service URL: policies.google.com (opens in a new window)
You can find more information in our Privacy Policy and .