How to Improve Your Website Page Speed Score in 2026
A complete guide to improving your Core Web Vitals and page speed scores. Covers LCP, FID, CLS, and practical fixes for faster websites.
How to Improve Your Website Page Speed Score in 2026
Your website is slow. You know it because Google knows it — and they've probably sent you emails about Core Web Vitals or shown concerning numbers in Search Console.
Here's why it matters: 53% of mobile users abandon sites that take over 3 seconds to load. For every additional second of load time, conversions drop 7%. Google uses page speed as a ranking factor. Slow sites lose money.
This guide shows you how to diagnose speed issues and fix them — whether you're a developer or a business owner who just wants faster pages.
Understanding Page Speed Metrics
Google measures page speed through Core Web Vitals — three specific metrics that matter for ranking:
LCP (Largest Contentful Paint)
What it measures: How long until the main content is visible Good score: Under 2.5 seconds Needs improvement: 2.5-4 seconds Poor: Over 4 seconds
LCP is usually your hero image, main heading, or featured video. It's what visitors wait for before the page "feels" loaded.
FID (First Input Delay) / INP (Interaction to Next Paint)
What it measures: How long until the page responds to interaction Good score: Under 100ms (FID) / Under 200ms (INP) Needs improvement: 100-300ms (FID) / 200-500ms (INP) Poor: Over 300ms (FID) / Over 500ms (INP)
This is the frustrating delay when you click a button and nothing happens. Heavy JavaScript is usually the culprit.
Note: INP replaced FID as a Core Web Vital in March 2024.
CLS (Cumulative Layout Shift)
What it measures: Visual stability (does content jump around?) Good score: Under 0.1 Needs improvement: 0.1-0.25 Poor: Over 0.25
You know this one: you're about to click something, an ad loads, and suddenly you've clicked something else. That's layout shift.
How to Test Your Page Speed
Use these free tools:
- Google PageSpeed Insights (pagespeed.web.dev) — Most comprehensive; shows real-world data
- GTmetrix — Detailed waterfall charts showing what loads when
- WebPageTest — Advanced testing from multiple locations
- Chrome DevTools — Right-click → Inspect → Lighthouse tab
Test your most important pages:
- Homepage
- Top landing pages
- Product/service pages
- Blog posts
Quick Wins: Easy Fixes
Start here before diving into technical optimizations:
1. Compress and Resize Images
Images are the #1 cause of slow pages. Fix them:
- Resize to actual display size — Don't load a 4000px image to display at 800px
- Use WebP format — 25-35% smaller than JPEG/PNG
- Enable lazy loading — Images below the fold load later
- Compress aggressively — 80% quality is usually indistinguishable from 100%
Tools: Squoosh, ShortPixel, ImageOptim, Cloudinary
2. Enable Browser Caching
When visitors return, their browser shouldn't re-download everything. Set cache headers:
- Static assets (CSS, JS, images): 1 year cache
- HTML: Short cache or no-cache (you want updates to show immediately)
Most hosts have caching settings in their control panel.
3. Use a CDN
A Content Delivery Network serves your files from locations close to visitors. If your server is in New York but your visitor is in Tokyo, they're waiting for data to cross the Pacific.
Popular CDNs: Cloudflare (free tier available), Fastly, AWS CloudFront
4. Enable Compression
GZIP/Brotli compression shrinks text files (HTML, CSS, JS) by 70-90%. Most hosts enable this by default, but check.
In your .htaccess (Apache):
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
5. Remove Unused Plugins/Scripts
Every plugin adds weight. Audit yours:
- Remove plugins you don't use
- Replace heavy plugins with lighter alternatives
- Consider if JavaScript libraries are necessary
Fixing LCP (Largest Contentful Paint)
LCP problems usually mean your main content takes too long to appear.
Optimize Your Hero Image
- Preload it —
<link rel="preload" as="image" href="hero.webp"> - Use responsive images —
srcsetattribute serves appropriate sizes - Consider CSS instead — Gradients and simple shapes beat images
- Don't lazy-load LCP — Your hero should load immediately
Reduce Server Response Time
Your server needs to respond quickly:
- Upgrade hosting — Cheap shared hosting is slow hosting
- Use server-side caching — WordPress? Use WP Rocket, W3 Total Cache, or LiteSpeed
- Database optimization — Clean old revisions, spam comments, transients
- Consider a static site — For simple sites, pre-generated HTML beats databases
Eliminate Render-Blocking Resources
Scripts in your <head> block rendering:
- Defer non-critical JavaScript —
<script defer src="..."> - Load CSS asynchronously — Or inline critical CSS
- Remove unused CSS — Tools like PurgeCSS help
Fixing INP (Interaction to Next Paint)
INP problems mean your JavaScript is blocking interactions.
Break Up Long Tasks
JavaScript that runs for 50ms+ blocks the main thread. Solutions:
- Code splitting — Load only what's needed for each page
- Web workers — Move heavy processing off the main thread
- Debounce/throttle — Limit how often event handlers fire
Reduce JavaScript Overall
The best optimization is deletion:
- Audit third-party scripts — Analytics, chat widgets, and ad scripts add up
- Tree-shake dependencies — Import only what you use
- Consider lighter alternatives — Alpine.js instead of React for simple interactivity
Optimize Event Handlers
- Avoid layout thrashing (reading and writing DOM in a loop)
- Use CSS transitions instead of JavaScript animation where possible
- Implement virtualization for long lists
Fixing CLS (Cumulative Layout Shift)
CLS problems mean content is jumping around as the page loads.
Reserve Space for Images
Specify dimensions in HTML:
<img src="photo.jpg" width="800" height="600" alt="...">
Or use CSS aspect-ratio:
img {
aspect-ratio: 4/3;
width: 100%;
height: auto;
}
Reserve Space for Ads and Embeds
Ad slots without fixed dimensions cause the worst layout shift:
- Use min-height on ad containers
- Consider static/fixed ad placements over dynamic
- Lazy-load embeds below the fold
Avoid Injecting Content Above Visible Area
- Don't insert banners that push content down
- Use transforms for animations, not layout properties
- Preload fonts to prevent fallback font swap shift
Platform-Specific Fixes
WordPress
- Hosting: Use WordPress-optimized hosting (Kinsta, WP Engine, Cloudways)
- Caching: Install WP Rocket or LiteSpeed Cache
- Images: Use Imagify or ShortPixel for automatic optimization
- Theme: Choose lightweight themes (GeneratePress, Astra, Blocksy)
- Page builders: Elementor and Divi are heavy; consider alternatives
Shopify
- Theme: Use a modern, fast theme (Dawn, Refresh)
- Apps: Audit installed apps; each adds JavaScript
- Images: Shopify compresses automatically, but optimize before upload
- Sections: Lazy-load below-the-fold sections
React/Next.js
- SSR or SSG: Static generation is fastest
- Code splitting: Next.js does this automatically; don't fight it
- Image optimization: Use
next/imagecomponent - Bundle analysis: Check for massive dependencies
Testing After Changes
After each change:
- Clear all caches (browser, CDN, server)
- Test in an incognito window
- Run PageSpeed Insights again
- Wait 24-48 hours for real-user data to update
Don't just test once — page speed degrades over time as content grows and tools update.
Get Your Complete Site Audit
Page speed is just one part of website health. Broken links, SEO issues, accessibility problems, and security vulnerabilities matter too.
Try SiteScore — get a comprehensive website audit that covers performance, SEO, accessibility, and more. See exactly what's slowing you down and prioritize fixes by impact.
Stop guessing what's wrong. Start fixing what matters.
A fast website isn't just good for Google — it's good for your visitors, your conversions, and your business.
Ready to audit your website?
Get instant AI-powered scores for SEO, performance, accessibility, and security.
Try SiteScore Free →