Improve WordPress LCP: The Most Common Causes and Fixes
12 Mar 2026 · 8 min read
Largest Contentful Paint (LCP) is one of the most important performance metrics — and at the same time the one WordPress websites fail most often. Google rates an LCP under 2,500 ms as "good", and anything over 4,000 ms as "poor". Many WordPress sites sit well above that.
In this article we cover the most common causes of poor LCP on WordPress — and how to fix them systematically.
What exactly is LCP?
LCP measures when the largest visible element on a page has finished loading. That can be an image, a video poster, or a large block of text — whatever takes up the most space in the visible area.
Important: LCP is not a lab metric from a tool like Lighthouse alone. Google scores LCP based on real user data from the Chrome User Experience Report (CrUX). A good Lighthouse score doesn't automatically mean good CrUX data — and vice versa.
With turbometrics live data you see your visitors' real p75 LCP value — not just the lab score.
The most common LCP causes on WordPress
1. Uncompressed or oversized hero image
The most common problem: the LCP element is a large image in the header area that hasn't been optimised.
Fix:
- Convert images to WebP or AVIF (30-50% smaller file size)
- Set
loading="eager"andfetchpriority="high"on the LCP image - Reduce image dimensions to the actual display size
- Use plugins such as Imagify, ShortPixel or Cloudflare Images
2. No preload for the LCP image
If the LCP image only appears late in the HTML document, or is set as a CSS background, the browser discovers it too late.
Fix:
<link rel="preload" as="image"
href="/wp-content/uploads/hero.webp"
fetchpriority="high">
Many caching plugins (WP Rocket, LiteSpeed Cache) offer this option directly.
3. Slow server / high TTFB
LCP can't be fast if the server itself is slow to respond. A TTFB over 800 ms makes a good LCP nearly impossible — because the HTML only reaches the browser late, delaying every other resource.
Fix:
- Enable server-side caching (Redis, Memcached, OPcache)
- Update the PHP version to 8.2+
- Upgrade hosting — shared hosting is often the bottleneck
- Put Cloudflare or a CDN in front
The TTFB article on this blog explains this in detail.
4. Render-blocking JavaScript and CSS
JavaScript loaded in the <head> without async or defer blocks the browser's main thread — and with it, the loading of the LCP element.
Fix:
- Load all non-critical scripts with
defer - Inline critical CSS (above-the-fold CSS)
- Analyse JavaScript execution with Chrome DevTools
WP Rocket, LiteSpeed Cache and Perfmatters offer ready-made settings for this.
5. External fonts without preconnect
Google Fonts and other external fonts cause extra DNS lookups and connection setups — delaying the first visible text.
Fix:
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
Even better: host fonts locally and load them with font-display: swap.
6. No browser caching for static assets
If CSS, JS and images have to be reloaded on every visit, load time increases noticeably — especially for returning visitors.
Fix:
- Apache/Nginx: set long cache headers for static assets
- Cloudflare: configure cache rules for assets
- WordPress: use a caching plugin with a browser cache option
Measuring and tracking LCP systematically
One-off optimisations aren't enough — LCP can get worse again through plugin updates, new images or theme changes.
With turbometrics you monitor LCP automatically:
- Synthetic scans check LCP after every deployment
- Live data shows your visitors' real p75 LCP
- Alerts notify you when LCP crosses a threshold
That way you see immediately when something gets worse — before it affects your Google ranking.
Conclusion
Improving LCP on WordPress isn't a one-off project — it's an ongoing process. The most effective levers are:
- Optimise images and serve them as WebP
- Preload the LCP image
- Reduce TTFB through better hosting and caching
- Clean up JavaScript and CSS
- Host external fonts locally
Start with a free analysis of your website — scan now.