WP TOOLS

EP07. “用 PageSpeed Insights API 监控网站性能”

首页 建站工具 Performance · LiteSpeed Cache
约 13 分钟·
🔒 登录后可标记已读

这篇笔记讲怎么用 Google 免费提供的 PageSpeed Insights API,把网站性能测试自动化、记录下来、长期追踪变化,而不是每次都手动打开 Lighthouse 跑一次。适合想长期监控网站速度、或想给客户/管理层做性能报告的站长和开发者。跟 LiteSpeed Cache 插件本身没有直接关系,是一个通用的测速/监控方法,两者可以搭配使用——用这篇的方法验证 LiteSpeed Cache 设置改动后的实际效果。

重点内容


先认识 Lighthouse

打开要检查的页面,按 Ctrl/Cmd + Shift + I 打开开发者工具,切换到 Lighthouse 标签,点 Analyse Page Load 就能看到检测结果,可以往下看每一项的百分比找出具体问题。

[截图:Chrome 开发者工具 Lighthouse 标签的检测结果页面,显示 Performance/Accessibility 等分类分数]

⚠️ Lighthouse 的局限:

  • 每个页面都要手动跑一次
  • 不容易长期记录、比较各项指标随时间的变化
  • 数据量大,容易看漏
  • 技术细节是给开发者看的,对只想快速了解进展的客户/管理层来说信息量太大
  • 结果会受本地设备和网速影响,可能导致错误判断

什么是 PageSpeed Insights API

Google 提供免费的 PageSpeed Insights REST API,用 JSON 格式返回数据,包含所有 Lighthouse 指标以及更多信息。能让你自动跑测试、存储结果、比较一段时间内的变化、只显示自己需要的信息。

📌 这个 API 模拟的是 Google 怎么看你的网站,结果有参考价值,但不完全等同于真实用户体验——如果想监控所有用户在不同设备/网络下的真实性能,浏览器性能 API 会是更好的选择。


快速上手

复制以下网址到浏览器,把 URL 换成自己要测的页面:

https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://www.yoursite.com/

💡 建议用火狐浏览器测试,因为它内建 JSON 浏览器(Chrome 需要装扩展才有同样功能)。

可以用查询字符串参数自定义结果,用 & 符号连接多个参数:

参数作用例子
url唯一必填参数,要测试的网址url=https://mysite.com/page1
strategy桌面或移动测试(默认桌面)strategy=mobile
category只跑指定类别(不填的话只跑性能)category=performancecategory=accessibilitycategory=best-practicescategory=seocategory=pwa
locale指定语言locale=fr-FR
utm_campaign / utm_source配合 Google Analytics 活动追踪
key谷歌 API 密钥,短期内高频请求需要注册key=<api-key>

例如同时测移动版的性能和无障碍指标:

https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://mysite.com/&strategy=mobile&category=performance&category=accessibility

不确定怎么拼网址的话,也可以用 Google PageSpeed API URL 构建工具辅助生成。


JSON 结果怎么看

测试通常会返回约 600KB 的 JSON 数据(视选的类别、页面资产数量、截图复杂度而定),建议存下来用文本编辑器或在线 JSON 格式化工具(如 jsonformatter.io)查看。结果分四大部分:

  • loadingExperience:单个页面的终端用户加载体验指标,包含 Core Web Vitals(如 CUMULATIVE_LAYOUT_SHIFT_SCORE、FIRST_CONTENTFUL_PAINT_MS、FIRST_INPUT_DELAY_MS),会标注 FAST/AVERAGE/SLOW/NONE 分类
  • originLoadingExperience:整个域名(所有用户)的汇总加载体验指标,跟上面结构相同,流量小的网站两者数字通常差不多
  • lighthouseResult:最大的部分,包含所有 Lighthouse 指标——请求网址、最终网址(跳转后)、Lighthouse 版本、测试时间、浏览器信息、审计结果(未使用的 JS/CSS、总字节大小、跳转次数、DOM 大小、服务器响应时间等)、全页/缩略图截图(base64 格式)、以及各类别(性能/无障碍/最佳实践/SEO/PWA)的总分
  • analysisUTCTimestamp:报告分析的时间戳

分数怎么解读:0.9~1.0 为良好,0.5~0.9 表示需要改进,0.5 以下算差、需要紧急处理

常用的有用指标:

指标JSON 路径
性能总分lighthouseResult.categories.performance.score
无障碍总分lighthouseResult.categories.accessibility.score
最佳实践总分lighthouseResult.categories.best-practices.score
SEO 总分lighthouseResult.categories.seo.score
PWA 总分lighthouseResult.categories.pwa.score
FCP(首次内容绘制)lighthouseResult.audits.first-contentful-paint.score
LCP(最大内容绘制)lighthouseResult.audits.largest-contentful-paint.score
CLS(累积布局偏移)lighthouseResult.audits.cumulative-layout-shift.score
服务器响应时间lighthouseResult.audits.server-response-time.score
总页面大小lighthouseResult.audits.total-byte-weight.numericValue

大部分指标除了 score 之外,还有 numericValue(具体数字)、numericUnit(单位)、displayValue(人类可读的描述,例如「Root document took 170 ms」)可以取用。


用 Excel 建立免代码性能仪表板

  1. 新建 Excel 电子表格,切到 Data 选项卡,点 From Web
  2. 输入自己的 PageSpeed Insights API 网址,点 OK
  3. 在弹出的对话框点 Connect,保持默认(匿名)设置,进入 Query Settings 工具
  4. 依序点开 lighthouseResultcategoriesperformance,筛选出想要的 JSON 层级

[截图:Excel Query Settings 工具里依序点开 JSON 层级的界面]

  1. 右键菜单点 Into Table
  2. 用表格标题的过滤箭头,删掉除了 score 以外的其他字段
  3. Close & Load,电子表格里就会显示实时的性能分数

📌 Google Sheets 不支持 JSON feed(只支持 XML),如果想用类似做法,Excel 是更直接的选择。


用网页做性能仪表板

也可以用一段简单的前端代码(Fetch API + async/await)做一个网页版仪表板:输入网址、选桌面或移动,提交后异步调用 PageSpeed API、拿到 JSON 结果、渲染成汇总表格显示,比标准 Lighthouse 报告看起来更快更直观。核心逻辑:

  1. 表单提交时阻止默认行为、隐藏之前的结果
  2. 从表单数据组出完整的 API 网址
  3. fetch() 调用 API,拿到响应后解析成 JSON 对象,try/catch 包起来确保出错能被捕捉
  4. 把结果对象传给渲染函数,提取需要的属性填进表格
  5. 出错的话在 catch 块处理,重新启用表单让用户能再次测试

进阶:自己开发监控系统

如果想要更长期、更自动化的监控,可以做一个小型应用:定时(比如每天凌晨)用 cron job 调用 PageSpeed Insights API,把结果 JSON 连同测试网址、日期时间存进数据库(多数数据库都支持 JSON,MongoDB 尤其适合这个用途)。服务端应用可以再实现一个自己的 REST API 满足报告需求(比如返回两个日期之间某项指标的变化),前端用 JavaScript 调用来显示图表。💡 如果数据量大、报告逻辑复杂,最好是每天有新数据时就预先算好数字,不要等用户打开报告才现算——不然生成报告可能要等好几分钟。

常见误区

  • ❌ 只靠 Lighthouse 手动跑分,想长期追踪网站性能变化——手动方式容易忘记定期跑测试,改用 PageSpeed Insights API 自动化后就不用担心漏跑
  • ❌ 把 PageSpeed Insights API 的结果当成真实用户体验的唯一依据——这个 API 模拟的是 Google 怎么看网站,如果想了解所有用户在不同设备/网络下的真实体验,应该搭配浏览器性能 API 一起看
  • ❌ 短时间内从同一 IP 高频调用 API 却没有申请 API key——超过免费额度会被限制,需要注册 Google API 密钥才能持续高频测试

Sources

Blog / Website:

  1. 如何使用PageSpeed Insights API来监控页面性能(WBOLT_COM,2023年3月10日) — https://www.wbolt.com/pagespeed-insights-api.html

官方文档:

  1. Get Started with the PageSpeed Insights API — https://developers.google.com/speed/docs/insights/v5/get-started