Shopify font-display and the Core Web Vitals

swap, auto, block, fallback, or optional across 335,836 @font-face rules: how sites mix font-display rules on the same page and how that affects LCP and CLS.

Field data PhoneDesktopAll Scope All sites October 2026 edition · Desktop field outcomes · Shopify sites only
Shopify Scoped to 8,248 sites out of 203,892 analyzed (cms) Compare with all sites →

Across Shopify sites, 71.2% of all 335,836 declared @font-face rules set font-display: swap, while 21.7% leave it at auto. Most sites load more than one font stylesheet, so 89.3% of Shopify sites have at least one swap rule and 13.2% have at least one block rule. Sites that keep every font on swap or optional have a good LCP on 98% of sites, against 97% for blocking-only sites and 96% for sites that mix swap with block or auto.

The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 3,818 with desktop field data · 8,141 sites with font-displayBy Arjen Karel · corewebvitals.io/state-of-cwv
1

Core Web Vitals pass rate

Here, a site counts under every font-display value present in its @font-face rules. Sites with at least one matching rule have a good LCP: swap at 97%, auto at 96%, block at 96%, fallback at 95%. Why does swap (97%) sit right next to auto (96%)? Three in four sites that load Google Fonts with swap also load icon or theme fonts with block or auto. Those multi-font pages count under both values.

SitesGood, needs improvement, poor LCPMedian
All Shopify sites3,81897%1.3s
swap 89.3%3,44197%1.3s
auto (browser default) 63.8%2,63496%1.3s
block 13.2%62596%1.4s
fallback 12.2%54295%1.4s
optional 0.2%1191%1.7s
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 3,818 with desktop field data · 8,141 sites with font-displayBy Arjen Karel · corewebvitals.io/state-of-cwv
2

Font-display usage

Across 8,141 Shopify sites that declare web fonts, swap accounts for 71.2% of all @font-face rules, auto for 21.7%, block for 5.4%, fallback for 1.7%, and optional for . At the site level, 60.4% of sites mix swap with blocking rules on the same page, 10.7% use only blocking rules (auto, block, or fallback), and 28.9% use swap or optional on every font rule.

All declared @font-face rules 335,836 rules
swap 71.2%auto (browser default) 21.7%
swap 71.2% auto (browser default) 21.7% block 5.4% fallback 1.7% optional <0.1%
Sites with web fonts by site mix (non-overlapping) 8,141 sites
Only swap or optional 28.9%Only blocking (auto, block, fallback) 10.7%Mixed (swap + blocking on same page) 60.4%
Only swap or optional 28.9% Only blocking (auto, block, fallback) 10.7% Mixed (swap + blocking on same page) 60.4%
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 3,818 with desktop field data · 8,141 sites with font-displayBy Arjen Karel · corewebvitals.io/state-of-cwv
3

Pass rate by site-wide font-display mix

When each site is counted once by its full rule mix, sites that keep every font on swap or optional have a good LCP on 98% of sites, against 97% for blocking-only sites and 96% for mixed sites. Mixed sites load a median of 6 font files across 20 @font-face rules (usually Google Fonts plus Font Awesome or theme icon fonts). Pure swap sites load a median of 4 font files across 7 rules.

Site font mixSitesGood, needs improvement, poor LCPMedian
All Shopify sites3,81897%1.3s
Only swap or optional 28.9% · 4 fonts87198%1.1s
Only blocking (auto, block, fallback) 10.7% · 3 fonts34997%1.2s
Mixed (swap + blocking on same page) 60.4% · 6 fonts2,57196%1.3s
GoodNeeds improvementPoor
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 3,818 with desktop field data · 8,141 sites with font-displayBy Arjen Karel · corewebvitals.io/state-of-cwv
4

font-display pass rate by number of font files

Comparing sites that load the same number of font files separates font-display from font count. With 1 to 2 font files, sites on pure swap have a good LCP on 99% of sites, against 100% for sites with any block rule. On pages loading 8 or more font files, pure swap reaches 98% against 95% for sites with block.

Downloaded font files Only swap / optional Auto or fallback (no block) Includes font-display: block
1 to 2 font files
99% 1.0s median 566 sites
97% 1.1s median 554 sites
100% 1.2s median 38 sites
3 to 4 font files
97% 1.1s median 907 sites
97% 1.2s median 1,464 sites
96% 1.3s median 196 sites
5 to 7 font files
98% 1.1s median 601 sites
97% 1.3s median 1,571 sites
96% 1.4s median 374 sites
8 or more font files
98% 1.2s median 261 sites
95% 1.4s median 1,068 sites
95% 1.5s median 461 sites
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 3,818 with desktop field data · 8,141 sites with font-displayBy Arjen Karel · corewebvitals.io/state-of-cwv
5

Font-display per framework

On jQuery, 65% of declared @font-face rules use font-display: swap, 26% use auto, and 8% use block. 95% of jQuery sites have a good LCP. On Vue, 72% of rules use swap, 25% use auto, and 2% use block, and 97% of Vue sites have a good LCP.

Framework@font-face rules on its sitesGood LCP
Shopify sites with font-display 8,141 sitesswap 71%auto (browser default) 22%97%
Vue 931 sitesswap 72%auto (browser default) 25%97%
jQuery 3,121 sitesswap 65%auto (browser default) 26%95%
swap auto (browser default) block fallback optional
The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 3,818 with desktop field data · 8,141 sites with font-displayBy Arjen Karel · corewebvitals.io/state-of-cwv
6

font-display or the framework

Does the framework explain the font-display gap?

On jQuery, 96% of sites that keep every font on swap or optional have a good LCP, compared with 96% for blocking-only sites and 95% for jQuery sites that mix swap with blocking rules. Within jQuery, pure swap and mixed sites have a good LCP about equally often. On Vue, 98% of sites that keep every font on swap or optional have a good LCP, compared with 97% for blocking-only sites and 96% for Vue sites that mix swap with blocking rules. Within Vue, pure swap and mixed sites have a good LCP about equally often.

How font-display affects LCP and CLS during page load

When text is the LCP element, font-display: block and font-display: auto hide it for up to 3 seconds while the font file downloads. If the font arrives late, that wait delays LCP directly. With font-display: swap, the browser paints the fallback system font right away so LCP is recorded on first render, then swaps in the web font once it downloads. Swapping an unadjusted fallback font can shift text lines. Even so, pure swap sites match or beat blocking sites on field CLS at every font count (91% good CLS).

The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 3,818 with desktop field data · 8,141 sites with font-displayBy Arjen Karel · corewebvitals.io/state-of-cwv
7

Understanding font-display

Set font-display: swap or font-display: optional on every @font-face rule, and check third-party icon stylesheets for leftover font-display: block rules. Across this dataset, 60.4% of sites mix rules on the same page because they load Google Fonts with display=swap alongside Font Awesome or theme icon fonts set to block or auto. At the same font file count, sites that keep every font on swap beat sites with any block rule by 1 to 3 percentage points on LCP. They do not lose a single point on CLS. Pair font-display: swap with size-adjust, ascent-override, and descent-override on body text fonts so the swap does not shift layout.

The State of Web Vitals · October 2026 · Shopify: 8,246 crawled sites · 3,818 with desktop field data · 8,141 sites with font-displayBy Arjen Karel · corewebvitals.io/state-of-cwv
Related signals Stylesheet origin (1P/3P) → CSS coverage (used vs unused) → Image format mix → Fonts per page → By Arjen Karel · 8,246 crawled Shopify sites (3,818 with desktop Chrome field data, 8,141 sites with font-display, October 2026) · How we measured