MonSPHERE

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:

MetricMeasuresGoodPoor
LCP — Largest Contentful PaintWhen the main content appears≤ 2.5 s> 4 s
CLS — Cumulative Layout ShiftHow much the layout jumps around≤ 0.1> 0.25
FCP — First Contentful PaintWhen anything first renders≤ 1.8 s> 3 s
TTFB — Time to First ByteServer response time≤ 800 ms> 1.8 s
TBT — Total Blocking TimeMain-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.