Skip to content
Innovation & Growth

Modern Frameworks Now Outnumber Legacy on the High-Traffic Web. The Crossover Is Here.

On the broader web, 58.3% of detected frameworks are legacy. On the top 10K, that drops to 43.9%. Modern frameworks hold 48.7% of the high-traffic web. The generation split is a function of traffic tier.

K
Kannan SP
· 5 min read
Share on X LinkedIn
Modern Frameworks Now Outnumber Legacy on the High-Traffic Web. The Crossover Is Here.
Key finding

Modern framework share: 48.7% (Source: WebPulse Census — 1,609 of 3,301 detected sites)

The Midpoint

WebPulse classifies every detected framework into one of three generations: legacy (WordPress, Drupal, Joomla, Magento), modern (Next.js, Nuxt, Astro, Angular, React, Vue, Hugo, Rails, Django, Laravel, and others built after 2010 with contemporary architectures), and emerging (SolidJS, Qwik, Hono, and other frameworks still in early adoption). On the broader web (Tranco top 100K, scanned May 2026), legacy frameworks hold 58.3% of detections. Modern holds 41.7%.

On the top 10K (scanned July 2026), the generation split inverts. Modern frameworks hold 48.7%. Legacy has fallen to 43.9%. The remaining 7.4% belongs to emerging frameworks. The higher the traffic tier, the more modern the stack — the top 10K is 14.4 percentage points less legacy than the top 100K.

48.7%
Modern framework share
Source: WebPulse Census — 1,609 of 3,301 detected sites
43.9%
Legacy framework share
Source: WebPulse Census — 1,448 of 3,301 detected sites
14.4 percentage points
Legacy share gap (top 100K → top 10K)
Source: WebPulse Census (top 100K baseline vs top 10K scan)

Where Legacy Lost Ground

The legacy decline is not driven by a single framework collapsing. It is broad-based. WordPress dropped from 30.4% to 22.4%. Drupal dropped from 27.0% to 21.1%. Joomla from 0.5% to 0.3%. Magento from 0.4% to 0.1%. Every legacy CMS in the scan contracted. No legacy framework gained share.

The modern gains are similarly distributed. Next.js gained 7.9 percentage points — the single largest gain of any framework. Astro gained 0.4 points. React gained 0.7 points. Hugo gained 0.4 points. Vue and SvelteKit held roughly steady. The growth is led by Next.js but supported across the modern cohort.

The Security Dimension

Legacy and modern are not just architectural labels. They correlate directly with security exposure. The legacy cohort — WordPress, Drupal, Joomla, Magento — carries a combined 1,746 CVEs in the NVD. The modern cohort's total is lower still. Framework generation is a proxy for vulnerability density, and the high-traffic web is choosing the lower-density option.

1,746
Legacy cohort combined CVEs
Source: NVD/NIST (July 2026) — WordPress 581, Drupal 729, Joomla 215, Magento 221
Lower per-framework average
Modern cohort combined CVEs
Source: NVD/NIST (July 2026)

The CSP Signal

WebPulse's July 2026 census also measured Content Security Policy header adoption across the full scan. 24.7% of all scanned domains — 2,458 of 9,947 — return a CSP header. This is not a framework metric but a security posture indicator. Sites with CSP headers are actively managing their content security boundaries. The correlation between CSP adoption and modern framework usage is worth tracking as the census expands to the full 10 million site dataset.

24.7%
CSP header adoption
Source: WebPulse Census — 2,458 of 9,947 scanned domains

What Happens Next

The generation crossover on the high-traffic web is a leading indicator. The top 10,000 sites are run by teams with the resources and incentive to migrate first. The broader web — tens of millions of sites — follows on a longer timeline. WebPulse is currently scanning the June 2026 Common Crawl index to measure the generation split across 10 million domains. The top-10K crossover tells us where the web is heading. The full census will tell us how far behind the rest of the web is.

Compare frameworks in this analysis
WordPress vs Drupal WordPress vs Joomla WordPress vs Next.js WordPress vs Nuxt.js WordPress vs React WordPress vs Angular WordPress vs Vue.js WordPress vs Rails WordPress vs Django WordPress vs Magento WordPress vs Laravel WordPress vs Astro WordPress vs Hugo WordPress vs SvelteKit Drupal vs Joomla Drupal vs Next.js Drupal vs Nuxt.js Drupal vs React Drupal vs Angular Drupal vs Vue.js Drupal vs Rails Drupal vs Django Drupal vs Magento Drupal vs Laravel Drupal vs Astro Drupal vs Hugo Drupal vs SvelteKit Joomla vs Next.js Joomla vs Nuxt.js Joomla vs React Joomla vs Angular Joomla vs Vue.js Joomla vs Rails Joomla vs Django Joomla vs Magento Joomla vs Laravel Joomla vs Astro Joomla vs Hugo Joomla vs SvelteKit Next.js vs Nuxt.js Next.js vs React Next.js vs Angular Next.js vs Vue.js Next.js vs Rails Next.js vs Django Next.js vs Magento Next.js vs Laravel Next.js vs Astro Next.js vs Hugo Next.js vs SvelteKit Nuxt.js vs React Nuxt.js vs Angular Nuxt.js vs Vue.js Nuxt.js vs Rails Nuxt.js vs Django Nuxt.js vs Magento Nuxt.js vs Laravel Nuxt.js vs Astro Nuxt.js vs Hugo Nuxt.js vs SvelteKit React vs Angular React vs Vue.js React vs Rails React vs Django React vs Magento React vs Laravel React vs Astro React vs Hugo React vs SvelteKit Angular vs Vue.js Angular vs Rails Angular vs Django Angular vs Magento Angular vs Laravel Angular vs Astro Angular vs Hugo Angular vs SvelteKit Vue.js vs Rails Vue.js vs Django Vue.js vs Magento Vue.js vs Laravel Vue.js vs Astro Vue.js vs Hugo Vue.js vs SvelteKit Rails vs Django Rails vs Magento Rails vs Laravel Rails vs Astro Rails vs Hugo Rails vs SvelteKit Django vs Magento Django vs Laravel Django vs Astro Django vs Hugo Django vs SvelteKit Magento vs Laravel Magento vs Astro Magento vs Hugo Magento vs SvelteKit Laravel vs Astro Laravel vs Hugo Laravel vs SvelteKit Astro vs Hugo Astro vs SvelteKit Hugo vs SvelteKit
Share this insight