Web Vitals
Real-user LCP, FCP, CLS, INP, and TTFB collected automatically by the tracker and aggregated at the 75th percentile.
Metrics collected
The tracker uses the web-vitals library to measure performance from real visitor sessions. Metrics are reported after each one stabilises (typically on page hide or unload). No configuration is needed — collection is on by default. FID is deprecated and not collected; INP is its replacement.
- LCP — Largest Contentful Paint: time until the largest visible element renders
- FCP — First Contentful Paint: time until the first text or image appears
- INP — Interaction to Next Paint: responsiveness to user input
- CLS — Cumulative Layout Shift: visual stability score
- TTFB — Time to First Byte: server response time
Thresholds
Produl uses the same thresholds as Google's Core Web Vitals programme. Each metric is classified as Good, Needs improvement, or Poor. See the concepts page for a deeper explanation of why these values matter.
| Metric | Good | Needs improvement | Poor |
|---|---|---|---|
| LCP | ≤ 2.5 s | ≤ 4.0 s | > 4.0 s |
| FCP | ≤ 1.8 s | ≤ 3.0 s | > 3.0 s |
| INP | ≤ 200 ms | ≤ 500 ms | > 500 ms |
| CLS | ≤ 0.1 | ≤ 0.25 | > 0.25 |
| TTFB | ≤ 800 ms | ≤ 1.8 s | > 1.8 s |
p75 aggregation
All vitals are reported as the 75th percentile of real measurements over the selected date range. p75 is the industry standard — it captures a representative "most users" experience without being skewed by extreme outliers. You can see p75 values broken down per page path to identify which routes need the most attention.
Why p75?
Dashboard views
The Web Vitals tab shows three views: a score card with the p75 value and classification for each metric, a time-series chart of p75 over the selected range, and a per-page breakdown ranked by any metric. Use the per-page view to find problem pages and correlate regressions with deploy annotations.