How to Improve Website Speed
Twelve practical, high-leverage things you can do this week to make your site dramatically faster — ranked by effort vs reward.
Start with measurement, not changes
Before you change anything, run a baseline audit. You can't tell if your changes worked if you don't know where you started. Use RateMySite.io (free) to capture your current Performance score and Core Web Vitals — keep the report URL handy as your "before" snapshot.
Now, in rough order of impact:
1. Compress and properly size your images
Effort: Low · Impact: Massive
Images are the single biggest reason most sites are slow. Three steps:
- Convert PNG/JPG to WebP or AVIF (50-80% smaller)
- Serve responsive variants using
srcsetandsizes - Lazy-load anything below the fold:
<img loading="lazy">
For one-off images, use Squoosh. For static sites, configure your build tool (Next.js <Image>, Astro, Cloudflare Images) to do it automatically.
2. Use a CDN
Effort: Low · Impact: Large
A CDN puts your assets geographically close to your users and cuts server response time dramatically. Cloudflare, Bunny, and Vercel all offer generous free tiers.
3. Inline critical CSS
Effort: Medium · Impact: Large
The first paint of your page depends on your CSS being parsed. If your CSS is in a separate file, the browser blocks rendering until it loads. Inline the CSS for above-the-fold content directly in <head> and load the rest asynchronously.
4. Defer non-critical JavaScript
Effort: Low · Impact: Large
Every script in <head> without defer or async blocks parsing. Add defer to anything that isn't needed before first paint.
5. Audit your third-party tags
Effort: Low · Impact: Variable (often huge)
Open Chrome DevTools → Performance Insights → Third Parties. You'll usually find chat widgets, A/B test tools, analytics, and ad pixels eating 1-3 seconds. Question every one. Defer or remove what you can.
6. Self-host your fonts
Effort: Low · Impact: Medium
Google Fonts requires an extra DNS lookup and TLS handshake. Download the woff2 files you need, host them yourself, and use font-display: swap to avoid FOIT.
7. Preload your hero asset
Effort: Trivial · Impact: Medium for LCP
Tell the browser what your LCP element is:
<link rel="preload" as="image" href="/hero.webp" fetchpriority="high">
8. Eliminate layout shift
Effort: Low · Impact: Medium
Set explicit width and height on every image and embed. Reserve space for ads. Use font-display: optional or preload web fonts to avoid font swap shifts.
9. Reduce server response time
Effort: Medium-High · Impact: Large
If your TTFB (Time to First Byte) is over 800ms, your server is the bottleneck. Options:
- Cache responses (CDN, edge caching, ISR)
- Upgrade your host
- Move to edge/serverless if you're on slow shared hosting
- Optimize slow database queries
10. Remove unused CSS and JavaScript
Effort: Medium · Impact: Medium
Most sites ship 30-70% unused code. Use Chrome DevTools → Coverage to find it. Tree-shake your bundler, drop unused frameworks, or replace heavy libraries with lighter alternatives.
11. Use HTTP/3 and Brotli compression
Effort: Trivial · Impact: Small but free
Both come on by default on Cloudflare, Vercel, and most modern hosts. Verify in DevTools → Network → protocol column. If you see h2 not h3, ask your host.
12. Cache aggressively
Effort: Medium · Impact: Huge for repeat visitors
Set long Cache-Control: max-age on every static asset. Use immutable hashed filenames so you can cache forever.
Re-audit and prove the win
After each change, re-run the audit. You should see your score climb and Core Web Vitals turn green. Keep both the before and after report URLs — they're great proof when you tell the rest of your team that page speed matters.
Frequently Asked Questions
What's the single biggest thing I can do to speed up my site?+
Compress and properly size your images. On most sites, images account for 50%+ of total page weight. Switching to WebP/AVIF and using responsive srcset will often cut LCP in half.
How fast should my site be?+
Aim for LCP under 2.5s, CLS under 0.1, and INP under 200ms. If you hit all three, you pass Core Web Vitals and Google considers your page experience 'Good'.
Do I need to rewrite my site to make it fast?+
Almost never. 80% of speed problems come from a handful of fixable issues: oversized images, render-blocking scripts, unoptimized fonts, and bloated third parties. Audit first, rewrite never.
See how your site really performs
Run a full website health check on mobile and desktop in 30 seconds — no signup needed.
Continue reading
Website Speed Test
Run a free website speed test on any URL. Get mobile and desktop Lighthouse scores, Core Web Vitals, and a plain-English breakdown in 30 seconds.
Read moreCore Web Vitals Checker
Check your Core Web Vitals (LCP, CLS, INP) on any URL for free. Get instant Google Lighthouse results with traffic-light thresholds and clear fix recommendations.
Read moreSEO Score Checker
Check your website's SEO score for free using Google's Lighthouse engine. Get instant feedback on titles, meta descriptions, structured data, mobile-friendliness and more.
Read more