In general, only metrics contribute to your Lighthouse Performance score, not the results of Opportunities or Diagnostics. That said, improving the opportunties and diagnostics likely improve the metric values, so there is an indirect relationship.
Below, we've outlined why the score can fluctuate, how it's comprised, and how Lighthouse scores each individual metric.
Why your score fluctuates
A lot of the variability in your overall Performance score and metric values is not due to Lighthouse. When your Performance score fluctuates it's usually because of changes in underlying conditions. Common problems include:
- A/B tests or changes in ads being served
- Internet traffic routing changes
- Testing on different devices, such as a high-performance desktop and a low-performance laptop
- Antivirus software
Lighthouse's documentation on Variability covers this in more depth.
Furthermore, even though Lighthouse can provide you a single overall Performance score, it might be more useful to think of your site performance as a distribution of scores, rather than a single number. See the introduction of User-Centric Performance Metrics to understand why.
How the Performance score is weighted
The Performance score is a weighted average of the metric scores. Naturally, more heavily weighted metrics have a bigger effect on your overall Performance score. The metric scores are not visible in the report, but are calculated under the hood.
The weightings are chosen to provide a balanced representation of the user's perception of performance. The weightings have changed over time because the Lighthouse team is regularly doing research and gathering feedback to understand what has the biggest impact on user-perceived performance.
Lighthouse 6 (draft)
|First Contentful Paint||15%|
|Largest Contentful Paint||25%|
|Time to Interactive||15%|
|Total Blocking Time||25%|
|Cumulative Layout Shift||5%|
|First Contentful Paint||20%|
|First Meaningful Paint||7%|
|Time to Interactive||33%|
|First CPU Idle|
How metric scores are determined
Once Lighthouse is done gathering the raw performance metrics (mostly reported in milliseconds), it converts them into a score by mapping the raw performance number into a metric score from 0 to 100 by looking where the metric value falls on the Lighthouse scoring distribution. The scoring distribution is a log-normal distribution derived from the performance metrics of real website performance data on HTTP Archive.
For example, Largest Contentful Paint (LCP) measures when a user perceives that the largest content of a page is visible. The metric value for LCP represents the time duration between the user initiating the page load and the page rendering its primary content. Based on real website data, top-performing sites render LCP in about 1,220ms, so that metric value is mapped to a score of 99.
Going a bit deeper, the Lighthouse scoring curve model uses HTTPArchive data to determine two control points that then set the shape of a log-normal curve. The 25th percentile of HTTPArchive data becomes a score of 50 (the median control point), and the 5th percentile becomes a score of 95-ish (the PODR - point of diminishing returns control point).
How scores are color-coded
The metrics scores and the perf score are colored according to these ranges:
- 0 to 49 (slow): Red
- 50 to 89 (moderate): Orange
- 90 to 100 (fast): Green
What can developers do to improve their performance score?
First, use the Lighthouse scoring calculator to help understand what thresholds you should be aiming for achieving a certain Lighthouse performance score.
In the Ligthhouse report, the Opportunities section has detailed suggestions and documentation on how to implement them. Additionally, the Diagnostics section lists additional guidance that developers can explore to further improve their performance.