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.

MetricGoodNeeds improvementPoor
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?

Google classifies a site as "passing" a Core Web Vital when at least 75% of visits meet the Good threshold. Tracking your own p75 directly mirrors that standard.

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.