We’ve all been there: Lighthouse gives you a green 100 on desktop, but your Google Search Console is screaming "Poor" for Largest Contentful Paint (LCP) on mobile.
The reality is that 75% of your real-world users must hit that 2.5s threshold for Google to count it as a "Good" experience. If you have one slow API region or a heavy hero image that only affects mobile sessions, your score is going to tank.
After digging into the data across billions of sessions, here are the two biggest (and often invisible) culprits:
1. The "Hidden" API Latency
If your LCP element depends on a data fetch—like a personalized hero image or a product URL returned from your backend—your API latency is your performance floor.
On pages with poor LCP, client-side loading delays average around 1,290ms. That is more than half of your entire 2.5s budget gone before a single pixel even renders.
2. The Preload Gap
Images represent 72% of LCP elements on mobile. Yet, less than 1% of mobile pages use the single most effective fix: Image Preloading. Adding one line of markup
<link rel='preload' as='image'>
allows the browser to start the fetch before it even finishes parsing your HTML.
How to find the real bottleneck?
Lighthouse gives you a score, but it doesn't give you a cause. To fix LCP for good, you need to see exactly which backend routes are adding latency to your P95 users in real-time.
I’ve put together a full deep-dive on how to diagnose these production-only failures, including a 5-step LCP fix checklist.
Check out the full breakdown here:
LCP: Why Your Score Keeps Failing in Production
Top comments (0)