使用 PageSpeed Insights API 监控性能

2025-06-04

使用 PageSpeed Insights API 监控性能

PageSpeed Insights API提供免费的网页性能监控功能,并返回数据和改进建议。V5 API 包含来自Lighthouse 的实验室数据和来自Chrome 用户体验报告(CrUX)的实际数据



const url = 'https://wordpress.org';
const apiCall = `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${url}`;
const response = await fetch(apiCall);
const json = await response.json();


Enter fullscreen mode Exit fullscreen mode

团队可以使用 API 构建仪表板、自定义报告以及与其他用户体验测量工具的自定义集成。API的响应可用于监控和绘制来自PageSpeed Insights (PSI) 工具的任何数据

pagespeed insights v5 报告

psi分数 PSI 分数 ( json.lighthouseResult.categories.performance.score ) 是通过运行 Lighthouse 分析页面的实验室数据来确定的。分数达到或超过 90 分则被视为速度快,低于 50 分则被视为速度慢。有关评分的最新信息,请参阅常见问题解答;有关分数差异的信息,请参阅bit.ly/perf-variance 。
psi fcp 如果可用,PSI 将从Chrome 用户体验报告中报告来源或页面 URL 的“首次内容绘制”和“首次输入延迟”数据的字段指标值(json.loadingExperience.metrics )。
灵媒实验室 PSI 使用 Lighthouse 分析 URL,生成性能分数,该分数考虑了实验室环境中的许多不同指标,例如交互时间 ( json.lighthouseResult.audits['interactive'] )。
psi 机会 Lighthouse 报告机会(例如json.lighthouseResult.audits['uses-rel-preload']json.lighthouseResult.audits['offscreen-images']等)提供了如何改进页面性能指标的建议。
psi 机会 您网站加载时的缩略图截图可通过json.lighthouseResult.audits['screenshot-thumbnails']以 base64 格式获取。页面加载时的最后一张截图可通过json.lighthouseResult.audits['final-screenshot']获取。

可以使用 PSI 数据构建高度定制的报告。例如,度假租赁网站 VRBO 使用来自 PSI API 的真实数据绘制图表来跟踪长期性能趋势,以确保其速度在旅游行业中保持竞争力:

pagespeed insights 朗姆酒

web.dev/measure使用与 PageSpeed Insights 完全相同的后端,并使用此数据进行一段时间内的历史测量:

web.dev/测量

熟悉PSI API 响应的结构很有帮助。这里有针对实验室和现场/实际应用的大量指标信息:



const url = 'https://wordpress.org';
const apiCall = `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${url}`;
fetch(apiCall)
  .then(response => response.json())
  .then(json => {
      // Real-world metrics
      const cruxMetrics = {
      "First Contentful Paint": json.loadingExperience.metrics.FIRST_CONTENTFUL_PAINT_MS.category,
      "First Input Delay": json.loadingExperience.metrics.FIRST_INPUT_DELAY_MS.category
      };
      // Lab metrics
      const lighthouse = json.lighthouseResult;
      const lighthouseMetrics = {
      'First Contentful Paint': lighthouse.audits['first-contentful-paint'].displayValue,
      'Speed Index': lighthouse.audits['speed-index'].displayValue,
      'Time To Interactive': lighthouse.audits['interactive'].displayValue,
      };
      // ...
});


Enter fullscreen mode Exit fullscreen mode

PSI API 的响应主要关注性能数据。也就是说,您可以提供?category参数来指定您想要获取数据的任何其他 Lighthouse 审计类别:



curl -i "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://web.dev&category=pwa&category=performance&category=accessibility&category=best-practices&category=seo"


Enter fullscreen mode Exit fullscreen mode

您还可以提供localestrategy参数(desktopmobile- 模拟移动网络上的中型设备(Moto G4)上的页面加载)。

Lighthouse 开始支持Stack Packs——特定于技术栈的建议,提供有关如何实施优化(例如 WordPress)的更详细指导。PSI 的 API 响应也支持此功能,因此如果您正在测试 WordPress 网站,则包含以下字符串(wordpress.org 的演示 URL):

pagespeed insights wordpress

PageSpeed Insights 工具还支持获取 PSI API 数据并使用我们的官方Lighthouse Viewer进行渲染。将其?psiurl作为参数传递即可查看实际效果:

pagespeed insights 灯塔查看器

我们在 PSI 上构建的工具之一是psi Node 模块,它可以在您的构建过程中提供便捷的性能报告。



const psi = require('psi');

(async () => {
  // Get the PageSpeed Insights report
  const { data } = await psi('https://web.dev');
  console.log('Speed score:', data.lighthouseResult.categories.performance.score);

  // Output a formatted report to the terminal
  await psi.output('https://theverge.com');
  console.log('Done');
})();


Enter fullscreen mode Exit fullscreen mode

psi当作为 PageSpeed Insights V5 的 CLI 使用时,输出看起来有点像这样:

pagespeed insights 节点模块构建过程输出

要试用 PSI API,请查看使用 Lighthouse 和 CrUX 数据的Glitch 演示。

pagespeed insights 现场演示

您还可以使用Google 表格和 cron 作业,通过定期 ping PSI API 来自动监控多个 URL(例如竞争对手)。我们提供便捷的指南和可供复制的表格。

PageSpeed Insights Google 表格

那么第三方资源呢?

我们知道第三方脚本的成本很高。在排名前 400 万的网站中,约 2700 个源站占用了所有脚本执行时间的约 57%。Lighthouse 公开了第三方代码的影响摘要,可通过json.lighthouseResult.audits['third-party-summary']的 API 获取

PageSpeed Insights API 限制

对于不频繁使用的情况,PSI API 无需 API 密钥即可运行。

但是,如果您打算每秒进行多次查询,建议您注册一个 PSI API 密钥。API 密钥的每日限额为 25,000 次查询,或每 100 秒 400 次查询。这应该足以满足大多数仪表板需求。如果需要,也可以申请更高的配额。

pagespeed insights api限制

PSI API 的下一步是什么?

我们希望在 2020 年将“最大内容绘制”“累计布局偏移”等指标引入 Lighthouse、CrUX 和 PageSpeed Insights。我们也可能探索更好的托管 API 选项,以便从 CrUX 获取现场数据。在此期间,您可能会对Crux.run感兴趣,它是 CrUX 报告数据的快速镜像,也提供 API。

补充阅读

感谢 Shane Exterkamp 的审阅

文章来源:https://dev.to/addyosmani/monitoring-performance-with-the-pagespeed-insights-api-33k7
PREV
JavaScript 现状
NEXT
//TODO:写一个更好的评论 评论带来的风险 避免不必要的评论 写有用的评论 结论