Largest Contentful Paint (LCP)

Largest Contentful Paint, commonly abbreviated as LCP, is a Core Web Vitals metric that measures how long it takes for the largest visible content element in the initial viewport of a web page to be rendered. LCP is used to understand perceived loading speed. Because it shows when the main content of a page becomes visible to the user, it is a critical performance indicator for page speed and user experience.

LCP does not always mean the physically largest file on the page. This metric considers the largest meaningful content element within the viewport that the user is currently seeing. This element can be an image, a video element, a background image or a large block of text. For example, on an e-commerce website, the product image may be the LCP element; on a blog page, the main heading or featured image may be measured as LCP; on a landing page, the hero image may be the LCP element. According to web.dev, LCP reports the render time of the largest image, text block or video visible in the viewport, relative to when the user first navigated to the page.

LCP is one of the Core Web Vitals metrics and represents loading performance. Within the Core Web Vitals set, LCP measures loading speed, INP measures interaction responsiveness and CLS measures visual stability. According to Google’s recommended thresholds, a good user experience requires LCP to occur within 2.5 seconds or less. Values between 2.5 and 4 seconds need improvement, while values above 4 seconds are considered poor LCP performance. This evaluation is based on the 75th percentile and is segmented across mobile and desktop data.

A high LCP value means that the user sees the main content of the page late. If the user sees a blank area, loading indicator or incomplete content for too long after landing on the page, the page may feel slow. This becomes especially noticeable for mobile users, slow connections and visually heavy pages. Pages with poor LCP performance may experience higher exit rates, lower engagement and weaker conversion performance.

One of the most common causes of slow LCP is slow server response time, also known as high TTFB. If the browser receives the first HTML response late, the loading of other page resources is also delayed. Server performance, hosting quality, database queries, lack of caching, absence of a CDN, unnecessary redirects or heavy backend processes can increase TTFB. Web.dev states that using a CDN, serving content geographically closer to users and caching content are effective ways to improve TTFB for LCP optimization.

Another cause of LCP issues is the browser discovering the LCP resource too late. If the hero image is loaded later through JavaScript, defined as a CSS background image or called through JavaScript-dependent structures such as data-src, the browser may not detect it early enough. Web.dev recommends making the LCP image discoverable in the HTML source, using preload when needed and assigning fetchpriority="high" to important LCP images.

If the LCP element is an image, image optimization becomes critical. Large, uncompressed or incorrectly formatted images can extend LCP time. Images should be served at appropriate sizes, modern formats should be considered, responsive image structures should be used and unnecessarily high resolutions should be avoided. However, using loading="lazy" for the main image that acts as the LCP element is usually not recommended, because lazy loading may delay the image that users need to see in the first viewport. Web.dev recommends removing the loading="lazy" attribute from the LCP image.

Render-blocking CSS and JavaScript files can also negatively affect LCP performance. The browser may have to wait for critical CSS and certain JavaScript processes before it can render the main content of the page. In this case, reducing unused CSS, prioritizing critical CSS, deferring JavaScript files, reducing unnecessary third-party scripts and minifying code can improve LCP. Advertising, analytics, chat, personalization and A/B testing scripts can particularly affect initial loading performance when they run without proper control.

The rendering method of the page can also influence LCP. In fully client-side rendered structures, the browser may first need to download and execute JavaScript, then create the content. This can delay the visibility of the main content. Web.dev states that in some scenarios, server-side rendering can provide an advantage over client-side rendering because the LCP resource can be discovered earlier in the HTML. For this reason, rendering strategy should be planned carefully, especially for SEO and performance-focused pages.

For LCP optimization, relying only on lab data is not enough. Tools such as PageSpeed Insights, Lighthouse and Chrome DevTools are useful for technical analysis, but real-user data should also be evaluated. CrUX, PageSpeed Insights field data or Real User Monitoring systems help understand the real LCP experience of users across different devices, connections and locations. Since Core Web Vitals evaluation uses the 75th percentile, looking only at average values can be misleading.

To improve LCP, the actual LCP element on the page should first be identified. The LCP element may not be the same on every page. On the homepage it may be the hero image; on a category page it may be the product listing area; on a blog post it may be the main heading or featured image. Therefore, optimization should be based on measurement data rather than assumptions. Once the LCP element is identified, server response time, resource discovery, resource priority, image size, render-blocking resources and third-party scripts should be analysed step by step.

In summary, Largest Contentful Paint is an important Core Web Vitals metric that measures how quickly the user sees the main content after opening a page. The target for a good LCP value is 2.5 seconds or less. To improve LCP performance, server response time should be reduced, the LCP resource should be made discoverable early in the HTML and important images should be prioritized. Images should also be optimized, render-blocking CSS and JavaScript should be reduced, third-party scripts should be controlled and field data should be monitored regularly.

Discover it in the dictionary

Track the digital heartbeat with Kriko

Subscribe to receive curated insights, news, and ideas shaping the digital landscape.