Etavrian
keyboard_arrow_right Created with Sketch.
News
keyboard_arrow_right Created with Sketch.

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

Reviewed:
Andrii Daniv
2
min read
Aug 2, 2025
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.
Quickly summarize and get insighs with: 
Author
Andrew Daniv, Andrii Daniv
Andrii Daniv
Andrii Daniv is the founder and owner of Etavrian, a performance-driven agency specializing in PPC and SEO services for B2B and e‑commerce businesses.
Reviewed
Andrew Daniv, Andrii Daniv
Andrii Daniv
Andrii Daniv is the founder and owner of Etavrian, a performance-driven agency specializing in PPC and SEO services for B2B and e‑commerce businesses.
Quickly summarize and get insighs with: 
Table of contents