Last updated · 2026-08-31
04 · In practice
Fast is a feeling.Measure it anyway.
juuna measures Core Web Vitals, LCP, CLS, INP, FCP and TTFB, in your real visitors’ browsers and tracks them as daily p75s with a per-page breakdown, stored and served entirely from your own dedicated instance.


I
The measurement
How are Web Vitals measured?
The browser measures itself. The SDK listens with the platform’s own PerformanceObserver, accumulates layout shift with the standard session-windows rule, estimates INP the way the metric is defined, and sends one compact event per page load, when the page is first hidden. A metric that never happened is omitted rather than zeroed: a visit with no interaction reports no INP at all.
Each visit is rated against Google’s published thresholds, and the dashboard reports the p75, the same statistic Google’s field tooling reports, so your numbers and Search Console argue about the same quantity.
The capture rides in the same 1.9 KB extras file as click and scroll tracking, loaded from your own instance once you switch it on. No third-party performance service sees your traffic, and no measurement library is added to your bundle.
II
The dashboard
What does the vitals view show?
Three layers. Five p75 cards, one per metric, each with the split of good, needs-improvement and poor visits behind it. A daily p75 trend, which is where a regression shows up the day a deploy causes it. And a per-page table, slowest LCP first, with each page’s p75 LCP, INP and CLS set beside how many loads it carries, so the effort goes where the traffic is.
That last column is the point. A slow page with real traffic outranks a slower page nobody visits, and the table keeps both facts in the same line of sight.
III
Field and lab
Do I still need Lighthouse?
Yes, for what it is for. Lighthouse and similar lab tools run one synthetic load on one simulated device, which is exactly what you want while fixing a page and watching a number move. Field data answers the other question: what the fleet of real visitors, on real devices and networks, actually experienced. The two disagree routinely, and both are right.
Field numbers also need traffic to be stable. On a page with a handful of loads a day, the p75 will wander; read the trend rather than a single day, and trust the busy pages first.
IV
The thresholds
The five metrics, rated
- LCP · largest contentful paint
- Good: 2.5 s or under
- Poor: over 4.0 s
- INP · interaction to next paint
- Good: 200 ms or under
- Poor: over 500 ms
- CLS · cumulative layout shift
- Good: 0.1 or under
- Poor: over 0.25
- FCP · first contentful paint
- Good: 1.8 s or under
- Poor: over 3.0 s
- TTFB · time to first byte
- Good: 0.8 s or under
- Poor: over 1.8 s
Google’s published thresholds. Between the two figures is rated needs improvement. juuna rates each visit on these and reports the p75.
§
Asked and answered
- What is a good LCP score?
- 2.5 seconds or under at the 75th percentile is rated good, and over 4 seconds is poor. juuna rates every real visit on those thresholds and tracks the daily p75 per page, which is the number worth improving.
- Why do my numbers differ from Lighthouse?
- Lighthouse is a lab: one synthetic load, one simulated device, one network profile. juuna reports the field: the p75 of what real visitors experienced. A page can pass in the lab and fail in the field, usually on slower devices than the lab simulates. Both numbers are true; they answer different questions.
- Does measuring Web Vitals slow the site down?
- The observers are the browser’s own and cost close to nothing. Capture ships in a 1.9 KB extras file served from your instance, and the summary is sent once per page load, when the page is first hidden.
- Which pages should I fix first?
- The per-page table sorts by slowest LCP and shows each page’s load count beside its p75s. Start where slow meets busy; a poor score on a page nobody visits can wait.
Keep reading
Heatmaps · Replace your analytics stack · juuna vs Google Analytics · juuna vs PostHog · The integration docs · Pricing
Know how fast it actually feels.
Flat plans, everything included; every paid plan is a dedicated instance of your own.