Learnitweb

Key web performance metrics

Introduction

When users visit a website, their experience is determined by how quickly the page becomes visible, usable, and stable. Traditional metrics like total page load time or server response time only measure technical performance, but they don’t reflect what the user sees and feels during loading.

To address this, Google and other web performance experts introduced Core Web Vitals and related metrics. These metrics focus on user-centric performance, measuring aspects like when the first content appears, when the page becomes interactive, and whether the layout shifts unexpectedly.

The key metrics are:

  1. First Contentful Paint (FCP)
  2. Largest Contentful Paint (LCP)
  3. Time to Interactive (TTI)
  4. Speed Index (SI)
  5. Cumulative Layout Shift (CLS)
  6. First Input Delay (FID)

Let’s study each one in detail.


1. First Contentful Paint (FCP)

Definition

First Contentful Paint (FCP) measures the time from when the page starts loading to when any content (text, image, or non-white canvas) is first rendered on the screen.
It marks the first moment that users see something change on the screen, indicating that the website is starting to load.

The browser considers “contentful” elements as:

  • Text blocks (paragraphs, headings, etc.)
  • Images (including background images loaded via CSS)
  • Non-white <canvas> elements
  • SVG graphics

FCP does not count empty elements or invisible content.

Why It Matters

A fast FCP gives users confidence that something is happening — the site is loading and not frozen. If FCP is delayed, users may feel the site is slow or unresponsive.

Example

Imagine you open https://www.example.com and see a white screen for 2 seconds. Then suddenly, the company logo and page title appear.
If that happens at 2.1 seconds, then FCP = 2.1s.

Good, Needs Improvement, Poor

  • Good: ≤ 1.8 seconds
  • Needs Improvement: 1.8–3.0 seconds
  • Poor: > 3.0 seconds

How to Improve FCP

  • Minimize render-blocking CSS and JavaScript.
  • Use server-side rendering (SSR) for faster initial HTML.
  • Optimize images and use lazy loading.
  • Enable text compression (GZIP or Brotli).
  • Implement caching (especially for static assets).

2. Largest Contentful Paint (LCP)

Definition

Largest Contentful Paint (LCP) measures the time it takes for the largest visible element in the viewport to render. It represents when the main content of the page is fully visible to the user.

The LCP element could be:

  • A large image or background image
  • A video poster image
  • A large text block or headline

Why It Matters

LCP is a key indicator of perceived load speed — when users feel the main part of the page is ready. If LCP is slow, users may abandon the page even if smaller elements appeared earlier.

Example

Suppose you open a news website:

  • The header and logo appear at 1.5s (FCP)
  • The large main article image appears at 2.8s
  • The headline below it loads at 3.1s

The largest visible element is the article image that appeared at 2.8s, so LCP = 2.8s.

Good, Needs Improvement, Poor

  • Good: ≤ 2.5 seconds
  • Needs Improvement: 2.5–4.0 seconds
  • Poor: > 4.0 seconds

How to Improve LCP

  • Use a fast server or CDN.
  • Optimize image loading and compression.
  • Remove unnecessary JavaScript that delays rendering.
  • Preload key resources (fonts, hero images).
  • Ensure critical CSS is inlined.

3. Time to Interactive (TTI)

Definition

Time to Interactive (TTI) measures how long it takes for a page to become fully interactive.
A page is considered interactive when:

  1. It displays useful content.
  2. Event handlers are registered for visible elements.
  3. The page responds to user input within 50 milliseconds.

In simpler terms, TTI measures how long users must wait before they can click, scroll, or type without delay.

Why It Matters

A website may appear visually complete but still be unusable because the browser is busy executing scripts. A poor TTI means users see the page but can’t interact with it smoothly.

Example

When you visit an e-commerce homepage:

  • You see product images at 1.5s.
  • You click “Add to Cart” at 2.0s, but nothing happens until 4.2s.

In this case, TTI = 4.2s, since the page became interactive only after the main thread finished loading JavaScript.

Good, Needs Improvement, Poor

  • Good: ≤ 3.8 seconds
  • Needs Improvement: 3.8–7.3 seconds
  • Poor: > 7.3 seconds

How to Improve TTI

  • Split large JavaScript bundles into smaller chunks (code splitting).
  • Defer non-critical JavaScript.
  • Use web workers to offload heavy computations.
  • Reduce third-party scripts (ads, analytics).

4. Speed Index (SI)

Definition

Speed Index (SI) measures how quickly the contents of a page are visually displayed during load.
It is calculated by analyzing a video of the page load and computing the average time at which visible parts of the page appear.

In simple terms, it represents the visual progression of the page loading — how fast the content fills in.

Why It Matters

Users perceive faster sites as those where content appears quickly and progressively, even if the entire page hasn’t finished loading. A lower Speed Index means a smoother, faster visual experience.

Example

Imagine two websites:

  • Site A: Loads the full content at once after 4 seconds.
  • Site B: Loads the header at 1s, text at 2s, and images at 3s.

Even though both finish around 4s, Site B feels faster, and hence has a lower Speed Index.

Good, Needs Improvement, Poor

  • Good: ≤ 3.4 seconds
  • Needs Improvement: 3.4–5.8 seconds
  • Poor: > 5.8 seconds

How to Improve Speed Index

  • Optimize rendering path.
  • Prioritize above-the-fold content.
  • Use lazy loading for below-the-fold elements.
  • Compress and cache assets effectively.

5. Cumulative Layout Shift (CLS)

Definition

Cumulative Layout Shift (CLS) measures how much visible content shifts around unexpectedly while a page is loading.
It captures the sum of all layout shifts that occur during the lifespan of a page.

Layout shift occurs when an element changes its position or size after it’s been rendered, without user interaction.

Why It Matters

Unexpected layout shifts frustrate users — imagine trying to click a button that suddenly moves. CLS reflects how visually stable the page is.

Example

You’re reading an article and suddenly an ad loads at the top, pushing the paragraph down. That’s a layout shift.
If multiple such shifts occur, their total impact is calculated as CLS.

Good, Needs Improvement, Poor

  • Good: ≤ 0.1
  • Needs Improvement: 0.1–0.25
  • Poor: > 0.25

How to Improve CLS

  • Always set width and height for images and videos.
  • Reserve space for ads and dynamic elements.
  • Avoid inserting elements above existing content.
  • Use CSS transform animations instead of layout-changing properties.

6. First Input Delay (FID)

Definition

First Input Delay (FID) measures the time from when a user first interacts with your page (like clicking a button or link) to when the browser responds to that interaction.
It reflects how responsive the page feels.

FID is especially important for pages where users interact quickly after loading, such as login pages or signup forms.

Why It Matters

If users try to interact but the page is still processing JavaScript, they experience a lag — even if the content looks ready. A long delay frustrates users and affects engagement.

Example

A user clicks a button immediately after seeing it at 2.5 seconds, but the page responds only at 3.0 seconds.
The delay is 0.5 seconds, so FID = 500ms.

Good, Needs Improvement, Poor

  • Good: ≤ 100 ms
  • Needs Improvement: 100–300 ms
  • Poor: > 300 ms

How to Improve FID

  • Break up long JavaScript tasks.
  • Use async or defer attributes for script loading.
  • Minimize third-party scripts.
  • Keep main-thread work light.

Summary Table

MetricFocusGood ThresholdDescription
FCPFirst visible content≤ 1.8sMeasures how soon something appears on screen.
LCPMain content load≤ 2.5sMeasures when the main element is visible.
TTIInteractivity readiness≤ 3.8sMeasures when page becomes usable.
Speed IndexVisual loading speed≤ 3.4sMeasures how quickly content is visually displayed.
CLSVisual stability≤ 0.1Measures unexpected layout shifts.
FIDInput responsiveness≤ 100msMeasures response delay for first user action.

Final Thoughts

These performance metrics help developers focus on user experience instead of only backend efficiency. Tools such as Lighthouse, Chrome DevTools, and PageSpeed Insights use these metrics to generate performance reports and improvement suggestions.

By continuously monitoring and optimizing FCP, LCP, TTI, Speed Index, CLS, and FID, you ensure your website not only loads quickly but also feels smooth, stable, and responsive to every user.