Cloudflare Web Analytics added 2 SPA navigation types on 21 August 2026 and your pageviews will jump

Cloudflare Web Analytics now counts SPA route changes as pageviews. What breaks in your reporting, and how to tell if it is you.

Read time
10 min
Word count
1.7K
Sections
10
FAQs
7
Share
Cloudflare Web Analytics SPA soft navigation change, 21 August 2026
Cloudflare Web Analytics began counting SPA soft navigations on 21 August 2026.
On this page · 10 sections
  1. What changed, precisely
  2. Why the LCP arrives unevenly
  3. The gap nobody at either vendor has closed
  4. Who is affected, and how to tell if that is you
  5. What to do this week
  6. India-specific considerations
  7. What is still unknown
  8. FAQ
  9. How eCorpIT can help
  10. References

Summary. On 21 August 2026 Cloudflare began measuring client-side route changes in Web Analytics using Chrome's native Soft Navigation API, and its own changelog states the change "may alter the volume of pageviews reported in the dashboard and GraphQL API". Two values join the navigationType dimension: soft-navigation and routing-apis. The Largest Contentful Paint figure that makes this useful only exists on Chrome 151, which reached stable on 28 July 2026. There is no backfill, no announced flag to restore the old counting, and no dated cut-over. Cloudflare Web Analytics is available on all plans, from the $0/month Free plan up to Business at $200/mo billed annually. The Core Web Vitals page that explains how these metrics are collected was last updated on 16 April 2026 and still describes the pre-change model, including First Input Delay, a metric Google replaced with Interaction to Next Paint.

If you run a React, Angular, Vue or Svelte front end behind Cloudflare, your August traffic chart is about to develop a step that has nothing to do with traffic.

What changed, precisely

Cloudflare's changelog entry of 21 August 2026 describes an accuracy improvement to Real User Monitoring for client-side soft navigations. The mechanism has three tiers, set out in the Web Analytics SPA documentation as of 20 August 2026:

  1. The Soft Navigations API, where the browser supports it.
  1. The Navigation API, listening for navigate events.
  1. Patching the History API's pushState function and listening to onpopstate.

Before this change, Cloudflare says it used only the History API and bucketed every navigation into navigate. That claim is worth reading twice, because the Dimensions page, last updated the same day, documents eleven navigation types, nine of which predate this release and include Navigate Cache, Navigate Prefetch Cache, Prerender, Reload, Back-forward and Restore. The changelog's three-row summary table and the reference documentation's eleven-row table describe the same dimension and do not agree on what it contained yesterday.

The practical consequence is the same either way. Route changes that previously produced no beacon, or produced one indistinguishable from a hard navigation, now produce a distinctly-typed event. The FAQ page confirms the beacon behaviour: for a single-page application, "additional metrics are sent for every route change to capture the page load event."

navigationType Introduced 21 Aug 2026? What it does to your pageview count
Navigate No Unchanged. Hard navigation, document fetched from the network.
Navigate Cache No Unchanged. Hard navigation served from the HTTP cache.
Navigate Prefetch Cache No Unchanged. Prefetched document, no network request.
Prerender No Unchanged. Browser had already rendered the page.
Reload / Reload Cache No Unchanged. Explicit reload, cached or not.
Back-forward / Back-forward Cache No Unchanged. Back and forward gestures.
Restore No Unchanged. Tab restored after inactivity.
Soft Navigation Yes New rows. Chrome 151 and later only. Carries LCP.
Routing APIs Yes New rows. Safari, Firefox, older Chromium. No LCP.

Why the LCP arrives unevenly

The measurement that makes soft-navigation tracking worth having is Largest Contentful Paint on a route change, and that depends on Chrome, not on Cloudflare. Google's soft navigations documentation, published on 1 February 2023 and last updated on 21 July 2026, carries an explicit note: "The Chrome team is launching this feature from Chrome 151 at which point it will be available unflagged for all sites to use."

Chrome 151 reached stable on 28 July 2026. Its release notes list the entry "PerformanceSoftNavigation and InteractionContentfulPaint performance entries", tracked as bug #1338390, and describe the soft-navigation entry as reporting "same-document history state changes initiated by interactions, establishing a new time origin to attribute subsequent performance data to the active route rather than the initial document URL."

Cloudflare's changelog is candid about the gap. For the routing-apis fallback path, covering Safari, Firefox and older Chromium builds, it says: "We cannot collect LCP for these, but the other Core Web Vitals are present."

That single sentence contradicts Cloudflare's own Core Web Vitals page, last updated 16 April 2026, which states that "Core Web Vitals is currently only supported in Chromium browsers, with Safari and Firefox coming soon." The same page opens by naming the three measured metrics as Largest Contentful Paint, First Input Delay and Cumulative Layout Shift, then lists Interaction to Next Paint two paragraphs later. One reference page, three unresolved statements. Treat the changelog as current and the Core Web Vitals page as four months stale.

The gap nobody at either vendor has closed

Here is the part that matters if anyone in your organisation reports Core Web Vitals to a board or a client.

Cloudflare now measures soft navigations. Google does not yet report them in the dataset that feeds Search Console. Barry Pollard and Michal Mocny, the Chrome engineers credited as authors of Google's soft navigations documentation, write plainly: "How exactly soft navigations will be reported in CrUX, once the feature is launched, is also still to be determined." The same page states the intent, "the aim is to include these in Core Web Vitals measurements as exposed by all tools after the API is launched," without a date.

So from 21 August 2026 your Cloudflare dashboard and your Search Console Core Web Vitals report are measuring different populations of navigations on the same site, by design, with no published timetable for convergence. A slow route transition that now drags your Cloudflare LCP distribution downward may not appear in the field data Google uses. The reverse is equally possible once CrUX changes.

Anyone tracking Search Console reporting for AI-driven visibility alongside a Cloudflare RUM dashboard should stop treating the two numbers as the same measurement.

Who is affected, and how to tell if that is you

Check three things.

First, architecture. The changelog is explicit that this is not only an SPA problem: "a non-SPA website can have soft navigation activity if its implementation uses these APIs." Any site using the History API or the Navigation API for client-side routing qualifies, including a mostly-static site with a filtered product listing. Teams shipping Next.js instant navigations and partial prefetching or a TanStack Start front end are squarely in scope.

Second, browser mix. If your Chrome share sits well above your Safari and Firefox share, the new soft-navigation rows will dominate and you will get LCP. If you skew to Safari on iOS, most new rows land in routing-apis with no LCP, so your LCP sample becomes a Chrome-only subset of a now-larger pageview base. That is a denominator change hiding inside a metric.

Third, downstream consumers. Anything reading the GraphQL API on a saved filter of navigate will now silently exclude route changes it used to include. Alert thresholds, weekly reports and any conversion-rate calculation with pageviews in the denominator all inherit the shift.

What to do this week

Mark the date in your analytics annotations first, before anyone builds a narrative on the step change. Nothing here is retroactive, so 21 August 2026 is a hard seam in the series and pre-seam and post-seam pageview totals are not comparable.

Segment by navigationType rather than turning the feature off. Split hard navigations from Soft Navigation and Routing APIs, and keep reporting the hard-navigation series next to the combined one for at least one full reporting cycle.

If you must freeze the old behaviour, the SPA documentation gives an opt-out: add "spa": false to the data-cf-beacon attribute on the beacon script tag. Cloudflare notes this requires the manual embedding approach rather than automatic injection. Under Google Tag Manager, pass it on the query string as ?token=...&spa=false. Understand the trade-off before you do it. You lose route-level measurement entirely, and you will have to unwind the change when CrUX catches up.

Feature-detect before you trust a soft-navigation number in your own instrumentation. Google's documentation gives the test as PerformanceObserver.supportedEntryTypes.includes('soft-navigation'), with the caveat that supportedEntryTypes is frozen on first use.

One more operational limit worth knowing while you are re-baselining: Cloudflare's FAQ states a soft limit of ten sites per account for Web Analytics, adjustable through support, and confirms that RUM "operates exclusively on the initial client request and cannot collect metrics from Worker subrequests." If you were planning to instrument route changes at the edge instead, that path is closed.

India-specific considerations

Indian consumer traffic runs heavily on Android Chrome, so most Indian-market SPAs will see the soft-navigation path rather than the routing-apis fallback, and the pageview increase will be larger than for a comparable US or European property with a big iOS Safari share. Where a Cloudflare dashboard number is quoted in a client report or an agency retainer covering ₹ media spend, restate the 21 August 2026 seam in writing before the next invoice cycle. Beacon data collected here is behaviour data about identifiable visitors' devices, so a change in what the beacon emits is worth a line in your Digital Personal Data Protection Act 2023 processing record even though Cloudflare states the beacon uses no cookies or localStorage.

What is still unknown

Cloudflare has not published an expected magnitude for the pageview increase, saying only that "the extent depends on your front-end architecture and visitor traffic patterns". Google has not said how CrUX will treat soft navigations, or when. Cloudflare has not said whether historical data will be reprocessed, and the absence of any backfill language points to no. The Core Web Vitals reference page has not been reconciled with the changelog. Until those four gaps close, the honest position is that your Web Analytics pageview series has two eras and only one of them can be compared to Search Console.

The real cost here is not the instrumentation. It is every report and target that quietly assumed one definition of a pageview.

FAQ

How eCorpIT can help

Re-baselining an analytics series after a measurement change is dull, exacting work, and it is much cheaper before three months of reports have been built on the wrong denominator. Our engineering teams handle this as part of Core Web Vitals and web performance work, covering beacon configuration, GraphQL query review and the reconciliation between Cloudflare RUM and Search Console field data. If your August dashboard has developed a step you cannot explain, ask our web performance team to review your Web Analytics setup.

References

  1. Web Analytics improves soft navigation measurement for Single Page Applications (SPAs), Cloudflare changelog, 21 August 2026
  1. Dimensions, Cloudflare Web Analytics docs, last updated 21 August 2026
  1. Web Analytics for Single Page Applications, Cloudflare docs, last updated 20 August 2026
  1. Core Web Vitals, Cloudflare Web Analytics docs, last updated 16 April 2026
  1. FAQs, Cloudflare Web Analytics docs, last updated 14 July 2026
  1. Cloudflare Web Analytics overview, Cloudflare docs
  1. Measuring soft navigations, Chrome for Developers, last updated 21 July 2026
  1. Chrome 151 release notes, stable 28 July 2026, Chrome for Developers
  1. Navigation API, MDN Web Docs
  1. History API, MDN Web Docs
  1. Plans and pricing, Cloudflare
  1. Cloudflare changelog RSS feed, Cloudflare docs

Last updated 23 August 2026.

Frequently asked

Quick answers.

01 What changed in Cloudflare Web Analytics on 21 August 2026?
Cloudflare began measuring client-side route changes using Chrome's native Soft Navigation API, with the Navigation API and History API as fallbacks. Two values joined the navigationType dimension: soft-navigation and routing-apis. Cloudflare states the change may alter the volume of pageviews reported in both the dashboard and the GraphQL API.
02 Will my pageview count go up?
Almost certainly, if your site uses client-side routing. Cloudflare says the extent depends on your front-end architecture and visitor traffic patterns, and has published no expected magnitude. Route changes that previously produced no separate beacon now produce a distinctly typed event, so the increase reflects measurement rather than traffic.
03 Does this affect my Google Search Console Core Web Vitals report?
Not yet. Google's soft navigations documentation states that how soft navigations will be reported in CrUX is still to be determined, with no date given. From 21 August 2026 your Cloudflare dashboard and Search Console are measuring different populations of navigations on the same site.
04 Which browsers report Largest Contentful Paint for soft navigations?
Chrome 151 and later, which reached stable on 28 July 2026 and ships the soft-navigation and interaction-contentful-paint entry types unflagged. On Safari, Firefox and older Chromium builds, Cloudflare falls back to routing-apis and states it cannot collect LCP for those, though other Core Web Vitals are present.
05 Can I turn the new measurement off?
Yes. Add the spa option with a value of false to the data-cf-beacon attribute on the Web Analytics script tag, which Cloudflare notes requires the manual embedding approach. Under Google Tag Manager, pass spa=false on the script query string instead. You lose route-level measurement completely by doing this.
06 Is historical Web Analytics data being reprocessed?
Cloudflare has published no backfill statement, and the absence of any such language in the changelog points to no reprocessing. Treat 21 August 2026 as a hard seam in the series. Pageview totals before and after that date are not directly comparable and should be annotated in any recurring report.
07 Why does the Cloudflare Core Web Vitals page contradict the changelog?
That reference page was last updated on 16 April 2026, four months before the change. It states Core Web Vitals is only supported in Chromium browsers, while the changelog says non-Chromium browsers do report Core Web Vitals other than LCP. It also names First Input Delay in one paragraph and Interaction to Next Paint in another.

About the author

Manu Shukla

Founder & Director

Founder of eCorpIT. Hands-on engineer leading senior-only delivery for AI apps, custom software, and cloud systems for global clients.

Subscribe

One engineering note a week. No fluff, no spam.

Senior-architect playbooks on AI agents, mobile apps, cloud, security, data, and marketing — delivered every Wednesday.

Past the reading

Read enough. Let's build something.

A senior architect responds in 24 working hours with scope, indicative cost, and a timeline. NDA before any technical conversation.