CMS performance

How the most-used CMS platforms perform on real-user Core Web Vitals data.

Field data PhoneDesktopAll Scope All sites Q2 2026 edition · Desktop field outcomes
Metric LCP INP CLS FCP TTFB
1

At a glance the headline numbers for CMS performance

How the most-used CMS platforms perform on real-user Core Web Vitals data.

96.2%
Best: Shopify
good FCP
88.6%
Typical CMS
good FCP
67.5%
Worst: WordPress
good FCP

Shopify passes FCP most often of any CMS. 96.2% of its sites pass. WordPress (the most-used CMS) passes least at 67.5%. The gap is 29 percentage points.

The State of Web Vitals · Q2 2026 · 189,915 sites · desktop field datacorewebvitals.io/state-of-cwv
2

The ranking sorted by FCP at p75, fastest first

# CMS FCP p75 Passing Sites
1 Wix 805ms 93.2%
5,217
2 Shopify 1.0s 96.2%
7,625
3 TYPO3 1.1s 91.9%
95
4 Squarespace 1.2s 95.1%
2,028
5 Drupal 1.3s 88.6%
2,990
6 Joomla 1.4s 86.4%
2,325
7 Adobe Commerce 1.8s 74.0%
989
8 WordPress 2.0s 67.5%
59,040
The State of Web Vitals · Q2 2026 · 189,915 sites · desktop field datacorewebvitals.io/state-of-cwv
3

Passing FCP per CMS which group passes the FCP most often

CMSSitesPassing FCPp75
Storyblok 0% 11 100% 1.4s
Webflow 0% 15 100% 552ms
Ghost 0% 37 100% 900ms
Hubspot cms 0% 5 100% 1.2s
Shopify 4% 7,625 96% 1.0s
Squarespace 1.1% 2,028 95% 1.2s
Wix 2.7% 5,217 93% 805ms
TYPO3 0% 95 92% 1.1s
Drupal 1.6% 2,990 89% 1.3s
Joomla 1.2% 2,325 86% 1.4s
Adobe Commerce 0.5% 989 74% 1.8s
WordPress 31.1% 59,040 67% 2.0s
Good Needs Improvement Poor Sorted best-passing first · median colored by its own rating · pass = good FCP (1.8s at p75) · one value per site

96% of Shopify sites pass FCP. WordPress trails 29 points behind, leaving 33% of its sites failing. computed

The State of Web Vitals · Q2 2026 · 189,915 sites · desktop field datacorewebvitals.io/state-of-cwv
4

All five vitals at once the whole category without toggling - cell is the pass rate, small number the p75

LCP
INP
CLS
FCP
TTFB
Wix 2.7%
931.6s
10049ms
960.02
93805ms
72914ms
Shopify 4%
961.6s
9978ms
850.06
961.0s
97470ms
Storyblok 0%
1002.0s
10080ms
440.14
1001.4s
63962ms
TYPO3 0%
951.5s
10048ms
780.08
921.1s
74924ms
Webflow 0%
1001.3s
10073ms
600.13
100552ms
100201ms
WordPress 31.1%
762.5s
10062ms
770.09
672.0s
361.7s
Drupal 1.6%
931.6s
10056ms
780.09
891.3s
68917ms
Joomla 1.2%
931.8s
10049ms
800.08
861.4s
66935ms
Adobe Commerce 0.5%
832.2s
10068ms
660.14
741.8s
321.5s
Squarespace 1.1%
941.9s
10058ms
800.08
951.2s
98464ms
Ghost 0%
1001.3s
10055ms
580.14
100900ms
93592ms
Hubspot cms 0%
1001.3s
10073ms
800.06
1001.2s
100669ms
60%95%+ passing Cell: pass rate, small number = p75 · faded rows: under 100 sites

One row per CMS, one column per vital - the cell is the share of sites passing, the small number the p75. No toggling needed to see where the category actually differs.

Shopify leads on FCP: 96% of its sites pass. WordPress trails at 67%. computed

The State of Web Vitals · Q2 2026 · 189,915 sites · desktop field datacorewebvitals.io/state-of-cwv
5

Why this matters for the Core Web Vitals, and where to start fixing it

The CMS decides a lot about your Core Web Vitals before you write a line of your own code. It controls the HTML that ships, the scripts and styles that load by default, and how images are handled. Two sites on the same platform can score very differently depending on the theme and plugins, but the platform sets the starting point and the ceiling for how much you can tune.

Start with what the platform loads that you do not need. Strip the default scripts and styles that come with themes and plugins, defer the JavaScript that is not needed for the first paint, and make sure images go out in modern formats at the right size. On script-heavy platforms the biggest wins are usually in cutting and deferring what loads on every page.

How does your CMS affect Core Web Vitals?

Among the most-used CMS platforms, Wix reaches a good FCP on 93.2% of sites; WordPress on 67.5%.

Related signals CDN (7) → Frameworks (11) → Chrome field data from 189,915 sites, representing millions of real page loads · How we measured