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, and since 16 October 2026 ignores those that leave the URL unchanged. What breaks in your reporting, and how to tell if it is you.

Read time
10 min
Word count
2K
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 rolling out measurement of client-side route changes in Web Analytics using Chrome's native Soft Navigation API, marked the rollout complete on 4 September 2026, and says in its changelog that reported pageviews and visits in the dashboard and GraphQL API may change, with LCP also liable to fluctuate. 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. Cloudflare has announced no backfill and no flag to restore the old counting. On 16 October 2026 it shipped a beacon fix that ignores same-page soft navigations when the URL does not change, so sites that fire such navigations may see counts dip from that date, and it has not said whether earlier data will be restated. 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 updated on 13 October 2026 and now names Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift, with First Input Delay gone.

If you run a React, Angular, Vue or Svelte front end behind Cloudflare, your traffic chart for late August and early September 2026 probably shows a step that has nothing to do with traffic, and some sites will see a second, downward step on 16 October.

What changed, precisely

Cloudflare's changelog entry of 21 August 2026 describes an accuracy improvement to Real User Monitoring for client-side soft navigations, rolled out gradually and marked complete on 4 September 2026. 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.

Cloudflare has since adjusted the counting once. Its release notes for the beacon.min.js script list a fix dated 16 October 2026 that makes the beacon ignore same-page soft navigations when the URL does not change, alongside an upgrade of Google's web-vitals library to version 6.2.3. Client-side navigations that left the address unchanged could add soft-navigation events before that date and are dropped after it. Chrome's own definition of a soft navigation also requires a visible URL change. The note says nothing about restating data collected between 21 August and 16 October.

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, first published on 1 February 2023, now states that the feature is enabled by default from Chrome 151, so every site can use it without a flag.

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."

When this article was first published, that sentence contradicted Cloudflare's own Core Web Vitals page, then dated 16 April 2026, which said Core Web Vitals were collected only in Chromium browsers and still listed First Input Delay. Cloudflare updated the page on 13 October 2026. It now names Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift, and notes that Cumulative Layout Shift is only supported in Chromium browsers because Firefox and Safari have not implemented the Layout Instability API. That narrows the changelog's statement that the other Core Web Vitals are present on the routing-apis path: on Safari and Firefox, expect no CLS either.

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 has started to, but not in the numbers Search Console uses. On 13 October 2026 the Chrome team published experimental versions of LCP, INP and CLS that include soft navigations, available from the October 2026 CrUX release in the BigQuery dataset, the CrUX API and the CrUX History API, while the stable Core Web Vitals scores stay unchanged. Google says it aims to graduate these metrics in May 2027, subject to feedback, and that Search Console will then switch to the new data. The soft navigations documentation by Barry Pollard and Michal Mocny now points to the same plan.

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, and will keep doing so until Search Console moves to the soft-navigation data, which Google currently targets for May 2027. A slow route transition that now drags your Cloudflare LCP distribution downward may not appear in the field data Search Console uses, though it can now show up in the experimental CrUX metrics. The reverse is equally possible once Search Console switches.

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 dates in your analytics annotations first, before anyone builds a narrative on the step change. Cloudflare has not said any of this is retroactive, so treat 21 August to 4 September 2026, while the rollout ran, as one seam in the series and 16 October 2026, when the beacon stopped counting same-URL soft navigations, as a second. Pageview totals either side of each seam are not directly 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 Search Console moves to soft-navigation data.

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 to 4 September 2026 seam and the 16 October correction 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 it depends on your front-end architecture and visitor traffic patterns, and it has not said how much the 16 October fix takes back. Google now publishes experimental soft-navigation metrics in CrUX, but Search Console will not use them until they graduate, which Google targets for May 2027. Cloudflare has not said whether historical data will be reprocessed for either change, and the absence of any backfill language points to no. Until those gaps close, the honest position is that your Web Analytics pageview series has two eras, with a correction on 16 October inside the second, 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. Changelog: beacon.min.js release notes, entry of 16 October 2026 — Cloudflare Web Analytics docs
  1. Experimental soft navigation metrics now available in CrUX, 13 October 2026 — web.dev
  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 13 October 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, as read on 11 November 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: 11 November 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 rolled it out gradually, marked it complete on 4 September 2026, and states it may alter reported pageviews and visits in both the dashboard and the GraphQL API. A beacon fix on 16 October 2026 then stopped counting same-page soft navigations where the URL does not change.
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. Since the 16 October 2026 beacon fix, client-side navigations that leave the URL unchanged are no longer counted, which may trim part of the increase.
03 Does this affect my Google Search Console Core Web Vitals report?
Not yet. Search Console still reports the stable Core Web Vitals, which leave soft navigations out. Since the October 2026 CrUX release, announced on 13 October, Google publishes experimental soft-navigation versions of LCP, INP and CLS through CrUX BigQuery, the CrUX API and the CrUX History API, and it aims to graduate them in May 2027, subject to feedback, when Search Console will switch to them. Until then your Cloudflare dashboard and Search Console measure 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, either for the August change or for the 16 October 2026 beacon fix, and the absence of any such language points to no reprocessing. Treat 21 August to 4 September 2026, while the rollout ran, and 16 October 2026 as seams in the series. Pageview totals either side of those dates are not directly comparable and should be annotated in any recurring report.
07 Does the Cloudflare Core Web Vitals page still contradict the changelog?
Largely no. The page was updated on 13 October 2026 and now names Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift, with no First Input Delay and no claim that Core Web Vitals work only in Chromium. One gap remains: it says Cumulative Layout Shift is only supported in Chromium browsers, while the changelog says non-Chromium browsers report the Core Web Vitals other than LCP.

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.

Loading search…

Browse all guides