You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lighthouse报告的0-100分值对应JSON结果中的哪个字段?

你要的HTML报告上的0-100评分,无需自行复杂换算,Lighthouse返回的JSON结果(LHR)中已经预置了完全对应的计算结果,也可以手动按规则复现计算逻辑:

方法1:直接取预置评分(推荐,最精准)

LHR的categories字段下已经预存了五大核心维度的最终得分,取值规则:

  • 每个维度的评分存储在lhr.categories.[维度ID].score,返回值为01之间的小数,乘以100就是HTML报告中显示的0100整数评分
  • 常用维度ID对应:
    • 性能评分(也就是PageSpeed Insights展示的核心综合评分):performance
    • 可访问性评分:accessibility
    • 最佳实践评分:best-practices
    • SEO评分:seo
    • PWA评分:pwa

这个字段是Lighthouse官方计算后直接写入JSON的,和HTML报告渲染的评分100%一致,无需额外处理,适合绝大多数监控场景直接使用。

方法2:手动实现评分计算逻辑

如果需要自定义权重或者验证计算逻辑,可以按Lighthouse官方的加权平均规则自行计算:

  1. 每个维度下的所有审计项,在auditRefs字段中都标注了对应的权重weight
  2. 将每个审计项的得分lhr.audits[审计ID].score(0~1之间)乘以对应权重,求和得到加权总分
  3. 将加权总分除以该维度所有审计项的权重总和,得到01的维度得分,乘以100就是最终0100评分

示例代码(JavaScript):

// lhr为Lighthouse返回的JSON结果对象
function calcCategoryScore(lhr, categoryId) {
  const category = lhr.categories[categoryId];
  let weightedSum = 0;
  let totalWeight = 0;

  category.auditRefs.forEach(ref => {
    const audit = lhr.audits[ref.id];
    // 跳过未参与计分的审计项
    if (audit.score === null || ref.weight === 0) return;
    weightedSum += audit.score * ref.weight;
    totalWeight += ref.weight;
  });

  // 返回四舍五入后的0~100整数评分
  return Math.round((weightedSum / totalWeight) * 100);
}

// 调用示例:计算性能评分
const perfScore = calcCategoryScore(lhr, 'performance');

注意:不同版本的Lighthouse审计项权重可能会调整,直接使用预置的categories下的score字段可以自动适配版本差异,无需手动维护权重规则。

内容的提问来源于stack exchange,提问作者Lasse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:24:06