Operator note

Chrome 139 quietly unlocks Soft Navigations - could your SPA's Core Web Vitals jump?

Origin trial turns SPA view changes into real navigations, triggering LCP, CLS, INP each time. See setup steps before the Sept 13 deadline.

Minimalist illustration of Chrome soft navigation converting sliding SPA views into Core Web Vitals events

Google has launched an origin trial in Chrome 139 that finally lets Single Page Applications (SPAs) report accurate Core Web Vitals during in-page transitions. The Soft Navigations API treats selected client-side updates as full navigations, exposing Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS) and Interaction to Next Paint (INP) after every qualified route change. The trial is open until 13 September 2024.

How the Soft Navigations API works

When the browser detects a link click, a subsequent URL change and a visible DOM update that repaints at least 20 percent of the viewport, Chrome records a PerformanceNavigationTiming entry with type="soft". Each entry receives its own navigationId, making it easier for Real User Monitoring (RUM) tools to separate metrics generated by different in-page routes.

Within an eligible soft navigation Chrome now dispatches:

  • Standard CWV events - LCP, CLS and INP - just as it would for a hard page load.
  • interaction-contentful-paint, a new candidate metric that captures the largest element rendered after the user’s input.

If the DOM mutates without user input (for example, an automatic redirect), the heuristics do not classify the change as a navigation and no new metrics fire.

Trial logistics

The experiment spans Chrome 139 through 143 on Android, Windows, macOS, Linux and ChromeOS. Data gathered during the test does not appear in the public Chrome User Experience Report (CrUX). To enrol a production site developers must register in the Chrome Origin Trials portal and include the issued token via an HTTP header or a <meta> tag. Local evaluation is available behind the chrome://flags/#soft-navigation-heuristics flag.

Google is collecting feedback through the origin-trial issue tracker and has stated that the end date may shift based on that input. Detailed implementation guidance is available in the Chrome Developers blog post announcing the trial - testing. Barry Pollard, who leads the effort, emphasizes that early implementers will shape the final API.

Why this matters for SPAs

SPAs in frameworks such as React, Vue and Angular update views without reloading the document, so legacy performance tooling had no navigation boundary to attach Web Vitals events. As a result, production data often understated loading delays and layout shifts that occur after the initial load.

Teams previously relied on custom heuristics to approximate soft navigations, leading to inconsistent numbers across vendors. By standardising detection inside the browser and by adding a globally unique navigationId, Chrome aims to give site owners and RUM providers a single source of truth.

Next steps for developers

  • Opt-in to the origin trial for staging domains and verify that metrics appear after every client-side route change.
  • Update analytics pipelines to store navigationId alongside existing Web Vitals fields.
  • Experiment with the new interaction-contentful-paint metric and compare it to INP.
  • Report false positives or negatives through the origin-trial issues tracker to influence the final specification.

Keep reading

Related articles

AI powered shopping cart protocol illustration with funnel price tag alert loyalty user tapping toggleInside Google's Universal Commerce Protocol that lets AI agents tap carts, catalogs and loyalty pricing2 min readMinimalist illustration of AI checkout hub with Cart Catalog Identity cards and user tapping settingsGoogle quietly upgrades AI shopping protocol: what Cart, Catalog and Identity Linking change next2 min readMinimalist tablet health UI privacy risk toggle character adjusting shield and prescription funnelGoogle and DocMorris Launch AI Health Companion for Europe - What Changes Next2 min readMinimalist site health dashboard illustration with 404 410 toggle funnel filtering errors into green checksWorried About Endless 404 Reports In Search Console? John Mueller Reveals What They Really Mean3 min read