Web Vitals & RUM
Speed insights on managed.dev come from real-user monitoring (RUM) — the page load times your actual visitors experience, not a synthetic probe in a lab. Every environment collects them automatically, so you see how production feels to people on real devices and networks, and how a branch compares before you ship it.
What’s measured
Section titled “What’s measured”managed.dev tracks the Core Web Vitals plus request-side latency:
- LCP (Largest Contentful Paint) — when the main content becomes visible.
- CLS (Cumulative Layout Shift) — how much the layout jumps as it loads.
- INP (Interaction to Next Paint) — how quickly the page responds to input.
- TTFB (Time to First Byte) — server-side responsiveness, where caching and the runtime do their work.
p95latency — the slow-tail server response time, reported alongside the median.
Reading the page
Section titled “Reading the page”Open an environment in the dashboard and go to Insights → Performance. You get a trend over your selected window plus a per-page table, so you can sort by the worst offenders rather than guessing.
A useful way to work through it:
- Start with the vitals summary to see whether LCP, CLS, and INP sit in the good band overall.
- Switch to the per-page breakdown and sort by
p95. A single slow template often drags the whole site’s numbers down. - Pick the worst page and open its traces to see where the time goes — a slow database query, an uncached fragment, a third-party call. See Traces.
Catching regressions before they ship
Section titled “Catching regressions before they ship”This is where first-class environments pay off. Because a preview environment emits the same RUM data as production, you can compare them directly.
- Push the branch —
git push managed feature/new-heroprovisions a preview environment with its own telemetry. - Drive some real traffic at the preview URL (your QA pass, a Lighthouse run, a shared review link).
- Open the preview’s Performance tab and compare LCP and
p95against production for the same pages. - If the new hero image pushed LCP from the good band into the poor band, you see it on the branch — and fix it before promoting.
Most TTFB regressions trace back to the runtime and cache layer rather than the front end. The FrankenPHP runtime, page cache, and persistent object cache are tuned to keep server response low — see the FrankenPHP runtime for how those fit together.