Uses @import

Whether any stylesheet pulls more CSS via @import - a serial request chain.

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

At a glance the headline numbers for Uses @import

Whether any stylesheet pulls more CSS via @import - a serial request chain.

0.0%
Adoption
0 of 0
With (median CLS)
Without (median CLS)
The State of Web Vitals · Q2 2026 · 189,915 sites · phone field datacorewebvitals.io/state-of-cwv
2

Uses @import sites that have it vs sites that don't

Uses @import
0%

0.0% of sites use CSS @import (0 of 0). With use: CLS —, 0.0% pass. Without: CLS —, 0.0% pass. computed

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

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

@import inside a stylesheet is a serial chain. The browser downloads the first stylesheet, parses it, finds the @import, and only then requests the next file. Each level adds a full round trip to the render-blocking path, and the page paints nothing until the chain resolves.

It survives in old themes and design systems because it looks harmless. Replace it with link tags, which download in parallel, or bundle at build time into one file. There is no defensible use of @import on the request path.

Related signals Scripts per page → Image dimensions set → DOM depth → Script initiator → Chrome field data from 189,915 sites, representing millions of real page loads · How we measured
Live queries (1) — admin only
Query #1: 19.4 ms
SELECT m.stylesheets.has_css_import AS val, COUNT(*) AS n,
            quantile_disc(crux."phone".cls, 0.5) AS median,
            COUNT(*) FILTER (WHERE crux."phone".cls IS NOT NULL AND crux."phone".cls <= 0.1) * 1.0 / NULLIF(COUNT(*) FILTER (WHERE crux."phone".cls IS NOT NULL), 0) AS good,
            COUNT(*) FILTER (WHERE crux."phone".cls IS NOT NULL AND crux."phone".cls > 0.1 AND crux."phone".cls <= 0.25) * 1.0 / NULLIF(COUNT(*) FILTER (WHERE crux."phone".cls IS NOT NULL), 0) AS ni,
            COUNT(*) FILTER (WHERE crux."phone".cls IS NOT NULL AND crux."phone".cls > 0.25) * 1.0 / NULLIF(COUNT(*) FILTER (WHERE crux."phone".cls IS NOT NULL), 0) AS poor
            FROM sites WHERE 1=1 GROUP BY m.stylesheets.has_css_import;
JSON file lookups (4)
20260625/meta.json 0.03 ms
20260625/types.json 1.31 ms
20260625/loaf-scripts.json 0.48 ms
20260625/menu.json 0.19 ms