Website Health
Experience Pulse: Core Web Vitals in Plain Language (2026)
Experience Pulse turns LCP, INP, and CLS from real visits into a short read: loading speed, interaction, and layout stability. Learn what the numbers mean and what to fix first.
Written by
Ayodele S. Adebayo
Founder, Sabilytics
Experience Pulse is Sabilytics' name for Core Web Vitals shown next to today's traffic story: how fast the page loaded, how quickly it responded to taps, and whether the layout jumped around.
Traffic tells you whether people came. Experience tells you whether the visit felt usable. A quiet day with a broken layout is a different problem from a busy day that still feels slow.
This guide explains LCP, INP, and CLS in builder language, the thresholds Sabilytics uses, and what to do when a pulse says a metric slipped.
Traffic is only half the story
You can "win" a launch on pageviews and still lose people on the page:
- The hero image loads late, so the headline appears after they have already bounced
- The first button they tap does nothing for a beat, so they tap again
- A cookie banner or webfont shoves the content down after they start reading
None of that shows up as "visitors." It shows up as how the visit felt. Experience Pulse puts those three feelings in the same dashboard as the story, using data from real visits (field data), not only a lab run on your laptop.
The three vitals, without the jargon
Sabilytics tracks the three Core Web Vitals Google uses for experience:
Loading speed (LCP)
Largest Contentful Paint. How long until the main content (usually a big image or heading) is visible.
In the dashboard it is labeled Loading speed. Times are in milliseconds or seconds.
- Good: under 2.5 seconds
- Needs work: 2.5s to 4s
- Poor: over 4 seconds
If LCP is weak, people wait on a blank or incomplete screen. Fix the largest hero, fonts, and anything that blocks first render.
Interaction (INP)
Interaction to Next Paint. How long after a click or tap until the page actually paints a response.
Labeled Interaction.
- Good: under 200 milliseconds
- Needs work: 200ms to 500ms
- Poor: over 500 milliseconds
If INP is weak, the site feels janky: menus, buttons, and filters lag. Heavy main-thread JavaScript is the usual suspect.
Layout stability (CLS)
Cumulative Layout Shift. How much visible content moved unexpectedly while loading.
Labeled Layout stability. This one is a score, not a time.
- Good: under 0.1
- Needs work: 0.1 to 0.25
- Poor: over 0.25
If CLS is weak, people tap the wrong thing, lose their place, or bounce. Reserve space for images, ads, and banners. Load fonts in a way that does not restyle the whole paragraph after the fact.
These thresholds match the common Core Web Vitals guidance Sabilytics uses when it rates a sample as good, needs improvement, or poor. The pulse also shows what share of samples were good, not only the average.
Field data vs a one-off audit
A Lighthouse run on your machine is a lab test. It is useful, and it is not your users.
Experience Pulse uses web vital events from real sessions on the snippet: different devices, networks, and pages. Averages can hide a bad page. When something slips, open the pages that contribute and fix those routes first.
Lab tests still help after you pick a suspect page. The pulse tells you which feeling broke in the wild.
How to read a pulse in the morning
Keep it next to Today's Standup, not in a separate "perf" tab you never open.
- If all three are excellent, do not hunt for a 10ms win. Ship product.
- If one metric needs attention, read the page and device the pulse names first.
- Open What this usually means for a short explanation, then copy the prompt into your coding agent. Use View performance for the page, and Standup for what to check today.
- If loading is poor, look at image weight, hero media, and blocking scripts on the affected path.
- If interaction is poor, look at third-party tags, huge bundles, and click handlers that do too much on the main thread.
- If layout stability is poor, look at images without dimensions, late-injected UI, and font swaps.
You do not need to become a performance engineer. You need a bias: one vital, one page, one change.
Common causes (and boring fixes)
LCP
- Uncompressed or oversized hero images
- Background video or carousels before text
- Slow fonts hiding the heading
- Client-side rendering with an empty shell
INP
- Analytics, chat, and A/B scripts all on the critical path
- Giant client components for a mostly static page
- Click handlers that do layout work synchronously
CLS
- Images and embeds without width and height (or aspect-ratio)
- Banners inserted above content after load
- Web fonts that swap late and change line wraps
None of these require a new architecture. Most need a specific file and a deploy.
Common myths
"We have lots of traffic, so experience can wait."
Traffic without a usable page is a leak. The pulse exists so "later" has a number.
"Core Web Vitals are only for SEO."
They affect how search may treat experience, and they affect humans regardless. Put them next to analytics because both describe the visit.
"A perfect Lighthouse score means we are done."
Lab green, field red is common (slow phones, far regions, cache-cold visits). Trust the pulse for "how did real visits feel?"
"I should chase all three at once."
Fix the worst one on the worst page. Mixed campaigns stall.
"This replaces Search or AI Discoverability."
No. Slow pages can still be crawlable. Fast pages can still block robots. Run Search Discoverability and AI Discoverability as separate checks.
Frequently asked questions
Why "Pulse" instead of "Web Vitals"?
Vitals are the measurements. Pulse is the product habit: a short status beside the story, with detail when you want the numbers. Same data, less dashboard archaeology.
Do you need the snippet for this?
Yes. LCP, INP, and CLS in Sabilytics come from real visits collected by the tracking snippet, not from a public URL scan.
What if I have too little traffic?
Averages over a handful of samples swing. Use the pulse as a hint, confirm on the page yourself, and wait for more visits before treating a 0.02 CLS change as a crisis.
City-level performance maps?
Sabilytics stays privacy-first: country-level location, no fingerprinting theater. You still get vitals by page and overall pulse. You do not get a surveillance map of a visitor's neighborhood.
Where should I start if everything looks "needs attention"?
Largest Contentful Paint on the homepage or your highest-traffic template. Make the main heading or image show up sooner. Re-check after a day of real visits.
Put experience next to the story
You already ask "did anyone come?" Ask "how did it feel?" in the same visit to the dashboard.
Install Sabilytics, browse your own site once, and let Experience Pulse fill in from real vitals. When you are ready, open your dashboard and read loading, interaction, and layout stability next to today.