There are a number of reasons why your Lighthouse scores in SpeedCurve might be different from the scores you see in other tools, such as Page Speed Insights (PSI). Here are a few common reasons, along with our recommendation not to focus too much on getting your scores to "match".

Different Lighthouse versions

While PageSpeed sometimes runs the same version of Lighthouse that we do, from time to time they may be out of sync with us. (Note that we typically run the latest release.)

TTI, TBT and different test environments

The performance score is strongly influenced by Time to Interactive (TTI) and Total Blocking Time (TBT), which can be quite different depending on the test environment and runtime settings. The Lighthouse team have written some great background on what can cause variability in your scores.

Runtime settings

At the bottom of the Lighthouse report, you will see the runtime settings used for the Lighthouse test. SpeedCurve's Lighthouse test runs now use the official throttling settings for mobile and desktop. We do not override settings based on the test environment and your settings may be different when running outside of SpeedCurve.

Hardware and Location

In addition to runtime settings potentially being different, the test servers themselves may be very different. This is true if you are running your own Lighthouse environment and also true if using the Page Speed Insights API. PSI uses different servers based on your physical location (presumably the closest or most optimal server). SpeedCurve will run Lighthouse tests from specified locations based on your Site Settings.

Separate page loads

The Lighthouse report doesn't reuse the same page load that SpeedCurve/WebPageTest does. It's a separate page load done at the end of the SpeedCurve test so the metrics numbers will be different. You can't directly compare the metrics like you see in the SpeedCurve UI like "Time To Interactive", with the metrics in the Lighthouse report. Depending on the nature of your page and the network throttling in your test settings, there could be a some variation in each page load.

Lighthouse does not support WebPagetest scripts

For this reason multistep scripts, authentication scripts or scripts setting cookies for example may have very different results due to broken navigation.

Our recommendation: Don't overly focus on wondering why your metrics don't "match"

We've tried to make it easy to compare the recommendations and metrics coming from those different sources. But we recommend that you don't overly focus on wondering why your metrics don't "match". The idea is to have them all in one place so you can compare and decide which to focus on.

You shouldn't really consider any of these metrics as "reality" – that's what RUM is for. Synthetic testing is more about establishing a baseline in a clean and stable environment, and then improving those metrics by X% over time.

More: Why are the SpeedCurve results different from my other test results

Did this answer your question?