Direct answer: the 25 homepages declare 122 stylesheets (median 5, max 14) and 195 external scripts. 22 sites put 78 synchronous scripts in the head (median 2, max 8, E28); only three sites use async/defer (10 scripts, all in the body). There are 36 inline head scripts; preload appears only on E25 (five tags) and preconnect is zero.

This study parses HTML tags and attributes only; it does not execute scripts or measure real load time or first-screen rendering.

25
homepages
122
stylesheets
78
head sync scripts
22
sites with head sync
3
use async/defer
0
preconnect

Method: parse tags and attributes, do not execute scripts

On 2026-11-08 between 12:43 and 12:45 each of the 25 homepages from study 4 received one GET (15-second timeout, one retry), and the link rel="stylesheet" and script tags were parsed: stylesheet count, head versus body position, and async, defer or type="module" (including boolean attributes without a value). CSS/JS files are not loaded and page scripts are not executed.

ItemRuleBoundary
Head sync scriptExternal script in head without async/defer/moduleActual execution time not measured
async/deferBoolean attribute presentOrder and dependencies not judged
Stylesheetrel contains stylesheetConditional loading beyond media not read
preload/preconnectlink rel countedNot judged against the critical path

Result: 122 stylesheets, median five

MetricValueNote
Total stylesheets122Across 25 sites
Median / max per site5 / 14Max on E16
No external stylesheet3 sitesE18, E20, E25
Print-only stylesheet0No site uses media="print" to cut blocking

Head sync scripts: 78 across 22 sites

MetricValueNote
Head sync scripts7822 sites have at least one
Median / max per site2 / 8Max on E28
Inline head scripts36Across 17 sites
External scripts195Including body and async

Synchronous head scripts delay parsing of the rest of the HTML: 78 scripts means these pages download and execute them in order before the first screen. E28 has eight, with E17, E19 and E27 at seven each; moving non-critical scripts to the end of the body or adding defer is the direct fix.

async/defer: three sites, ten scripts, all in the body

ItemSites / countNote
Uses async/defer/module3 sites / 10E02 one, E17 four, E25 five
async/defer in head0All async scripts are in the body
async/defer in body10Non-blocking but unordered

Async attributes are mostly used for analytics; none of the 22 sites with head sync scripts uses async/defer in the head. The current focus is where scripts sit, not how they load.

Preload and preconnect: one preloads, none preconnect

HintSitesNote
preload1E25 with five tags
preconnect0—

Preload/preconnect are not inherently good: they help only when they target critical first-screen resources. Zero preconnect means third-party handshakes are not explicitly optimised, but that should be read alongside the number of third parties, not as a defect on its own.

What this means for acceptance

  1. Make head sync scripts an acceptance item. 22 of 25 sites have them, 78 in total; move non-critical scripts to the end of the body or add defer.
  2. Actually use async attributes. Only three sites use async/defer, all in the body; none in the head.
  3. Control stylesheet count. Median five, max 14; bundling and critical-CSS inlining still have room.
  4. Audit inline scripts too. 17 sites have 36 inline head scripts; confirm each must run before the first screen.
  5. Use preload/preconnect only on the critical path. One site preloads and none preconnect; identify critical resources first. See the website development service checklist.

Limits

  • HTML only: no execution, so real blocking time, order and first-screen rendering are not measured.
  • Dynamic insertion excluded: script/link tags added by JavaScript are not in the HTML and are not counted.
  • One snapshot: 2026-11-08 12:43–12:45; redesigns or CDN differences change results.
  • Count is not impact: a tiny sync script and a large bundle block differently; only count and position are measured.
  • 25-site pilot: no industry claim.

Data and reproduction

Anonymised data: equipment-homepage-blocking-resources-2026.csv (25 rows × 14 columns: stylesheets, print stylesheets, total scripts, external scripts, head sync, head/body async, inline head, preload, preconnect, time). The repository keeps docs/research/2026-11-homepage-blocking-resources.csv.

Parser: scripts/blocking_resource_probe.py; unit tests: scripts/test_content_blocking_resources.py (10 tests, no network). Run:

python -m unittest scripts.test_content_blocking_resources

Related: the homepage CSS/JS cache-header pilot, the homepage resource inventory pilot, and the homepage font delivery pilot, and the homepage CSP pilot.

Sources and definitions

  1. Sample: the 25 homepages from study 4 (same sample_id).
  2. Fetch: 2026-11-08 12:43–12:45 Asia/Shanghai, serial, 0.5 s apart, 15-second timeout.
  3. Parsing: stylesheet links counted; scripts classified by head/body and async/defer/module (boolean attributes read from the raw tag).
  4. No CSS/JS is loaded and no page script is executed.

Frequently asked questions

Why do synchronous head scripts block?

The browser must download and execute them before parsing the rest of the HTML; moving them to the end of the body or adding defer/async avoids blocking first-screen parsing.

Do many stylesheets always mean slow?

No. Blocking depends on file size, critical CSS and the network; but more than ten stylesheets usually means bundling and critical-CSS inlining still have room.

defer or async?

defer keeps execution order and runs before DOMContentLoaded; async runs as soon as it downloads, without order, which suits independent scripts such as analytics.

Is preconnect necessary?

For critical third-party origins it can save a handshake; none use it here, which is not automatically wrong and depends on third-party dependencies and the critical path.

Do 25 sites represent the industry?

No. This is the same 25 equipment-company homepages from study 4; it describes only these pages.

Can the data be re-checked?

Yes. The public CSV has 25 rows by 14 columns; scripts/blocking_resource_probe.py has 10 offline unit tests.

About the author

Lingyi Information Official (delivery team) works on requirements, proposals and acceptance for corporate websites, brand and smart-manufacturing projects. This article parses HTML tags and attributes only; it does not execute scripts or measure real load or first-screen performance and is not a final verdict on any site; the 25-site sample is a pilot.

Missing canonical is a common homepage gap

25 sites: 9 canonical, 16 missing; 8 og:url.

Request a recheck plan