L
Language tag (BCP 47) A language tag is the standard coding form that tells machines which language a text is in. Multilingual
LCP (Largest Contentful Paint) is the paint time of the largest content element in a page’s visible area, and Google counts anything under 2.5 seconds as good. Performance
What is LCP (Largest Contentful Paint)?
LCP is the paint time of the largest content element in a page’s visible area, and Google counts anything under 2.5 seconds as good.
The metric tries to capture the moment the user says “the page is here”. What is measured is not when the first pixel was painted but when the actual content appeared — because for a user, the page arriving means the thing they came to read arriving.
The element measured is usually an image or a block of text. Which element counts as the LCP element varies by page and by screen size; it can be the hero image on desktop and a heading on mobile. It therefore has to be determined separately at each breakpoint.
The duration divides into four parts, and each part has its own treatment.
- Time to first byte — the server side; hosting and caching.
- Resource discovery delay — when did the browser notice the resource? Resources buried in CSS or JavaScript are discovered late.
- Resource load time — a matter of size and format.
- Render delay — the resource arrived but could not be painted because of render blockers.
The most common mistake is applying lazy loading to the LCP element: correct for images outside the visible area, that setting delays discovery when applied to the LCP element and raises the time directly.
The value read in field data is the 75th percentile — the time experienced by three quarters of users. The value you measure on your own device is one sample from the best end of that distribution.
The biggest gain in reducing the time usually lies in the third stage — resource size. Using a modern format, providing responsive sizes and producing the image at the size it will actually be shown brings LCP below the threshold on its own for most sites.
The fourth stage concerns render blockers: even when the resource has arrived, no painting happens until the stylesheets are parsed. On this site two stylesheets were merged and their comments stripped, closing two blockages measured at 821 and 221 milliseconds in Lighthouse mobile.
- Make it visible in the HTML from the server — an image added via a CSS background or JavaScript is discovered late.
- Use a modern format — AVIF and WebP deliver the same quality in a markedly smaller file.
- Provide responsive sizes — sending a desktop image to a phone is the most common waste.
- Give it high priority — a priority hint for the hero image.
- Do NOT lazy-load it — delaying a resource in the visible area is a net loss.
- Reduce render blockers — even if the resource arrives, nothing is painted while styles are awaited.
The fifth item is the most frequent counterproductive optimisation: applying lazy loading to all images in bulk makes LCP directly worse.
How to measure it
The thresholds are defined on web.dev: 2.5 seconds or less is good, above 4 seconds is poor. The value should stay under the threshold for 75 percent of visits. Lab measurement helps find the cause; field data is what you decide on.
- Chrome DevTools → Performance → record → “LCP” marker and element
- PageSpeed Insights → field data → Largest Contentful Paint (75th percentile)
- import { onLCP } from 'web-vitals'; onLCP(console.log);
The first step is to see which element is the LCP element: the LCP marker in the DevTools Performance panel points to it. The fix depends on which of the four phases that element loses time in.
If you want your own site measured and fixed at the source, our Core Web Vitals optimization starts from real-user data and delivers LCP, INP and CLS against a budget.
Performance
Live region A live region is an area of a page whose changes a screen reader has to announce to the user. Accessibility
llms.txt is an optional file placed in a website’s root directory that summarises, in Markdown, what the site is about and where its most important pages are for language models. Answer engines
Locale A locale is the setting that defines a user’s language and region together and determines the formatting rules. Multilingual
Localisation (Localization) is adapting content to the culture, habits and search language of a target market; it is a wider undertaking than translation. Multilingual
R
Reflow A reflow is the browser recomputing the positions and sizes of elements on a page after a change. Performance
Relative luminance is the value expressing a colour’s perceived lightness between 0 and 1, and it is the basis of the contrast ratio calculation. Accessibility
S
Screen reader A screen reader is assistive technology that turns on-screen content into speech or braille output and lets the user navigate by keyboard. Accessibility
Semantic HTML means choosing each element for its meaning rather than its appearance — a heading element for a heading, a button element for a button, a list element for a list. Accessibility
Structured data is an additional layer that labels a page’s content with a standard vocabulary machines can understand. Answer engines
T
Text expansion is the same content being of different lengths in different languages, and the layout having to flex accordingly. Multilingual
Translation memory A translation memory is a database that stores previously translated sentences and suggests them when the same or a similar sentence comes up again. Multilingual
TTFB (Time to First Byte) is the time between the browser sending a request and receiving the first byte from the server. Performance
W
WCAG (Web Content Accessibility Guidelines) is the international standard published by the W3C that defines the accessibility of web content through testable success criteria. Accessibility
X
x-default is a special hreflang value declaring the default page to show when no language version matches the user’s language. Multilingual