Introduction

Speed Index Explained

View contents

Speed Index: Understanding Visual Page Load Progress

Introduction

Speed Index measures how quickly content is visually displayed during page load. Unlike metrics that measure a single moment in time (like FCP or LCP), Speed Index captures the entire visual loading experience by analyzing how fast the visible portion of your page fills with content.

A low Speed Index means users see meaningful content quickly, creating the perception of a fast, responsive website. A high Speed Index indicates that users stare at a blank or incomplete screen for too long, leading to frustration and abandonment.

What is Speed Index?

Speed Index is a visual progress metric that calculates the average time at which visible parts of the page are displayed. It uses video frames captured during page load to measure how “visually complete” your page becomes over time.

How Speed Index Works

Lighthouse captures a video filmstrip of the page loading and analyzes each frame:

Loading Timeline:
┌─────────────────────────────────────────────────────────────┐
│ 0s     1s      2s      3s      4s      5s                   │
│ ┌──┐   ┌──┐   ┌──┐   ┌──┐   ┌──┐   ┌──┐                     │
│ │  │   │▓▓│   │▓▓│   │▓▓│   │▓▓│   │▓▓│                     │
│ │  │   │  │   │▓▓│   │▓▓│   │▓▓│   │▓▓│                     │
│ │  │   │  │   │  │   │▓▓│   │▓▓│   │▓▓│                     │
│ └──┘   └──┘   └──┘   └──┘   └──┘   └──┘                     │
│  0%    30%    60%    85%    95%   100%   Visual Completeness │
└─────────────────────────────────────────────────────────────┘

Speed Index calculates the area above the visual progress curve. A page that loads content quickly will have less “white space” above the curve, resulting in a lower (better) Speed Index.

Speed Index Calculation

The formula measures the integral of visual incompleteness over time:

Speed Index = ∫(1 - Visual Completeness) dt

Lower values = faster visual loading = better user experience

Speed Index Thresholds

According to Chrome Developers documentation, Speed Index scores are categorized as:

✅ Good:              < 3.4 seconds
⚠️ Needs Improvement: 3.4 - 5.8 seconds
❌ Poor:              > 5.8 seconds

Goal: Aim for a Speed Index under 3.4 seconds for an optimal visual loading experience.

Why is Speed Index Important for SEO?

Speed Index directly impacts user perception and has several important implications:

Key benefits of good Speed Index:

  • Perceived performance: Users judge your site based on how fast it feels, and Speed Index captures this perception
  • Lighthouse score: Speed Index contributes 10% to your overall Lighthouse performance score
  • Bounce rate reduction: Pages that appear to load quickly retain more visitors
  • Mobile critical: Especially important on slower mobile connections where visual progress is more gradual
  • User trust: Fast-appearing pages build confidence in your brand

Speed Index vs Other Visual Metrics

Metric Measures Use Case
FCP First content painted Initial visual response
LCP Largest element painted Main content visibility
Speed Index Visual progress over time Overall loading experience

Speed Index complements FCP and LCP by measuring the entire journey from blank screen to fully loaded page.

What Causes High Speed Index?

Several factors can cause a high Speed Index:

1. Render-Blocking Resources

CSS and JavaScript that prevent content from appearing:

<!-- These block rendering until fully loaded -->
<link rel="stylesheet" href="large-styles.css">
<script src="blocking-script.js"></script>

2. Slow Server Response (TTFB)

If the server takes too long to respond, everything else is delayed:

User Request → [TTFB delay] → HTML arrives → Parsing begins
                    ↑
       High TTFB delays all visual progress

3. Large Unoptimized Images

Images that load slowly or cause layout shifts:

<!-- Large images delay visual completeness -->
<img src="hero-5mb.jpg" width="1920" height="1080">

4. Web Fonts Loading Slowly

Custom fonts that cause invisible text or flash of unstyled text (FOUT):

@font-face {
  font-family: 'CustomFont';
  src: url('custom-font.woff2');
  /* No font-display causes invisible text */
}

Basic Best Practices

1. Eliminate Render-Blocking Resources

<!-- Defer non-critical JavaScript -->
<script src="app.js" defer></script>

<!-- Load non-critical CSS asynchronously -->
<link rel="preload" href="styles.css" as="style" onload="this.rel='stylesheet'">

2. Optimize Server Response Time

  • Use a CDN for static assets
  • Enable server-side caching
  • Optimize database queries

3. Optimize Images

<!-- Use modern formats and responsive sizes -->
<img src="hero.webp"
     srcset="hero-480.webp 480w, hero-800.webp 800w"
     sizes="(max-width: 600px) 480px, 800px"
     loading="lazy">

4. Use Font Display Swap

@font-face {
  font-family: 'CustomFont';
  src: url('custom-font.woff2');
  font-display: swap; /* Shows fallback font immediately */
}

Common Mistakes to Avoid

Mistake 1: Loading Everything Synchronously

Problem: All resources load in sequence, blocking visual progress.

Solution: Prioritize critical resources and defer everything else.

Mistake 2: Large Above-the-Fold Images

Problem: Hero images take too long to load, keeping the page visually incomplete.

Solution: Optimize images, use responsive sizes, and consider placeholder techniques.

Mistake 3: Ignoring Web Fonts

Problem: Custom fonts cause invisible text while loading.

Solution: Use font-display: swap or optional to show content immediately.

Measuring Speed Index

Using Lighthouse

Run a Lighthouse audit to see your Speed Index score:

  • In Chrome DevTools → Lighthouse tab
  • Select “Performance” and run the audit
  • Speed Index is displayed in the metrics section

Using WebPageTest

WebPageTest provides detailed filmstrip analysis:

  1. Visit webpagetest.org
  2. Enter your URL
  3. View the filmstrip and Speed Index calculation

Improve other aspects of your site’s visual performance:

📚 Back to Performance SEO Hub - Explore all performance topics


References

  1. Chrome Developers - Speed Index
  2. Chrome Developers - Lighthouse Performance Scoring
  3. web.dev - First Contentful Paint

Try It Yourself

Want to measure your page’s Speed Index?

🔧 Download UXR SEO Analyzer (Free, 100% local analysis)


Disclaimer: The analyzers in this extension are reference guides based on official Chrome Developers and web.dev documentation. They do not represent absolute truths about how search engines evaluate your content—only search engines know their internal algorithms. Use these recommendations as a starting point to improve your site.

Last updated: December 14, 2025

Related articles

Related version

Detailed guide

Speed Index Optimization Guide

Speed Index measures how quickly the visible portion of your page is populated during page load

Category hub

Hub

Performance Seo Hub

Performance is a critical ranking factor and directly impacts user experience

In the same category

Introduction

Lcp Explained

Largest Contentful Paint (LCP) is one of Google's Core Web Vitals—a set of metrics that measure real-world user experience on your website

Introduction

Fcp Explained

First Contentful Paint (FCP) measures the time from when a page starts loading to when any part of the page's content is rendered on the screen

Introduction

Ttfb Explained

Time to First Byte (TTFB) measures the time from when a user or client makes an HTTP request to when the first byte of the response arrives at the client's...