speedlify2

Lighthouse lab metrics and Chrome UX Report field data for a list of sites, recorded on every run and compared over time.

Measurement runs · Embed a score · Field data from the Chrome UX Report ·

Measurement runs

Every measurement pass, read from the NDJSON run log. When a number looks wrong, the first question is whether that run actually finished — this answers it without shell access to the build machine.

Started Duration Measured Skipped Failed Warnings Form factor Log file
Aug 21, 2026, 5:09 PM UTC 360.8s 10 265 0 0 mobile logs/2026-08-21T17-09-34-285Z.ndjson
Aug 21, 2026, 5:09 PM UTC 119.7s 0 366 6 18 mobile logs/2026-08-21T17-09-27-704Z.ndjson
Aug 21, 2026, 5:09 PM UTC 98s 0 366 5 15 mobile logs/2026-08-21T17-09-24-067Z.ndjson
Aug 21, 2026, 5:09 PM UTC 71.1s 0 348 1 3 mobile logs/2026-08-21T17-09-26-921Z.ndjson
Aug 21, 2026, 4:47 PM UTC 597.6s 7 359 3 12 mobile logs/2026-08-21T16-47-57-162Z.ndjson
Aug 21, 2026, 4:47 PM UTC 326.5s 0 366 10 30 mobile logs/2026-08-21T16-47-57-909Z.ndjson
Aug 21, 2026, 4:47 PM UTC 303.6s 10 255 0 4 mobile logs/2026-08-21T16-47-56-597Z.ndjson
Aug 21, 2026, 4:47 PM UTC 0.1s 0 348 0 0 mobile logs/2026-08-21T16-47-57-168Z.ndjson
Aug 21, 2026, 4:32 PM UTC 855.7s 4 355 16 48 mobile logs/2026-08-21T16-32-38-454Z.ndjson
Aug 21, 2026, 4:32 PM UTC 805s 8 358 12 36 mobile logs/2026-08-21T16-32-34-499Z.ndjson
Aug 21, 2026, 4:32 PM UTC 779.2s 17 239 3 10 mobile logs/2026-08-21T16-32-38-033Z.ndjson
Aug 21, 2026, 4:32 PM UTC 278.7s 0 348 1 3 mobile logs/2026-08-21T16-32-35-686Z.ndjson
Aug 21, 2026, 4:32 PM UTC 0.7s 1 0 0 0 logs/backfill-2026-08-21T16-32-32-936Z.ndjson
Aug 21, 2026, 3:32 PM UTC 1220.5s 18 222 2 8 mobile logs/2026-08-21T15-32-26-757Z.ndjson
Aug 21, 2026, 3:32 PM UTC 354.4s 1 352 10 31 mobile logs/2026-08-21T15-32-26-057Z.ndjson
Aug 21, 2026, 3:32 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-21T15-32-28-030Z.ndjson
Aug 21, 2026, 2:34 PM UTC 850.5s 17 205 3 12 mobile logs/2026-08-21T14-34-19-448Z.ndjson
Aug 21, 2026, 2:34 PM UTC 795.9s 20 343 0 2 mobile logs/2026-08-21T14-34-13-816Z.ndjson
Aug 21, 2026, 2:34 PM UTC 766.4s 20 341 0 2 mobile logs/2026-08-21T14-34-16-342Z.ndjson
Aug 21, 2026, 2:34 PM UTC 557.7s 5 347 15 45 mobile logs/2026-08-21T14-34-15-480Z.ndjson
Aug 21, 2026, 2:34 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-21T14-34-14-023Z.ndjson
Aug 21, 2026, 1:43 PM UTC 762.5s 20 322 0 2 mobile logs/2026-08-21T13-43-59-698Z.ndjson
Aug 21, 2026, 1:43 PM UTC 573.5s 20 324 0 2 mobile logs/2026-08-21T13-43-59-487Z.ndjson
Aug 21, 2026, 1:43 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-21T13-43-56-770Z.ndjson
Aug 21, 2026, 12:43 PM UTC 1120.1s 17 307 3 14 mobile logs/2026-08-21T12-43-48-412Z.ndjson
Aug 21, 2026, 12:43 PM UTC 875.9s 13 334 7 22 mobile logs/2026-08-21T12-43-43-122Z.ndjson
Aug 21, 2026, 12:43 PM UTC 582.7s 20 302 0 1 mobile logs/2026-08-21T12-43-45-226Z.ndjson
Aug 21, 2026, 12:43 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-21T12-43-43-070Z.ndjson
Aug 21, 2026, 11:24 AM UTC 1358.3s 17 285 3 14 mobile logs/2026-08-21T11-24-42-014Z.ndjson
Aug 21, 2026, 11:24 AM UTC 751.7s 5 329 15 45 mobile logs/2026-08-21T11-24-39-475Z.ndjson
Aug 21, 2026, 11:24 AM UTC 658.1s 19 288 1 5 mobile logs/2026-08-21T11-24-38-644Z.ndjson
Aug 21, 2026, 11:24 AM UTC 0s 0 0 0 0 logs/backfill-2026-08-21T11-24-40-320Z.ndjson
Aug 21, 2026, 10:29 AM UTC 1357s 18 311 2 14 mobile logs/2026-08-21T10-29-00-777Z.ndjson
Aug 21, 2026, 10:28 AM UTC 721.3s 18 270 2 7 mobile logs/2026-08-21T10-28-59-106Z.ndjson
Aug 21, 2026, 10:28 AM UTC 603.9s 19 266 1 5 mobile logs/2026-08-21T10-28-58-876Z.ndjson
Aug 21, 2026, 10:28 AM UTC 0s 0 0 0 0 logs/backfill-2026-08-21T10-28-58-352Z.ndjson
Aug 21, 2026, 9:35 AM UTC 890.4s 19 251 1 6 mobile logs/2026-08-21T09-35-33-569Z.ndjson
Aug 21, 2026, 9:35 AM UTC 735.8s 20 291 0 2 mobile logs/2026-08-21T09-35-32-332Z.ndjson
Aug 21, 2026, 9:35 AM UTC 715.1s 16 250 4 12 mobile logs/2026-08-21T09-35-30-590Z.ndjson
Aug 21, 2026, 9:35 AM UTC 0s 0 0 0 0 logs/backfill-2026-08-21T09-35-31-237Z.ndjson
Aug 21, 2026, 8:39 AM UTC 835.2s 16 275 4 13 mobile logs/2026-08-21T08-39-06-237Z.ndjson
Aug 21, 2026, 8:39 AM UTC 617.5s 15 236 5 16 mobile logs/2026-08-21T08-39-07-781Z.ndjson
Aug 21, 2026, 8:39 AM UTC 573.6s 18 232 2 7 mobile logs/2026-08-21T08-39-07-793Z.ndjson
Aug 21, 2026, 8:39 AM UTC 0s 0 0 0 0 logs/backfill-2026-08-21T08-39-06-463Z.ndjson
Aug 21, 2026, 7:41 AM UTC 1161.8s 18 214 2 8 mobile logs/2026-08-21T07-41-22-153Z.ndjson
Aug 21, 2026, 7:41 AM UTC 612.7s 19 256 1 4 mobile logs/2026-08-21T07-41-20-098Z.ndjson
Aug 21, 2026, 7:41 AM UTC 524s 18 218 2 8 mobile logs/2026-08-21T07-41-15-362Z.ndjson
Aug 21, 2026, 7:41 AM UTC 0s 0 0 0 0 logs/backfill-2026-08-21T07-41-20-904Z.ndjson
Aug 21, 2026, 6:43 AM UTC 615.5s 19 195 1 6 mobile logs/2026-08-21T06-43-54-941Z.ndjson
Aug 21, 2026, 6:43 AM UTC 605.2s 18 238 2 10 mobile logs/2026-08-21T06-43-58-654Z.ndjson

Reading the logs

Each run writes a full NDJSON log to logs/<runId>.ndjson, one JSON object per line, plus a summary line appended to logs/runs.ndjson. Both are greppable:

# Every warning and error across all runs
grep -h '"level":"warn"\|"level":"error"' logs/*.ndjson | jq .

# What happened to one site in one run
jq 'select(.data.url == "https://example.com/")' logs/2026-01-01*.ndjson

# Run history at a glance
npx speedlify runs