Back to Blog
Website Speed3 min readApril 18, 2026

How to Improve Your PageSpeed Insights Score

Stop guessing why your score is low. Here's the prioritized order of fixes that actually move the needle on PageSpeed Insights.

monitor screengrab
Photo by Stephen Phillips - Hostreviews.co.uk on Unsplash
Table of contents

PageSpeed Insights gives you a long list of "opportunities" and "diagnostics" — but it doesn't tell you which ones matter most. Most are minor. A handful will dramatically move your score.

This is the prioritized order we use to take a real production site from a 50 to a 90+ on mobile.

Step 1: Fix your Largest Contentful Paint (LCP)

LCP is 25% of your score. It measures how long until the biggest visible thing on screen loads (usually a hero image or headline).

To improve it:

  • Preload the LCP image in your <head>:
    <link rel="preload" as="image" href="/hero.webp" fetchpriority="high">
    
  • Don't lazy-load above-the-fold images. Save loading="lazy" for images below the fold.
  • Use a CDN for your image hosting (Cloudflare Images, Vercel, Cloudinary, etc.).
  • Inline critical CSS so the browser doesn't wait for a stylesheet to render text.

For a deep dive, read LCP: What It Means and How to Improve It.

Step 2: Reduce JavaScript

JavaScript is the #1 reason real-world sites are slow. It's also the biggest contributor to Total Blocking Time (30% of your score).

Cut JavaScript by:

  • Auditing third-party scripts — analytics, chat widgets, A/B testing tools, ad networks. Remove anything you don't actively use.
  • Loading scripts asynchronously with async or defer attributes.
  • Code-splitting in React/Next.js so users only download what they need for the current page.
  • Replacing heavy libraries — Moment.js (300KB) → date-fns (8KB), Lodash (70KB) → native ES methods.

Read more in how JavaScript slows down websites.

Step 3: Compress and modernize images

Images are usually 60–70% of a page's weight. The fix is simple:

  • Convert to WebP (or AVIF for even smaller files).
  • Resize images to their displayed size. A 4000px-wide image displayed at 800px wastes 80% of the bandwidth.
  • Use srcset so mobile devices download smaller versions.
  • Lazy-load everything below the fold with loading="lazy".

A single un-optimized hero image can cost you 15 PageSpeed points. See how images affect website speed.

Step 4: Eliminate render-blocking resources

Render-blocking CSS and JavaScript prevent the browser from displaying anything until they're loaded and parsed.

Fixes:

  • Inline critical CSS (the styles needed for above-the-fold content).
  • Defer non-critical CSS by loading it with media="print" and switching it via JavaScript.
  • Add async or defer to script tags that aren't required for first paint.
  • Self-host fonts instead of using Google Fonts CDN, or preload key fonts.

Step 5: Fix Cumulative Layout Shift (CLS)

CLS measures unexpected layout shifts. It's 25% of your score and one of the easiest things to fix:

  • Always set width and height on images and videos.
  • Reserve space for ads, embeds, and iframes with CSS aspect-ratio.
  • Avoid injecting content above existing content (banners, cookie notices).
  • Preload custom fonts or use font-display: optional to avoid FOIT/FOUT.

See CLS: What It Means and How to Fix It.

Step 6: Improve Interaction to Next Paint (INP)

INP is the newest Core Web Vital. It measures how quickly your page responds to taps and clicks. To improve it:

  • Break up long JavaScript tasks with setTimeout or requestIdleCallback.
  • Debounce expensive handlers like search inputs.
  • Move work off the main thread with Web Workers for heavy calculations.

Read INP: What It Means and Why It Matters.

Step 7: Use a fast host and a CDN

The fastest code in the world won't save you if your server takes 2 seconds to respond. Check your Time to First Byte (TTFB) — it should be under 600ms.

If it's not:

  • Move to a faster host (Vercel, Netlify, Cloudflare Pages for static; Fly.io, Railway for dynamic).
  • Add a CDN in front of your server.
  • Cache aggressively at the edge.

More on this in how hosting affects website performance.

The realistic order of impact

If you only have an hour, do these in order:

  1. ✅ Compress hero image and preload it (+5–15 points)
  2. ✅ Add loading="lazy" to below-the-fold images (+3–5 points)
  3. ✅ Defer non-critical JavaScript (+5–10 points)
  4. ✅ Set explicit dimensions on all images (+3–8 points from CLS)
  5. ✅ Remove one third-party script you don't actually use (+3–10 points)

That's typically a 20–40 point gain.

Verify your changes

After every batch of changes, re-run your audit. Don't trust your gut — measure. Run a free audit on RateMySite and watch your score climb.

Frequently Asked Questions

How long does it take to improve a PageSpeed score?+

Most sites can gain 15–30 points in a single afternoon by compressing images, deferring JavaScript, and adding lazy loading. Getting from 70 to 95 typically takes a week of focused work, including reducing third-party scripts.

What's the single biggest factor in PageSpeed score?+

Total Blocking Time (TBT) — JavaScript that blocks the main thread. Reducing the size and number of JS bundles usually gives the biggest score improvement on real-world sites.

Should I optimize for mobile or desktop first?+

Always mobile. Google uses mobile-first indexing for rankings, and most traffic is on mobile. A great mobile score almost guarantees a great desktop score.

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