Core Web Vitals: Why Your Site Feels Slow (And How to Fix It)

S
Sarah Lee, Head of Engineering
April 12, 2026

We worked on a SaaS platform that was technically perfect—but users complained it felt sluggish. Core Web Vitals showed us exactly why. Here's what we learned optimizing 50+ sites and how you can avoid the same mistakes.

A real story that changed how we build.

We were called in to diagnose why a SaaS platform was losing customers. The product was solid. The features were there. But users hated using it.

"It just feels slow," they said.

💡 Here's the problem:

The app loaded in under 2 seconds. Technically, it wasn't slow. But it felt slow. And in web development, feeling slow is the same as being slow.

Google Figured Out What We Knew

In 2020, Google introduced Core Web Vitals: three metrics that measure what users actually experience. Not load time. Not initial paint. Real user experience metrics.

🎯

LCP (Largest Contentful Paint)

When the main content appears on screen

Goal: Under 2.5 seconds


FID (First Input Delay)

How long before the page responds to user input

Goal: Under 100ms


📐

CLS (Cumulative Layout Shift)

How much the page layout shifts while loading

Goal: Under 0.1

These metrics became Google's ranking signal. Slow by these standards? You drop in search results. But more importantly, users leave.

The Diagnosis

We ran the client's site through Google's PageSpeed Insights. The results were not good:

LCP

3.2 seconds ❌

FID

180ms ❌

CLS

Unstable ❌

Problem 1: Bloated JavaScript

The app was loading 500KB of JavaScript before it could show anything. Users saw a blank screen for 3 seconds while it parsed and executed.

Problem 2: Layout Thrashing

Images were loading without specified dimensions. As they loaded, the page would shift. Buttons you were about to click moved. Classic CLS problem.

Problem 3: Heavy Third-Party Scripts

Analytics, chat widgets, and marketing pixels were running on the main thread. Every interaction was blocked waiting for these to complete.

The Fix

We started with the obvious wins:

Code Splitting

Instead of loading all 500KB upfront, we split the bundle. Critical code loads immediately. The rest loads in the background.

Image Optimization

Every image got width/height attributes. Generated WebP versions. Images smaller than 4KB got inlined as data URIs.

Third-Party Isolation

Analytics and chat moved to Web Workers. They no longer block user interactions.

Lazy Loading

Below-the-fold content loads only when scrolling near it.

The Result

Two weeks of focused optimization. Here's what changed:

LCP

1.1 seconds ✓ (70% faster)

FID

45ms ✓ (75% faster)

CLS

0.05 ✓ (Perfect)


SEO Ranking

+8 positions

User Retention

+22% week-over-week

It's not magic. It's the unglamorous work of measurement, iteration, and caring about what users actually experience.

The Lesson

Key Takeaway:

Fast websites convert. Slow websites lose. And "fast" isn't determined by load time—it's determined by how quickly the page becomes usable. That's what Core Web Vitals measure. That's what matters.

Ready to Build Something Better?

We've learned these lessons on real projects. Let us apply them to yours. Get a free quote in 24 hours.

← Back to all articles

Ready to build something amazing?

Let's discuss your project.