Script loading attributes and the Core Web Vitals
65.1% of audited sites (128,332) still execute render-blocking synchronous scripts and drop to 79% good LCP (1.6s median), compared to 81% good LCP on sites using async (81.0%) and 82% on ES modules (19.5%).
4.9% of sites use nomodule fallback scripts script loading strategy, and 89% of those sites have a good LCP, against 82% of all sites.
70.9% of sites use dynamically injected scripts script loading strategy, and 97% of those sites have a good INP, against 95% of all sites.
Core Web Vitals pass rate
Sites with nomodule fallback scripts script loading strategy have a good LCP most often: 89%, against 82% of all sites. Sites with render-blocking scripts script loading have it least often, at 79%.
Sites with dynamically injected scripts script loading strategy have a good INP most often: 97%, against 95% of all sites. Sites with nomodule fallback scripts script loading have it least often, at 94%.
Script loading strategy usage
Inline scripts is the most used: 96.5% of sites. Nomodule fallback scripts is 4.9% of sites.
LCP phase breakdown by script loading attribute
Across the four LCP sub-parts in Chrome's field data, the largest gap between nomodule fallback scripts and render-blocking scripts sits in time to first byte (TTFB): 453 ms median for nomodule fallback scripts against 762 ms for render-blocking scripts. Overall median field LCP is 1.4s for nomodule fallback scripts (TTFB 453 ms, load delay 452 ms, load duration 148 ms, render delay 178 ms) versus 1.6s for render-blocking scripts.
Across the four LCP sub-parts in Chrome's field data, the largest gap between nomodule fallback scripts and render-blocking scripts sits in time to first byte (TTFB): 453 ms median for nomodule fallback scripts against 762 ms for render-blocking scripts. Overall median field LCP is 1.4s for nomodule fallback scripts (TTFB 453 ms, load delay 452 ms, load duration 148 ms, render delay 178 ms) versus 1.6s for render-blocking scripts.
Understanding script loading attributes
How synchronous blocking <script> tags halt the HTML parser before LCP
When the HTML parser hits a synchronous <script src> tag without async, defer, or type="module", it must pause DOM construction, wait for the network download, and execute the script before painting. Across 128,332 sites (65.1%) with render-blocking scripts, good LCP drops to 79% (1.6s median). Sites loading scripts with async (81.0%), defer (44.4%), or type="module" (19.5%) reach 81%, 80%, and 82% good LCP.
Add defer or type="module" to all first-party application scripts and async to independent third-party tags so zero synchronous <script src> tags block the HTML parser in <head>. Across all audited sites, 65.1% ship render-blocking scripts (79% good LCP, 1.6s median).
How script loading strategy plays out per platform
What the field data shows when you isolate a single CMS or framework.
89.2% of WordPress sites load render-blocking synchronous scripts (69% good LCP).
WordPress 6.3+ supports registering scripts with defer and async strategies in wp_register_script() and wp_enqueue_script(). Across WordPress, 89.2% of sites execute render-blocking scripts (69% good LCP, 2.0s median) and 14.2% use ES modules (70% good LCP).
99.6% of Shopify stores use deferred scripts (96% good LCP), while 29.8% include blocking scripts (94%).
Across Shopify storefronts, 99.6% load scripts with defer (96% good LCP, 1.3s median), 99.5% use type="module", and 29.8% include synchronous blocking scripts (94% good LCP, 1.5s median).
React & Next.js sites with synchronous blocking scripts (30.0%) pass LCP at 65% vs 86% with defer.
Across React sites, 89.0% load scripts with defer (86% good LCP), 96.8% use async (85% good LCP), and 30.0% include synchronous blocking scripts in <head> (65% good LCP, 2.0s median, 21 points apart).
By Arjen Karel · 210,902 crawled sites (196,263 with all devices Chrome field data, 197,083 sites with script loading strategy, October 2026). How we measured.