There are dozens of performance tools and beginners usually start with the wrong one — a score in a browser tab that has nothing to do with what their visitors experience. Here is the short list, in the order you should actually use them.
Everything below reports against the same targets, measured at the 75th percentile of real page loads: Largest Contentful Paint at or under 2.5 seconds, Interaction to Next Paint at or under 200 milliseconds, Cumulative Layout Shift at or under 0.1. INP replaced First Input Delay in March 2024, so any tutorial still talking about FID predates the current standard.
It is free, needs no install, and it shows two things side by side: lab results from a simulated run, and field data from the Chrome User Experience Report — real Chrome users on your URL over a rolling 28-day window. Read the field data first. If the field section is missing, your page does not get enough traffic to be sampled, and you fall back to lab numbers with the caveat that they are a simulation.
Lighthouse inside Chrome DevTools is the same engine as PageSpeed Insights running locally. Two settings turn it from decorative into useful: CPU throttling at 4x and network throttling to Slow 4G. An unthrottled run on a developer laptop over fibre will always look good and will always be wrong. The Performance panel next to it shows the actual main-thread timeline — which script blocked which frame — and that is where the fix usually is.
WebPageTest runs your page on real devices in real locations with real connections and gives you a waterfall, a filmstrip and a connection view. Use it when you need to answer "why is this slow in Australia on a mid-range Android" rather than "is this slow". The filmstrip alone settles most arguments about perceived speed.
Lab tools test one load on one machine. The web-vitals JavaScript library is about a kilobyte and reports LCP, INP and CLS from actual visits to wherever you send them — an analytics endpoint, a log, anywhere. Ten minutes of setup, and from then on you are optimising against your visitors rather than against a synthetic run.
npx unlighthouse --site https://example.com crawls your site and runs Lighthouse across every page, then gives you a sortable dashboard. This is how you find the one template that is dragging down a hundred URLs, which single-page testing will never surface.
PageSpeed Insights to see whether there is a real problem, DevTools with throttling on to find where the time goes, one fix, then re-measure. Add web-vitals so you know whether the fix reached users, and unlighthouse once a month to catch new pages. Ignore the score itself — the score is a weighted average, and moving it from 78 to 84 by shaving an unused polyfill helps nobody if LCP did not move.