Core Web Vitals Explained: Speed Metrics That Actually Matter
7 min read
Core Web Vitals Explained: Speed Metrics That Actually Matter
Reading time: 7 minutes
TLDR
Core Web Vitals measure user experience through three metrics: LCP shows how fast your main content loads, CLS tracks layout stability while loading, and INP measures button response time. Poor scores hurt both rankings and conversions. a 4-second LCP causes 50% bounce rate while 2.4 seconds drops it to 35%. That difference can save tens of thousands monthly in lost revenue. Scan shows your scores and provides prioritized fixes to improve all three metrics.
If your Surmado Scan report shows “LCP 4.13s (Poor)” or “CLS 0.25 (Needs Work)”, you’re losing customers and rankings. Here’s what those metrics mean in plain English. And how to fix them.
What Are Core Web Vitals?
Core Web Vitals are Google’s official measurements of user experience. They directly affect your search rankings and conversion rates.
The three metrics:
- LCP (Largest Contentful Paint) - How fast does your main content load?
- CLS (Cumulative Layout Shift) - Does your page jump around while loading?
- INP (Interaction to Next Paint) - How quickly do buttons/links respond?
Why they matter: Google uses Core Web Vitals as a ranking signal. Slow sites rank lower, even with better content. More importantly, slow sites lose customers. 25% of users bounce if a page takes over 4 seconds to load.
Understanding Your Scan Report Scores
When you get your Surmado Scan report, you’ll see scores like this:
LCP (loading speed): 4.13s - Poor
CLS (visual stability): 0.000 - Good
Speed Index: 4.48s - Needs Work
How to read this:
- Good = You’re competitive, no urgent action needed
- Needs Work = Competitors are faster, opportunity for improvement
- Poor = You’re losing customers and rankings, fix immediately
Benchmark Targets
LCP (Largest Contentful Paint)
- Good: Under 2.5 seconds
- Needs Work: 2.5 to 4.0 seconds
- Poor: Over 4.0 seconds
CLS (Cumulative Layout Shift)
- Good: Under 0.1
- Needs Work: 0.1 to 0.25
- Poor: Over 0.25
INP (Interaction to Next Paint)
- Good: Under 200ms
- Needs Work: 200 to 500ms
- Poor: Over 500ms
The Business Impact
Real Numbers
Page Load Time vs Bounce Rate:
- 1-3 seconds: 32% bounce rate
- 4 seconds: 50% bounce rate (half your visitors leave!)
- 5 seconds: 60% bounce rate
- 6+ seconds: 75%+ bounce rate
Example: If you have 10,000 monthly visitors and your LCP is 4.1 seconds:
- 5,000 people bounce before seeing your services
- At 2% conversion rate, that’s 100 lost leads per month
- If your average customer value is $500, that’s $50,000/month lost revenue
Fix your LCP to 2.4 seconds:
- Bounce rate drops to about 35%
- Now 6,500 people see your site
- That’s 130 leads instead of 100
- $15,000/month recovered revenue
LCP: Your Page Load Speed
What it measures: Time until the largest image or text block appears on screen.
Why it’s poor: Usually caused by:
- Unoptimized images (huge file sizes)
- Slow server response time
- Render-blocking JavaScript/CSS
- No Content Delivery Network (CDN)
How to Fix LCP
Quick Win #1: Compress Images (1-2 hours)
Large image files are the #1 cause of slow LCP.
- Find your largest images (usually hero images, product photos)
- Use TinyPNG.com or ImageOptim to compress them
- Target: Under 200KB for large images, under 50KB for smaller ones
- Re-upload to your website
Expected improvement: 0.5-1.5 seconds faster LCP
Quick Win #2: Implement Lazy Loading (30 min - 2 hours)
Don’t load images that aren’t visible yet.
WordPress: Install “Lazy Load by WP Rocket” plugin (free)
Shopify: Built-in lazy loading (Settings → Preferences → enable)
Custom site: Add loading="lazy" to image tags below the fold
Expected improvement: 0.3-0.8 seconds faster LCP
Advanced Fix: Use a CDN (Budget: $10-20/month)
Content Delivery Networks serve your images/files from servers closer to your visitors.
Popular options:
- Cloudflare (free tier available)
- BunnyCDN ($0.01/GB - cheapest)
- Amazon CloudFront (enterprise)
Expected improvement: 0.5-1.2 seconds faster LCP
Developer Fix: Optimize Critical CSS
If LCP is still slow after image optimization, you likely have render-blocking CSS.
Hire a developer ($500-1,500) to:
- Inline critical CSS
- Defer non-critical CSS
- Remove unused CSS
CLS: Page Jump Prevention
What it measures: How much your page layout “shifts” unexpectedly while loading.
Example of bad CLS: You’re about to click “Add to Cart” and an ad loads above it, pushing the button down. You accidentally click the wrong thing.
Why CLS Happens
- Images without width/height attributes
- Ads or embeds that load late
- Web fonts that load slowly (font swapping)
- Dynamic content inserted above existing content
How to Fix CLS
Quick Win: Add Image Dimensions (1-2 hours)
Reserve space for images before they load.
WordPress: Gutenberg automatically adds dimensions
HTML: <img src="photo.jpg" width="800" height="600">
CSS: Use aspect-ratio property
Expected improvement: CLS 0.25 → 0.05 or better
Advanced Fix: Reserve Space for Ads
If you use Google AdSense or other ad networks:
.ad-container {
min-height: 250px; /* Match your ad size */
}
This prevents the page from “jumping” when ads load.
Font Loading Fix:
Use font-display: swap in your CSS to prevent invisible text:
@font-face {
font-family: 'YourFont';
src: url('font.woff2');
font-display: swap;
}
INP: Button Response Time
What it measures: How quickly buttons, links, and forms respond when clicked/tapped.
Why it’s slow: Usually caused by:
- Heavy JavaScript blocking the main thread
- Poorly optimized event handlers
- Too many third-party scripts (analytics, chat widgets, ads)
How to Fix INP
Quick Win: Remove Unused Plugins/Scripts
Every plugin or tracking script adds delay.
Audit your site:
- WordPress: Deactivate unused plugins
- Shopify: Remove unused apps
- All sites: Check how many tracking scripts you have (Google Tag Manager, Facebook Pixel, etc.)
Target: Under 10 third-party scripts total
Advanced Fix: Defer Third-Party Scripts
Let your page load first, then load analytics/chat widgets.
Use Google Tag Manager to control script loading priority.
Using Chrome UX Report (CrUX) Data
Your Scan report may show “Real User Performance” data if your site has enough traffic (1,000+ monthly visitors).
CrUX shows real-world performance from actual users:
Real User Performance (Chrome UX Report):
LCP: 3.2s (75th percentile)
CLS: 0.08
INP: 180ms
What this means:
- 75% of your real visitors experience LCP under 3.2s
- 25% experience it slower (4+ seconds)
- Your lab scores may differ from field scores
Why CrUX differs from lab tests:
- Real users have slow phones
- Real users have slow internet (3G, rural broadband)
- Real users have browser extensions (ad blockers)
- Real users visit during peak traffic
How to improve CrUX:
- Fix lab scores first (they predict field improvement)
- Test on slow 3G connections (Chrome DevTools → Network → Slow 3G)
- Wait 28 days for CrUX to update
- Monitor Google Search Console for changes
Monitoring Your Progress
Week 1: Baseline Measurement
- Run your initial Scan report (done!)
- Note your current LCP, CLS, and INP scores
- Screenshot Google Search Console → Core Web Vitals
Week 2-4: Implement Quick Wins
- Compress images
- Enable lazy loading
- Add image dimensions
- Remove unused scripts
Month 2: Measure Improvement
- Run a new Scan report
- Compare before/after scores
- Check Google Search Console for Core Web Vitals improvements
Expected timeline:
- Lab scores improve immediately (test with PageSpeed Insights)
- CrUX scores update every 28 days
- Search ranking improvements: 2-3 months
When to Hire Help
You can DIY if:
- Your Scan report shows 1-2 specific issues
- Fixes are image compression or plugin removal
- You’re comfortable with basic website editing
Hire a developer if:
- Multiple complex issues (JavaScript, CSS optimization)
- CLS problems from custom code
- Server response time slow (needs hosting upgrade)
- Budget: $500-2,000 for comprehensive optimization
Common Questions
Q: My desktop score is 90 but mobile is 45. Why?
A: Mobile networks are slower and phones have less processing power. Optimize for mobile first. It’s 70%+ of your traffic.
Q: I fixed everything but CrUX hasn’t improved. What’s wrong?
A: CrUX updates monthly with a 28-day rolling window. Wait 4 weeks after fixes for data to refresh.
Q: Does Core Web Vitals improvement guarantee higher rankings?
A: Not directly. But faster sites get higher click-through rates, lower bounce rates, and better user signals. All of which improve rankings indirectly. Plus speed is a confirmed ranking factor.
Q: My competitor’s site is slower but ranks higher. How?
A: Content relevance and backlinks matter more than speed. But if all else is equal, the faster site wins. Speed is a tiebreaker, not the only factor.
Next Steps
This Week:
- Review your Scan report’s Core Web Vitals section
- Identify your worst metric (LCP, CLS, or INP)
- Implement one quick win (compress images or enable lazy loading)
This Month:
- Fix all “Poor” scores to at least “Needs Work”
- Set up Google Search Console monitoring
- Re-run Scan to measure improvement
Monitor:
- Google Search Console → Experience → Core Web Vitals (weekly)
- PageSpeed Insights (monthly)
- Surmado Scan (quarterly for comprehensive review)
→ Related: Mobile Performance Guide | Image Optimization
Was this helpful?
Thanks for your feedback!
Have suggestions for improvement?
Tell us moreHelp Us Improve This Article
Know a better way to explain this? Have a real-world example or tip to share?
Contribute and earn credits:
- Submit: Get $25 credit (Signal, Scan, or Solutions)
- If accepted: Get an additional $25 credit ($50 total)
- Plus: Byline credit on this article