Web Vitals
The Web Vitals and the other metric pages fastmon has, what they measure, and how they are rated.
Web Vitals are Google's standard metrics for how fast and stable a page feels, measured here in your real visitors' browsers. This page lists them and the other metric pages in fastmon.
The five metrics
LCP, INP, and CLS are the Core Web Vitals Google uses for ranking. FCP and TTFB help you find out why LCP is slow.
| Metric | What it measures | Good (p75) |
|---|---|---|
| LCP, Largest Contentful Paint | Time until the largest visible element renders. | ≤ 2,500 ms |
| INP, Interaction to Next Paint | Worst-case latency from user interaction to next paint. | ≤ 200 ms |
| CLS, Cumulative Layout Shift | Sum of unexpected visual shifts during the page's life. | ≤ 0.1 |
| FCP, First Contentful Paint | Time until the first text or image appears. | ≤ 1,800 ms |
| TTFB, Time to First Byte | Time until the first response byte arrives. | ≤ 800 ms |
Other metric pages
Five more pages share the layout of the LCP page: the value with its trend, the pageviews by rating, a summary, the history beside the distribution, and where the metric is worst.
| Page | Sidebar | Good (p75) | Poor (p75) |
|---|---|---|---|
| TBT | Performance → TBT | ≤ 200 ms | > 600 ms |
| Page load time | Performance → Page load | not rated | not rated |
| DNS lookup | Network → DNS | ≤ 60 ms | > 100 ms |
| TCP connect | Network → Connect | ≤ 200 ms | > 600 ms |
| Transfer size | Network → Transfer size | not rated | not rated |
- DNS and connect count only pageviews that did a lookup (
performed_dns_lookup) or opened a new connection (new_tcp_connection). The summary gives the unrated share that skipped the lookup or reused a connection. - TBT lists the scripts in long animation frames over 50 ms, as the INP page does.
- Transfer size splits the weight by resource type and lists the third-party domains.
Every rating comes from GET /metric-thresholds.
How to read a percentile
Web Vitals are reported at the 75th percentile: 75 % of the pageviews in the window had a better value, 25 % a worse one. If your LCP at p75 is 2,400 ms, the slowest quarter of your traffic waits at least that long.
How fastmon collects them
The tracker reads the same browser APIs as the web-vitals library: PerformanceObserver entries, Navigation Timing for TTFB, and the browser's attribution data for INP. Each value is final at its own moment, usually when the page is hidden, and travels in a few beacons per pageview. See The RUM Beacon.
Where they show up in the product
- Performance dashboard: p50/p75/p95 for every metric, sliceable by URL, device, country, and release.
- Experience Score: LCP, INP, CLS, FCP, TTFB, and the first-party error rate as one 0–10 number. See Experience Score.
- Notification rules: alert when a metric crosses a threshold or worsens against the previous window.
- Analytics API: query any metric programmatically. See the Analytics endpoints.
What's next
- Start with LCP, then INP, which often regresses when a fix for LCP adds JavaScript.
- For one number to track over time, see Experience Score.