A Node.js command line tool that crawls a domain and gathers lighthouse performance data for every page.
A Node.js command line tool that crawls a domain and gathers lighthouse performance data for every page.
A Node.js command line tool that crawls a domain and compiles a report with lighthouse performance data for every page.
There are great tools for doing performance analysis on a single web page. We use Lighthouse and WebPageTest for this all the time. But what if you want to evaluate the performance characteristics of an entire site? It is tedious to manually run a report for each page and then the output is a jumble of individual reports that have to be analyzed one-by-one. This tool was created to solve this problem.
With a single command, the tool will crawl an entire site, run a Lighthouse report for each page, and then output a spreadsheet with the aggregated data. There is an example of the generated spreadsheet in the examples/ directory of this project. Each row in the spreadsheet is a page on the site, and each individual performance metric is a column. This makes it very easy to perform high-level analysis because you can sort the rows by whichever metric you are analyzing. This immediately shows the best and worst performing pages. In the following example, the rows are sorted by first contentful paint.
It is also easy to graph data in this format. The following example is a histogram showing a problematic distribution of largest contentful paint scores.
(Check to make sure you are using Node 18+)
$ npx lighthouse-parade [dataDirectory] [options]Ex: npx lighthouse-parade http://www.dfwfreeways.com/
Runs a crawler on the provided URL. Discovers all URLs and runs a lighthouse report on each HTML page, then writes them to a CSV file located in ./lighthouse-parade-data//urls.csv. The individual reports are written to ./lighthouse-parade-data//reports/. At the end, each report file is bundled into one aggregated report CSV with each row representing a URL and each column is a metric.
…After running a scan, you can import your aggregated report data into this Google Sheet template, which includes the following features:
To use this template, it is important to follow these instructions very carefully when importing:
Users running virtualized x64 versions of Node on Macs with M1 chips may see anomalous results. For best results on an M1 chip, ensure you are running the native arm version of Node 16+.
When you run the command node -p process.arch you should see arm64. If you see x86, try uninstalling and reinstalling Node. More details here.
No open issues yet, or sync has not completed.