Web Performance Tools Worth Adding to Your Stack

Updated 2026-04-06|SPUNK13 LLC|spunk.bet

This is the working stack for teams past the "run Lighthouse and hope" stage: continuous measurement in CI, real-user data from production, and bundle analysis that tells you what to delete. Every tool named here is free or has a usable free tier.

Lighthouse CI, with assertions that fail the build

Lighthouse as a score in a browser tab is decorative. Lighthouse CI with a lighthouserc.json that asserts specific budgets is a guardrail: set maximum numeric values for largest-contentful-paint, total-byte-weight and unused-javascript, run it against a preview deploy on every pull request, and the conversation about a regression happens before the merge instead of a month later.

Unlighthouse for site-wide coverage

npx unlighthouse --site https://example.com crawls the site, runs Lighthouse against every page it finds, and gives you a sortable dashboard. Single-page auditing finds the problem on the page you thought to check; this finds the template dragging down two hundred URLs.

web-vitals with attribution

The web-vitals library reports LCP, INP and CLS from real visits, and its attribution build tells you why: the LCP element's selector, the CLS-causing element, and for INP the interaction target and the long animation frame responsible. Send it to whatever you already have — an analytics endpoint, a logging pipeline, a table in your own database. Lab tools rank causes; field data ranks impact.

CrUX for the outside view

The Chrome UX Report API gives you the same field data Google uses, aggregated over a 28-day rolling window, for your origin and for any public competitor. Two things it is good for: sanity-checking your own RUM pipeline against an independent source, and settling an internal argument about whether your site is slow relative to the sites your users compare it to.

Bundle analysis that leads to deletions

source-map-explorer dist/*.js attributes every byte of a production bundle back to a source file via the source map, which makes it honest about what actually shipped. rollup-plugin-visualizer does the same inside a Vite or Rollup build. Pair either with the Coverage panel in DevTools, which shows how much of the shipped code executed on a real page load — the intersection of "large" and "never executed" is your deletion list.

WebPageTest when you need the truth about a device

Real devices, real networks, real locations, with a filmstrip and a connection view. Reach for it when the question is "why is this slow on a mid-range Android in another continent", which no simulated throttle answers convincingly.

How to wire them together

Lighthouse CI blocking pull requests on budgets. Unlighthouse on a weekly schedule so new pages get caught. web-vitals streaming from production continuously. Bundle analysis run manually whenever a budget assertion starts failing. That is four tools, no licences, and it covers regression prevention, discovery, real impact and root cause without anyone needing to remember to check a dashboard.

Part of the SPUNK13 network

Visit spunk.bet400+ Free ToolsFree Casino
Dev ToolsCasinoMemesPredictionsNFT ArtOrdinalsEbooksAdvertise