CLI 🖥 + API for Google PageSpeed Insights
PageSpeed Insights (PSI) reports on the performance of a page on both mobile and desktop devices, and provides suggestions on how that page may be improved.
PSI provides both lab and field data about a page. Lab data is useful for debugging performance issues, as it is collected in a controlled environment. However, it may not capture real-world bottlenecks. Field data is useful for capturing true, real-world user experience - but has a more limited set of metrics.
PyPSI
uses PageSpeed Insights API v5
pip install PythonPSI
psi <SITE_URL> <OPTION1> <OPTION2> ...
Example:
$ psi developers.google.com --category seo --strategy desktop --locale en
{
"captchaResult": "CAPTCHA_NOT_NEEDED",
"kind": "pagespeedonline#result",
"id": "https://developers.google.com/",
"loadingExperience": {
...
},
"originLoadingExperience": {
...
},
"lighthouseResult": {
...
},
"analysisUTCTimestamp": {
...
}
$ psi --help
Usage: psi [OPTIONS] URL
Options:
--api_key TEXT Required to use the API in an automated way and make
multiple requests per second
--category TEXT A Lighthouse category to run; if none are given, only
Performance category will be run
--metrics TEXT Returns metrics of a particular field in response
object
--locale TEXT The locale used to localize formatted results
--strategy TEXT The analysis strategy (desktop or mobile) to use, and
desktop is the default
--threshold TEXT Threshold score to pass the PageSpeed test. Useful for
setting a performance budget.
--links TEXT If passed adds links with more info about
opportunities. Useful for checking documentation about
opportunities.
--utm_campaign TEXT Campaign name for analytics.
--utm_source TEXT Campaign source for analytics.
--captcha_token TEXT The captcha token passed when filling out a captcha.
--help Show this message and exit.
from PythonPSI.api import PSI
PSI('google.com', category='seo', locale='en', strategy='desktop')
# Returns JSON output
-
PSI
- Required arguments: 1, Optional arguments: 9URL
:- Required
- Default: None
api_key
:- Optional
- Default: None
category
:- Optional
- Default: performance
- Options:
accessibility
,best_practices
,performance
,pwa
,seo
metrics
:- Optional
- Default: None
- Options:
kind
,captchaResult
,id
,loadingExperience
,originLoadingExperience
,analysisUTCTimestamp
,lighthouseResult
,version
locale
:- Optional
- Default: en
strategy
:- Optional
- Default: desktop
- Options:
desktop
,mobile
threshold
:- Optional
- Default: None
- Options:
INT
0-100
links
:- Optional
- Default: false
- Options:
true
,false
utm_campaign
:- optional
- Default: None
utm_source
:- Optional
- Default: None
captcha_token
:- Optional
- Default: None