How to Improve Core Web Vitals and LCP
What are Core Web Vitals?
Core Web Vitals are three key performance metrics defined by Google to measure user experience: LCP (Largest Contentful Paint—the time it takes for the largest content element to appear on screen), INP (Interaction to Next Paint—the speed at which the page responds to user interactions), and CLS (Cumulative Layout Shift—the amount of visual shifting that occurs as the page loads). These three metrics are measured based on real-world user data (field data); that is, they are calculated from data collected under the actual device and network conditions of real visitors, rather than from lab tests (e.g., a one-time audit).
These three metrics represent different aspects of the user experience: LCP conveys “how fast the page feels like it loaded,” INP answers the question “how quickly does the page respond to interaction,” and CLS measures “does the page jump around right before my eyes.” The overall user experience cannot be considered truly “good” unless all three are good.
This guide focuses specifically on LCP because it is generally the most actionable metric and the area with the most tangible room for improvement; a large hero image or video alone can delay LCP by several seconds.
Why is it important?
These metrics directly reflect the user experience: a page that loads slowly, responds sluggishly to interactions, or keeps scrolling away will drive users away from the site. Google uses Core Web Vitals as one of its ranking signals; the impact of these metrics may be more pronounced in mobile searches, as mobile devices and networks are generally more limited than desktop ones.
According to current thresholds, for LCP to be considered “good,” it must be under 2.5 seconds, and this metric must be met for at least 75% of real users. A site that exceeds this threshold is categorized as “slow” in terms of user experience—even if it functions technically—and this can negatively impact both conversion rates and search rankings.
The source of LCP slowness can vary from site to site: on some sites, a large, uncompressed image is to blame, while on others, a slow server response (TTFB) or third-party scripts that block rendering (e.g., ad networks, analytics tools) are the primary causes. That’s why it’s important to identify which element is flagged as the LCP before beginning optimization.
How to fix it?
- Optimize the image causing the LCP (usually the hero image): appropriate size, modern format (WebP/AVIF), and compression.
- Add
<link rel="preload">so the browser can discover it early; this ensures the image is downloaded as a priority rather than simultaneously with other resources. - Reduce the server response time (TTFB): caching, fast hosting, and using a CDN.
- Minimize or defer (defer/async) CSS/JS files that block rendering; the browser may delay page rendering until these files are downloaded and executed.
- Reduce geographic latency by serving static assets through a CDN; serving content from the server closest to the user reduces latency.
Example
<link rel="preload" as="image" href="/hero.webp" fetchpriority="high">
Bad example: Setting the LCP image <img src="hero.jpg" loading="lazy"> — this prevents the browser from downloading the image immediately as the page loads and significantly extends the LCP duration.
Common mistakes
- Serving the LCP image at an unnecessarily large size without compression.
- Combining all CSS or JS into a single large file and blocking rendering.
- Accidentally applying the
loading="lazy"attribute to the LCP image (the image visible on the first screen) — this delays LCP because the browser defers downloading until it sees the image. - Ignoring server response time and optimizing only the front end.
- When the LCP measurement in the Seoraporu.co report exceeds 2.5 seconds, you must first identify which element is marked as LCP and prioritize it; targeted intervention is more effective than a general “optimize everything” approach.
- Regularly review how third-party scripts (ads, analytics, chat widgets) affect the page loading order; these can accumulate over time and gradually degrade performance.
- Focusing solely on LCP while ignoring CLS can cause content to shift unexpectedly during page load due to undefined-size image or ad areas.