I’m currently dealing with very high Largest Contentful Paint (LCP) times on my site, and I’m a bit at a loss as to what’s causing it.
At first, I suspected Google Ads might be the culprit due to the deferred loading behavior, but I’ve currently removed all ads entirely for testing — and still, the LCP is extremely high. For example, I’m seeing values like 14.4 seconds on this post: MSC Meraviglia: Verspätungen in Port Canaveral sorgen für Ärger bei Gästen 🚢
To prevent the CLS, the browser needs to know how big the image is going to be, so that it can reserve space for it while it loads. Is that image always the same proportions, or does it vary from page to page?
(I’m seeing the CLS on some but not all mobile loads. Looks like a bit of a race condition somewhere…)
Edit: But even the LCP doesn’t seem to be consistently fixed. If I test the PageSpeed every 5 minutes, sometimes the LCP is good (as you mentioned), and other times it’s still around 13–15 seconds. It might be an issue with the CDN, or maybe I need to switch from Cloudflare to another CDN. I’m not sure.
I’ve enabled development mode, but the LCP is still high. I have no idea why it’s sometimes high and other times low. My gut feeling is that it might be server-side (although the hardware is overpowered for this blog) or due to the free Cloudflare plan with basic CDN/caching slowing things down.
Since I couldn’t shake the feeling, I briefly disabled the proxy mode entirely – the LCP dropped to 2 seconds. Apparently, Cloudflare is the issue here.
Interesting result! Is it now consistently low? (I’ve had way too many times I thought I’d fixed pagespeed only to discover I’d caught an oddball run instead.)
I’ve now switched to Bunny CDN. I’ll monitor the next 14 days and then see if it’s better than with Cloudflare. Current monitoring already shows significantly lower LCP than before. Now I just need to find another way to block the bad Python newsletter signups. Previously, I did it with custom WAF rules in Cloudflare, but I’m sure I’ll find another solution. Thanks so far!