Guides

Why Is My Website Slow?

Nine out of ten slow websites are slow for the same handful of reasons. Here's how to figure out which one is killing yours — and what to do about it.

Diagnose first, fix second

Most "my website is slow" complaints come down to one of seven causes. Run a free Lighthouse audit on your URL — the Top Performance Issues section will tell you which of these apply. Then come back here for the fix.

Cause #1: Huge or unoptimized images

Symptoms: High LCP, large transfer size, your hero image is over 500KB

Why it happens: You uploaded a 4000 × 3000 JPG straight from your phone or Figma export.

Fix:

  • Convert to WebP or AVIF
  • Resize to the actual display size
  • Use srcset to serve different sizes for different screens
  • Lazy-load anything below the fold

Cause #2: Render-blocking scripts and stylesheets

Symptoms: High FCP, "Eliminate render-blocking resources" in your report

Why it happens: Your CSS file or JavaScript tag is in <head> without defer or async, so the browser has to wait for it before painting anything.

Fix:

  • Inline critical CSS for the first viewport
  • Add defer or async to non-critical scripts
  • Load fonts asynchronously with <link rel="preload">

Cause #3: Slow server response time (TTFB)

Symptoms: Everything is slow, even on repeat visits

Why it happens: Your hosting can't return HTML quickly. Common on shared hosting, WordPress without caching, or apps with slow database queries.

Fix:

  • Add a CDN (Cloudflare in front of your origin = free win)
  • Enable full-page caching
  • Upgrade to a modern host (Vercel, Netlify, Bunny)
  • Profile and optimize slow database queries

Cause #4: Too much JavaScript

Symptoms: High TBT, high INP, mobile much worse than desktop

Why it happens: Bloated frameworks, unused dependencies, heavy client-side hydration on a content site.

Fix:

  • Code-split (dynamic imports for routes and heavy components)
  • Tree-shake unused exports
  • Replace heavy libraries (Moment → date-fns, Lodash → native)
  • Consider whether you need a client framework at all for content pages

Cause #5: Third-party tags

Symptoms: Score drops every quarter as marketing adds tools

Why it happens: Every analytics, chat, A/B test, and ad pixel runs JavaScript on your page.

Fix:

  • Audit every script tag — challenge each one
  • Defer non-critical tags
  • Use server-side analytics (Plausible, Fathom, Cloudflare Web Analytics)
  • Self-host or proxy heavy third parties

Cause #6: Custom fonts

Symptoms: CLS issues, "Flash of Invisible Text"

Why it happens: Browser waits for your custom font before rendering text, or text reflows when the font swaps in.

Fix:

  • Use font-display: swap (text shows in fallback, then swaps)
  • Preload the most important font weight
  • Self-host instead of pulling from Google Fonts
  • Use variable fonts to ship one file instead of four

Cause #7: No caching

Symptoms: Every page navigation re-downloads the same assets

Why it happens: Missing or wrong Cache-Control headers on static assets.

Fix:

  • Add Cache-Control: public, max-age=31536000, immutable to all hashed assets
  • Use hashed filenames so you can cache forever and bust by renaming
  • Most modern hosts and CDNs configure this automatically

What to do right now

  1. Run a free Lighthouse audit on your URL using the form below
  2. Look at the Top Performance Issues section — that's your prioritized list
  3. Fix the top one
  4. Re-audit and watch your score climb

Most of these fixes take less than an hour and move the needle by 20-40 points.

Frequently Asked Questions

Why is my website fast for me but slow for visitors?+

Two reasons. First, your browser cache makes repeat visits feel fast. Second, you probably test on fast Wi-Fi and a powerful laptop — your real users are on phones over 4G. Always test in an incognito window on mobile.

Why did my website get slower over time?+

Almost always third-party scripts and image bloat. Each marketing tool, analytics tag, and chat widget added over time taxes the page. Audit your third parties and re-run a Lighthouse report — you'll usually find one or two new culprits.

Can my hosting make my site slow?+

Yes. If your Time to First Byte (TTFB) is over 800ms, your host is the bottleneck. Cheap shared hosting often delivers 1500ms+ TTFB. A CDN or a modern serverless host typically gets you under 200ms.

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