Guides

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 srcset and sizes
  • 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.

Rate your website for free

See how your site really performs

Run a full website health check on mobile and desktop in 30 seconds — no signup needed.

Continue reading