Monitoring
Core Web Vitals Monitoring
Load your page in a real browser on a schedule and track LCP, CLS, FCP, TTFB and TBT over time — get alerted when LCP or CLS cross Google's thresholds.
A Core Web Vitals monitor loads your page in a real headless browser on every check and measures the metrics Google's ranking weighs, straight from the page's own Performance APIs:
| Metric | Measures | Good | Poor |
|---|---|---|---|
| LCP — Largest Contentful Paint | When the main content appears | ≤ 2.5 s | > 4 s |
| CLS — Cumulative Layout Shift | How much the layout jumps around | ≤ 0.1 | > 0.25 |
| FCP — First Contentful Paint | When anything first renders | ≤ 1.8 s | > 3 s |
| TTFB — Time to First Byte | Server response time | ≤ 800 ms | > 1.8 s |
| TBT — Total Blocking Time | Main-thread blocking after first paint | ≤ 200 ms | > 600 ms |
About INP: Interaction to Next Paint needs real user input (a tap, a click, a key press), so no scheduled lab check can measure it. As in Lighthouse, TBT is reported as its lab proxy. These are lab measurements from a single location on a cold load — they complement, not replace, real-user field data.
Availability
Requires a plan with Core Web Vitals Monitoring (Professional and above) — every check runs a full browser page load.
How it works
curl -X POST https://api.monsphere.com/api/v1/organizations/{orgId}/monitors \
-H "X-Api-Key: msph_live_..." -H "Content-Type: application/json" \
-d '{
"name": "Homepage Web Vitals",
"type": "core-web-vitals",
"target": "https://example.com",
"intervalSeconds": 900,
"config": { "webVitalsLcpThresholdMs": 2500, "webVitalsClsThreshold": 0.1 }
}'- The monitor goes down when LCP or CLS is worse than its threshold (or the page doesn't load at all), and the message says exactly which one — e.g.
LCP 4210ms exceeds 2500ms. webVitalsLcpThresholdMs/webVitalsClsThreshold— optional. Left out, they default to Google's "poor" boundaries (4000 ms / 0.25). A negative value disables that threshold: the metric is still recorded and charted, it just never alerts.- Checks run at most every 5 minutes. FCP, TTFB and TBT are always recorded and charted alongside LCP and CLS.
How it runs
The page is loaded in a sandboxed headless Chromium, with the same network guard every browser-based check uses (it can't reach private or internal addresses). Metrics are read a few seconds after the load event, so late-loading hero images and font swaps are counted. There's no region to pick — checks run from the central worker.
Bot protection and error pages: if the site serves a bot-protection challenge (such as Cloudflare's "Just a moment...") or the page returns an HTTP error status, the page isn't measured — the monitor goes down and says why, instead of recording results for the challenge or error page. Allowlist MonSPHERE's checks in your bot protection, or monitor a page that isn't behind it.