Detection
Detection

Web Vitals Regression Alerts: An Issue When Pages Get Slower for Real Users

By Sazabi Team

Last verified on Nov 10, 2026.

What it catches

A page can get worse without anything failing. No exception, no failed request, no failed health check. A script is added, an image grows, a render path blocks. The page loads, but a visitor on a mid-range phone waits longer, taps and nothing happens, or watches the layout move under their thumb.

Web vitals regression asks whether the page-load and interaction timings your visitors record have moved against what is usual for that page. Think of the headline measurements: how long the main content takes to appear, how long the page takes to respond to a tap, how much the layout shifts. The signal works on whatever timing events your app logs.

Where it points:

  • A new third-party tag blocks the main thread on one route.
  • A hero image or font change slows the first paint.
  • A framework upgrade makes a handler slow on touch devices.
  • A feature flag turns on a heavy widget for a share of users.
  • A data change makes a list render with many more rows.

Example: interaction latency doubles on one page

This is an example, not output from a real project. Your web app sends a timing event after each interaction on the pricing page. On a normal day the p75 is about the same across releases:

2026-11-08T11:15:03Z INFO web interaction_timing route=/pricing target=plan-toggle duration_ms=96 device=mobile release=2026.11.07
2026-11-08T12:22:41Z INFO web interaction_timing route=/pricing target=plan-toggle duration_ms=410 device=mobile release=2026.11.08
2026-11-08T12:24:10Z INFO web interaction_timing route=/pricing target=plan-toggle duration_ms=388 device=mobile release=2026.11.08

After a release the plan toggle is several times slower for mobile visitors. Sazabi opens an issue. An example of the contents:

  • Name: Plan toggle interactions slower on /pricing after release 2026.11.08
  • Description: Interaction timings on /pricing are well above their usual level, on mobile only. The change starts with the first events from release 2026.11.08.
  • Severity: medium

The release field in the events is what turns "the page feels slow" into a version to look at.

How Sazabi sets it up

The Sazabi agent sets up sensors for your project and maintains them over time. For this signal it reads your logs, finds the page-load and interaction timing events, and writes a question such as: "Tell me when the 75th percentile interaction time on a route goes well above its usual level."

Each route is judged on its own, so a regression on one page stands out from the others. You set nothing up: the agent writes, backtests and maintains the sensors, and keeps them current as your pages change.

A firing records a signal and starts an investigation, and an issue opens when the slowdown is real.

What you see and how you get told

The issue names the route, the timing that moved and what changed alongside it, such as a release or a device type. Follow up in the thread, or run sazabi issues agent-prompt to give the work to a coding agent. Issue triggered lands in the in-app feed, and a delivery rule can send it to a shared Slack or Microsoft Teams channel for the frontend team. sazabi signals list --type sensor lists the underlying firings.

What you need

Timing events from your frontend. Sazabi's browser and app telemetry covers errors and sessions, and it does not collect page timings by itself, so your code has to log them. Send them with the route, a device class and your release, then connect them through OpenTelemetry or another source. For the glossary background, see latency percentiles.

What it does not cover

  • Timings your app never sends.
  • Lab and scripted tests of a page.
  • Page crashes and script errors. Those are client errors and appear under frontend breakage.
  • Search ranking effects of slower pages.

If you want the measurement side done by hand, the guide to web vitals monitoring walks through it. Issues are metered; see pricing.

What Sazabi detects today

There are no monitors or alert rules to write: the Sazabi agent automatically sets up sensors for your project and maintains them over time. Sazabi opens an issue when one fires.

  • Web vitals regression: Page load and responsiveness get worse. Example: Interaction latency doubles on one page.

Frequently Asked Questions

Does Sazabi measure page speed itself?

No. This signal reads timing events that your app sends as logs. The agent writes the check for whichever page-load and interaction timings it finds. If no timings reach Sazabi, there is nothing for it to compare.

Is this a replacement for a lab test or a synthetic run?

No. Those measure one device and network. This signal compares what your real visitors recorded after a change with what they recorded before.

Which pages does it watch?

Each page or route the timings name. Each route is judged on its own, so a regression on one page does not hide in a site-wide number.

Will a slow Monday morning fire it?

No. A timing has to move far outside its normal pattern, so a regular busy Monday morning does not open an issue.

Sources

  1. Issue contents, severity levels, recurrence handling, response actions (accessed Nov 8, 2026)
  2. Issue triggered notification, delivery rules by severity, component and owning team (accessed Nov 8, 2026)
  3. Signals and managed investigation, issues arrive already investigated (accessed Nov 8, 2026)
  4. sazabi signals list with the sensor type filter (accessed Nov 8, 2026)