← All articles

September 29, 2026 · Muhammad Umar · More by Muhammad Umar

Soft Navigations Arrive in Chrome: What Changes for SPA Storefronts

Chrome 151-154 finally measure Core Web Vitals across client-side transitions in SPA storefronts. Here's what changed, and what's still unresolved.

For years, Core Web Vitals had a blind spot: single-page-application storefronts. LCP, INP, and CLS were built around full-page loads, but Hydrogen storefronts, headless React or Vue frontends, and heavily templated themes with client-side routing don't reload the page when a user moves between it — they just repaint it. Any experience produced by those "soft navigations" was invisible to per-page field measurement. As of Chrome 151, that's no longer entirely true.

Chrome's own definition draws a specific, three-part boundary: a soft navigation only counts when it's triggered by a user interaction, it produces a visible URL change, and it produces a visible paint. That boundary is now standardized in the browser rather than left to each framework's own router, so measurement is consistent whether the app uses React Router, Vue Router, or Hydrogen's own routing.

To support it, Chrome ships two new performance entries. A soft-navigation entry carries a navigationId, the new URL, and the triggering interactionId. An interaction-contentful-paint entry is used to compute LCP for the soft navigation itself, since the standard largest-contentful-paint entry only ever fires once, for the initial hard load. Sites can listen for both directly through PerformanceObserver. If a storefront already uses the official web-vitals JavaScript library, most of this is handled already: v6.0.0 added built-in support for resetting FCP, LCP, INP, and CLS at each soft-navigation boundary, so per-transition metrics on a SPA start to look like per-page metrics on a conventional multi-page site.

DevTools support arrived in stages. Soft-navigation markers first appeared in Performance traces in Chrome 145. Live Metrics and full trace-view support landed in Chrome 152. The Insights panel — the last piece — shipped in Chrome 153/154, confirmed in Chrome's September 22, 2026 DevTools recap, completing end-to-end support in the Performance panel.

What this isn't

It's worth being precise about scope. This is a measurement-plumbing change, not a new bar to clear: the "good" thresholds for LCP (2.5s), INP (200ms), and CLS (0.1) are untouched. It's also Chromium-only for now — Chrome versions before 151, and non-Chromium browsers, will keep reporting whole-page Core Web Vitals but won't emit any soft-navigation-sliced data.

What's still an open question

The bigger unknown for SEO and page-experience work is whether this feeds into CrUX, and by extension Google Search Console's Core Web Vitals report — the field-data source behind the page-experience signal. Chrome's own documentation is explicit that this hasn't been decided yet; the origin trial writeup states plainly that the trial was "to evaluate the new API and not how this data will be used in CrUX or tooling."

For teams running SPA storefronts, that means two separate tracks. Soft-navigation measurement is available today, in your own RUM setup and in DevTools, if your provider supports it — worth checking directly rather than assuming. But nothing here means Search Console is already scoring individual client-side transitions on your storefront. Watch Chrome's changelog for that decision rather than assuming it already shipped.

Sources

SEO & Performance

ASSOSIATIX works on this every day. See our Shopify Conversion & Performance Optimization service

$./start-project.sh

READY TO BUILD
WHAT'S NEXT?

Tell us where you are and where you want to go. We'll help you choose the right path—storefront, system, product, or a focused growth sprint.