The Science Behind Google PageSpeed Insights: How It Works & What It Actually Measures

Google PageSpeed Insights

Did you know Google PageSpeed Insights doesn’t actually test your total page load time?! Yes, you heard that right. The web’s most popular performance testing tool doesn’t even care how long it takes your page to load from start to finish.

Did you also know that the score you get from PageSpeed Insights is based on an arbitrary set of metrics determined by Google? They come right out and admit it themselves.

The heavier-weighted audits have a larger impact on your overall Performance score. The weightings are based on heuristics. The Lighthouse team is working on formalizing this approach through more field data.
Lighthouse Scoring Guide

To be clear, PageSpeed Insights is evaluating important metrics. And I’m not saying you shouldn’t use the tool, or ignore its results. The metrics it’s measuring are crucial to the user experience. You should pay attention to them.

But how much does the overall score really matter? Well, to answer that, you need to understand what it’s measuring, and how it works.

This article will dissect the PageSpeed Insights performance report.

This article will not discuss the ways in which you can improve your score. I will publish another article that covers many ways to improve your site’s performance.


Still with me? Let’s get started.

PageSpeed Insights example desktop score
An example PageSpeed Insights performance score on desktop for this website.

What is Google PageSpeed Insights?

Google’s PageSpeed Insights uses an open-source technology called Lighthouse, as well as Google’s own Chrome User Experience Report (CrUX) data. It is designed to take a single URL and provide feedback on the following (for both mobile & desktop devices):

  • Performance
  • Accessibility
  • SEO
  • Best Practices
  • Progressive Web App
Google Lighthouse full report
The full Lighthouse report using the Google Chrome extension.

For each category, it provides a score between 0-100, along with additional information to help diagnose your page, and find opportunities to improve it. The scores are separated out per device (one score for mobile, a separate score for desktop).

Although it provides scores for 5 categories, this article will only focus on performance. The other areas do provide valuable information, so I encourage you to check them out on your own.

NOTE: Lighthouse, along with an updated scoring method, was introduced in November 2018, with v3 of PageSpeed Insights. Before this update, PageSpeed Insights looked & functioned differently.

What PageSpeed Insights Actually Measures

One of the biggest misconceptions about Google PageSpeed Insights is that it measures the total load time of a web page. It doesn’t. It actually focuses on what it calls “progressive web metrics.”

Progressive web metrics (FCP, FMP, TTI) are designed to capture the user experience and are the sole input to the Lighthouse performance score.
Lighthouse Metric Variability & Accuracy

Many of you have probably never heard of FCP, FMP and TTI. I’ll briefly explain these metrics below, along with the other metrics that they use to generate your overall performance score. But first…

Lab Data vs. Field Data

Whenever you’re dealing with user experience, you can’t solely rely on scientific data. When a user visits a web page, there are many variables to account for. Users can experience the same page in many different ways.

Google PageSpeed Insights Lab Data vs. Field Data
Showing PageSpeed lab data & field data are two different things.
  • Lab data refers to objective, scientific metrics that can be calculated in a controlled environment with some level of accuracy and repeatability. Google uses an open-source technology called Lighthouse to measure lab data. It uses this data to calculate your PageSpeed Insights performance score (0-100).
  • Field data shows an historical report about how a particular URL has performed, and represents anonymized performance data from users in the real-world on a variety of devices and network conditions. The Chrome User Experience Report collects this data from Chrome users who have opted-in to share their browsing history & usage data with Google.

Lab data: scientific, controlled, used for performance score
Field data: real-world users, variable, not used for performance score

Because the overall performance score only uses lab data, it’s helpful to understand each of the 6 lab data metrics.

Google PageSpeed lab data metrics


First Contentful Paint (FCP)

First Contentful Paint measures the time when the browser first displays any text or images (anything other than a blank white page). Essentially, as soon as the user sees any content.

Important because: It provides the user with feedback that the page has started loading.

First Meaningful Paint (FMP)

First Meaningful Paint identifies the time at which the user feels that the primary content of the page is visible. Typically, this means all (or most) of your above-the-fold content has rendered on the screen.

Important because: The user feels like the page is fully loaded (or close to it).

First CPU Idle (previously “First Interactive”)

First CPU Idle used to be called “First Interactive.” This name likely makes more sense for most users. Essentially, it means:

  • Most UI elements (links, buttons, forms, etc.) on the screen can be interacted with
  • The page will respond to most user interactions in a reasonable amount of time

If those sound like subjective metrics, you’re not alone. But Google did their homework (and testing) when coming up with them (super-nerdy explanations here).

Time to Interactive (TTI)

Time to Interactive measures how long it takes for a page to become fully interactive. Essentially, this means:

  • the user can see visible content on the page
  • the user can interact with all of that content (click buttons, use a search form, etc.)

Important because: If you prioritize showing visual content over the ability to be able to interact with it, that could lead to a frustrating user experience.

Speed Index

Speed Index refers to how fast your entire page’s content is visually displayed. A video screen capture is recorded at 10 fps to determine how much of your page has been visually shown to the user.

It is based on the implementation by WebPageTest, described here (super nerdy).

Important because: It provides visual feedback to the user that the page has finished loading.

Estimated Input Latency

Estimated Input Latency measures how long it takes your page to respond when the user attempts to take an action (click a button, fill out a form field, etc.). The measurement occurs during a 5-second window that starts when most of your page’s primary content becomes visible to the user.

  • Acceptable Score: 100 ms or less
  • Great Score: 50 ms or less

Important because: Users might perceive your page as slow or lagging if it has a high input latency.

NOTE: This is very much an estimate, and may not represent a true user experience. Improving this score is typically done by rewriting code to make it more efficient. It’s the most difficult metric to improve, especially for non-developers.


How Google PageSpeed Insights Works

In this section, I’ll break down exactly how the performance grade is calculated. You’ll have a better understanding of why you’re getting a certain score, and have a way to predict how certain improvements would impact your score.

PageSpeed Insights Performance Score, Explained

To calculate your overall performance score (0-100), PageSpeed Insights uses 5 of the 6 metrics we discussed above. These are all found in the “Lab Data” (or “Metrics”) section of the Performance report.

The audits under “Diagnostics” and “Opportunities” do not contribute to your overall performance score, nor does the “Field Data” or “Origin Summary.”

Google PageSpeed Insights scoring example with weighting
An example of the scoring calculations that Google PageSpeed Insights uses

Here are the 5 metrics that make up your PageSpeed score (listed from most to least important):

  • Time to Interactive (TTI) – 5/10
  • Speed Index – 4/10
  • First Contentful Paint (FCP) – 3/10
  • First CPU Idle – 2/10
  • First Meaningful Paint (FMP) – 1/10

As you can see, they don’t all contribute equally. The importance of each metric is based on a 1-10 scale, and displayed after their names above.

  • Time to Interactive (5/10) is the most important
  • First Meaningful Paint (1/10) is the least important

The weighting system was created with a loosely defined set of rules, determined by Google (translation: it’s somewhat arbitrary).

However, if you’re in a situation where you need to improve your score, focus on the more heavily weighted metrics first.

NOTE: Estimated Input Latency is listed as a “Lab Data” metric, however it is not used to calculate your PageSpeed score. This spreadsheet breaks down all calculations & weighted scoring (nerd alert!).

Each of these 5 metrics are analyzed in the following way, for both desktop & mobile devices.

1. Capture Raw Data from Your Website

First, your website’s raw data (in seconds or milliseconds) is captured.

When you run a PageSpeed Insights test, and Google captures these speed metrics from your site, there are a few things to keep in mind.

  • If the page contains dynamic content or ads, different scripts could be loaded, which could affect the load time
  • The internet connection speed for the mobile report should always be 1.6 mbps, but we don’t know what it is for the desktop report (or if it changes each time)
  • We don’t know the physical location from which the test is being performed

2. Compare Your Site’s Data to Top 1M Sites

Then, this raw data is compared to the performance data of over 1 million web pages in Alexa’s Top 1M sites list. The HTTP Archive collects both mobile & desktop data from these top sites, twice a month. PageSpeed Insights uses this data as a benchmark for determining if your site is fast, average or slow.

HTTP Archive First Contentful Paint chart
An example of HTTP Archive’s First Contentful Paint data

3. Convert Raw Data to a “Score” (0-100)

Google then converts each one of your site’s lab data metrics to a score between 0-100.

PageSpeed Insights scoring guide, with all scores
Example scores for each of the 5 metrics, along with their corresponding millisecond values.

These calculations are based on a mathematical equation in probability theory known as log-normal distribution. 👈 Only click that link if you want your brain to explode 🤯.

Let’s look at First Contentful Paint (FCP) as an example (reference the graph above).

Based on HTTP Archive data, the median values for FCP are:

  • Desktop = 2.4 seconds
  • Mobile = 5.8 seconds

PageSpeed Insights uses 4 seconds as the median value to calculate the score for FCP (which is just about halfway between desktop & mobile). As you can see below, an FCP of 4 seconds gives you a 50/100 score.

Here’s how Google scores the following:

  • 1.3 seconds = 100/100
  • 4.0 seconds = 50/100
  • 11.0 seconds = 1/100
  • 12.0 seconds = 0/100

Notice the much larger gap (8 seconds) from 0 to 50, and only a 2.7 second gap between 50-100. This is why Google says that scoring a 50/100 is like being in the 75th percentile. (that’s how log-normal distribution works… I think)

These calculations are performed for all 5 metrics, each using various median scores. View the full scoring spreadsheet »

TIP: You can make a copy of the scoring spreadsheet and test how different improvements will impact your score.

4. Merge 5 Scores into 1 Final Score

After PageSpeed Insights calculates your score for each of the 5 metrics, it merges them into one final performance score. To do this, it calculates the weighted average without percentages.

Here’s an abbreviated example using only 2 metrics.

Metric Score (0-100) Weight (1-10)
Time to Interactive 75 5
First Meaningful Paint 50 1
  1. Multiply the Score x Weight to get adjusted scores
    • 75 x 5 = 375
    • 50 x 1 = 50
  2. Add up all your adjusted scores
    • 375 + 50 = 425
  3. Add up all the weights
    • 5 + 1 = 6
  4. Divide the total adjusted scores (425) by the total weights (6)
    • 425 ÷ 6 = 70.8

This will get rounded up, and you’ll have a total performance score of 71.

Color Coding

In addition to your numerical performance score, Google also supplies one of three colors, each of which dictate either a fast, average or slow site (remember, this is based on data from the HTTP Archive of the top 1M sites).

PageSpeed Insights color coding scores

  • Green: 90-100 (fast)
  • Orange: 50-89 (average)
  • Red: 0-49 (slow)

How to Test with Google PageSpeed Insights

This section covers:

  • Different ways you can run a Google PageSpeed Insights test
  • Some technical specifications behind the mobile test
  • Testing tips & frequently asked questions

Different Testing Methods

You can run a PageSpeed Insights test from multiple places. The last two are more technical, and thus not covered in this guide.

1. PageSpeed Insights Website

The PageSpeed Insights website is how most people use the Google PageSpeed Insights API. You simple navigate to the page, enter a URL, and click Analyze.

  • This method only measures Performance (and not the other 4 methods mentioned above)
  • This method provides both mobile & desktop scores

Google PageSpeed Insights testing website

2. Lighthouse Chrome Extension

Lighthouse Chrome Extension example

The Lighthouse Chrome extension actually provides data on all 5 categories (performance, SEO, accessibility, best practices & progressive web app). The “Performance” score measures the same thing that the score from the PageSpeed Insights website measures.

  • Can only be used in Google Chrome
  • Best if ran in a private browsing window
  • Provides data on more than just performance
  • Only measures mobile performance (not desktop)
PageSpeed Insights vs. Lighthouse Chrome extension
These numbers are measuring the same thing, but they might not give you the same score.

To run the Chrome Lighthouse extension in incognito mode (recommended):

  1. In Chrome, click the three dots (more menu) in the top-right
  2. Under “More Tools,” choose “Extensions”
  3. Find the Lighthouse extension
  4. Click “Details”
  5. Scroll down and enable the option to Allow in incognito

3. Chrome DevTools

If you don’t want to install the Lighthouse extension, you can run an audit directly from the Google Chrome browser. Using the Chrome DevTools, click on Audits, choose your options, and click Run audit.

You have more options to customize here:

  • Choose Device: Mobile or Desktop
  • Choose Audits: Pick any/all 5 categories
  • Choose Throttling: Simulate a slow mobile network or no throttling
  • Clear local browser storage before running the test

The report you get will look almost identical to that of the Chrome Lighthouse extension, mentioned above, except it will be customized with only the audits you chose.

Lighthouse audit from Chrome DevTools, pre-run

NOTE: Running the audit with Chrome DevTools appears to use Lighthouse version 3.2.0. The Chrome extension uses Lighthouse 4.0.0. So the extension is using the more up-to-date version (likely matching what the PageSpeed Insights website uses).

You can see the version number at the bottom of the image below.

Google Lighthouse runtime settings & version number
Version 3.2.0 being used in Chrome DevTools audit. The current version is 4.0.0.

Mobile Testing & Scores, Explained

Many people have expressed concern that their mobile performance scores are much lower than their desktop scores. This section explains one possible reason why that’s the case.

Google tells us that:

“Mobile tests are run on an emulated Nexus 5X smartphone, connected to the internet via a simulated slow 4G network.”

More specifically, this equals 1.6 mbps and represents roughly the bottom 25% of 4G connections.

  • Testing Device: Nexus 5X Smartphone
  • Network Speed: 1.6 mbps

For comparison, according to speedtest.net, the average mobile network download speed in the United States in Q1/Q2 2018 was 27.33 mbps. That’s 16x faster than what Google PageSpeed Insights is using to run their tests 😱!

The median size of a mobile web page is 1.7 MB (source). With PageSpeed Insights, this page would load on a mobile device in about 1 second (or 1000 ms). But on an average 4G network in the U.S., you’d have the page in about 65 ms.

One possible explanation why you’re seeing a low PageSpeed Insights score for mobile could be this difference in mobile network speed.

It is still widely unknown what download speed PageSpeed Insights uses for their desktop test, but it is likely much higher than 1.6 mbps.

Even when I looked at average mobile network speeds of other countries, they were all considerably higher.

  • Australia: 44 mbps
  • UK: 26 mbps
  • Egypt: 6.5 mbps
  • Peru: 10.5 mbps

I don’t know why Google chose to use such a slow speed.

Testing Tips & FAQs

How many tests should I run?

Even Google recommends you run PageSpeed Insights more than one time to get the most accurate picture. I recommend you run 5 tests.

And if you really want to track your numerical performance score, I would either:

  • use the median score
  • throw out the highest & lowest scores, and use the average of the middle 3 scores

Test multiple pages on your site, not just your homepage

Your homepage might not be the best representation of all the pages on your site. Since PageSpeed Insights measures one page at a time, you could miss valuable insights if you’re just testing your homepage.

  • Test your most popular page(s)
  • Test one of each type of page (blog post, static page, landing page, ecommerce product page, etc.)
  • Test your most important page(s); the ones that affect your bottom line

Why do my results change each time I run a test?

Google answers this question:

“Several common sources of metric variability are local network availability, client hardware availability, and client resource contention.”

In layman’s terms, this means that the following factors could play a role in your results:

  • how fast or slow your internet speed is
  • how powerful your computer is
  • how many other things you have running on your computer

How ads, tag managers & scripts can impact test results?

On each visit, a site may load different ads or scripts. This is fairly common if you’re using Google AdSense, or another form of display ads on your site. Also, tag managers can fire different scripts on different pages. Remarketing tags can load different scripts/ads for different users.

This is a big reason why you should run multiple tests of the same page.

Do browser extensions impact performance tests?

Google Chrome browser extension icons

Yes, they can. If you’re testing using the Chrome browser, the extensions you have enabled can affect your PageSpeed score. When I ran a performance test using the Lighthouse Chrome extension, I got this message:

There were issues affecting this run of Lighthouse:
Chrome extensions negatively affected this page’s load performance. Try auditing the page in incognito mode or from a Chrome profile without extensions.

Test in a private browser window, with no extensions running

What you’re doing in your current browser can affect your test results. Things that could negatively impact your score include:

  • The tabs you have open in your browser
  • The browser extensions you have enabled

Test on a few different internet connections

Internet download speeds can also affect your score. Therefore:

  • Test from your mobile phone while using 4G
  • Test from your desktop computer at home, on a really fast connection
  • Test from a local coffee shop on a shared WiFi connection

* It’s not uncommon to see 20-30 points difference between scores.


Google PageSpeed Insights Summary

Let’s recap what we learned.

Google PageSpeed Insights…

  • is more about user experience metrics, and less about objective page speed
  • does not test total page load time
  • uses median values from the HTTP Archive to determine if your site is fast, average or slow (based on Alexa’s Top 1M sites)
  • uses a mobile network download speed ~16x slower than the U.S. average (it loads pages much slower than most users will experience)
  • is constantly changing, and dependent on arbitrary decisions made by Google

If I left anything out, or you can help answer some of the outstanding questions in this post, please let me know in the comments. I’d love to keep this updated as Google PageSpeed Insights continues to evolve.

What Are Your Thoughts?

All fields are required. Your email will not be published.

You can use standard <code> and <pre> tags to post code examples, or a service like codepen.io.