iwek / psi

PageSpeed Insights for Node - with reporting

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

psi Dependency Status devDependency Status Build Status

PageSpeed Insights With Reporting

Run mobile and desktop performance tests for your deployed site using Google PageSpeed Insights with tidy reporting for your build process. A sample Gulpfile demonstrating use is also available.

Uses gpagespeed and the reporter in grunt-pagespeed.

Install

$ npm install --save psi

Preview

preview

Usage

When using this module for a production-level build process, registering for an API key from the Google Developer Console is recommended.

var psi = require('psi');

psi({
	// key: '...', optional
	url: 'http://html5rocks.com',
	paths: '',           // optional
	locale: 'en_GB',     // optional
	strategy: 'mobile',  // optional
	threshold: 80        // optional
});

Optionally, a callback is also available with access to the response:

psi(options, function (err, data) {
	console.log(data.score);
	console.log(data.pageStats);
});

Options

url

Required
Type: string

URL of the page for which the PageSpeed Insights API should generate results.

locale

Type: string
Default: en_US

The locale that results should be generated in (e.g 'en_GB').

strategy

Type: string
Default: desktop

The strategy to use when analyzing the page. Valid values are desktop and mobile.

threshold

Type: number
Default: 70

Threshold score that is needed to pass the pagespeed test

paths

Type: array

An array of URL paths that are appended to the URL

key

Type: string
Default: nokey

Google API Key

Unless Specified defaults to use the free tier on PageSpeed Insights. Good for getting a feel for how well this tool works for you.

CLI support

You will probably want to globally install psi if using as a CLI. This can be done as follows:

$ npm install --global psi

You can then casually use it with your key:

$ psi http://www.google.com --key 'YOUR_KEY_GOES_HERE'

Similar to gpagespeed, the following optional flags are also supported:

$ psi <url> --key=<key> --prettyprint=<true> --userIp=<userIp> --locale=<locale> --strategy=<desktop|mobile>
$ psi http://www.html5rocks.com --strategy=mobile

Getting PSI into your build

A sample Gulp project using PSI is available.

If you use Grunt, grunt-pagespeed is a task by James Cryer that uses PSI under the hood.

For testing local project, we recommend using ngrok.

License

Apache 2.0
Copyright 2014 Google Inc

About

PageSpeed Insights for Node - with reporting

License:Apache License 2.0