PerformanceUpdated 9 min read

How to Achieve 100/100 on PageSpeed Insights in 2026

A step-by-step guide to a perfect PageSpeed Insights score: how the score is calculated, and the server, LCP, TBT and CLS fixes that move it the most.

Z

Zaid Ahmed

Published

How to achieve a 100/100 PageSpeed Insights score in 2026 using website speed optimization techniques.
On this page
  1. Key takeaways
  2. How is the PageSpeed Insights performance score calculated?
  3. Step 1: Make the server respond in under 200 ms
  4. Step 2: Fix Largest Contentful Paint (LCP)
  5. Step 3: Reduce Total Blocking Time (TBT)
  6. Step 4: Eliminate Cumulative Layout Shift (CLS)
  7. Step 5: Measure, change one thing, and measure again
  8. Frequently asked questions

Key takeaways

To score 100 on PageSpeed Insights, serve HTML from a cache so the server responds in under 200 ms, make the largest above-the-fold element load first, ship as little JavaScript as possible, and reserve space for every image and embed. Largest Contentful Paint, Total Blocking Time and Cumulative Layout Shift make up 80% of the score.

  • The performance score is a weighted average of five Lighthouse lab metrics; TBT (30%), LCP (25%) and CLS (25%) matter most.
  • Mobile scores are lower because Lighthouse simulates a mid-range phone on a slow 4G connection.
  • Fix the server response first, then the LCP element, then JavaScript, then layout shift.
  • A score of 90–100 is rated good; chasing the last few points matters less than passing Core Web Vitals in real-user data.

How is the PageSpeed Insights performance score calculated?

PageSpeed Insights runs Lighthouse against your page and turns five lab metrics into a single score from 0 to 100. Each metric is scored against real-world data from the HTTP Archive and then weighted. Because three metrics carry 80% of the weight, they are where your effort pays off.

Lighthouse performance score weights (Lighthouse 10 and later)
MetricWhat it measuresWeight
Total Blocking Time (TBT)How long the main thread is blocked by long tasks30%
Largest Contentful Paint (LCP)When the largest above-the-fold element renders25%
Cumulative Layout Shift (CLS)How much visible content moves unexpectedly25%
First Contentful Paint (FCP)When the first text or image appears10%
Speed IndexHow quickly the visible page fills in10%

Scores of 90–100 are rated good, 50–89 need improvement, and 0–49 are poor. The mobile test emulates a mid-range phone with a slowed-down CPU on a throttled 4G connection, which is why a site that feels instant on a laptop can still score in the 60s on mobile.

Step 1: Make the server respond in under 200 ms

Every other metric waits for the first byte of HTML. If Time to First Byte (TTFB) is slow, FCP, LCP and Speed Index are all slow too.

  • Statically generate or cache full HTML responses at a CDN edge wherever the content allows.
  • Keep database queries off the critical path of public pages: render from a cache and revalidate in the background.
  • Enable HTTP/2 or HTTP/3 and Brotli compression on your host or CDN.
  • Avoid redirect chains — each redirect adds a full network round trip before the page can start loading.

Step 2: Fix Largest Contentful Paint (LCP)

The LCP element is usually a hero image or a large heading. The Lighthouse report names it under "Largest Contentful Paint element". Your goal is to have the browser discover and download it as early as possible.

  • Serve hero images in AVIF or WebP, sized to the dimensions they are actually displayed at.
  • Mark the LCP image as high priority with fetchpriority="high" (or the priority prop on the Next.js Image component).
  • Never lazy-load the LCP image, and don't hide it behind a client-side fade-in animation.
  • Preload the font used by above-the-fold text and use font-display: swap or optional so text paints immediately.

Step 3: Reduce Total Blocking Time (TBT)

TBT adds up the time beyond 50 ms of every long task on the main thread between first paint and interactivity. It is the heaviest-weighted metric and is almost always caused by JavaScript.

  • Ship less JavaScript: render content on the server and keep only genuinely interactive components on the client.
  • Load third-party scripts — analytics, chat widgets, tag managers — after the page is interactive, and remove the ones you don't need.
  • Break up long tasks by yielding to the main thread between chunks of work.
  • Import only what you use from large libraries such as icon packs, date libraries and charting libraries.

Step 4: Eliminate Cumulative Layout Shift (CLS)

  • Give every image, video and iframe explicit width and height attributes (or a CSS aspect-ratio) so the browser reserves space.
  • Reserve space for ads, embeds, cookie banners and anything else injected after load.
  • Use size-adjusted fallback fonts so swapping in the web font doesn't move text.
  • Animate with transform and opacity instead of properties that change layout, such as top or height.

Step 5: Measure, change one thing, and measure again

Lab scores vary by a few points between runs because of network and CPU noise, so test several times and compare the median. Change one thing at a time so you know what helped.

SpeedAudit AI audits every page in your sitemap on mobile and desktop, tracks scores over time, and uses Gemini AI to turn each failing audit into a prioritised fix — so you can see which change moved the score and catch regressions early.

Frequently asked questions

Is a 100/100 PageSpeed Insights score necessary for SEO?

No. Google ranks pages using real-user Core Web Vitals data, not the Lighthouse lab score. A score of 90 or above is rated good, and passing Core Web Vitals in field data matters more than reaching exactly 100.

Why is my mobile PageSpeed score lower than desktop?

The mobile test emulates a mid-range phone with a slower CPU on a throttled 4G connection, so JavaScript takes longer to run and resources take longer to download. Desktop runs without that CPU slowdown on a faster connection.

Why does my PageSpeed score change every time I run it?

Network conditions, server response times and background CPU load differ between runs, so lab scores usually vary by a few points. Run the test several times and compare the median rather than a single result.

Which metric has the biggest impact on the PageSpeed score?

Total Blocking Time, at 30% of the score, followed by Largest Contentful Paint and Cumulative Layout Shift at 25% each. Reducing JavaScript is usually the most effective way to improve the overall score.

Can third-party scripts stop me from scoring 100?

Yes. Analytics, tag managers, chat widgets and ad scripts often add long main-thread tasks that raise Total Blocking Time. Loading them after the page is interactive, or removing unused ones, is often the last step to a perfect score.

Audit your site in seconds

Get PageSpeed scores and AI-written fixes for every page in your sitemap.

Get Started →