Securealy
Check · Performance · info · passive

Few render-blocking resources

Fewer than four blocking scripts or stylesheets in the head.

Severity
info
Tier
Passive: runs on any URL
Category
Performance
Fix
Summary below; full runbook in the Fix Kit, Module 01: Ship it
Id
render-blocking

What this means

Passing means fewer than four stylesheets and synchronous scripts sit in the head of your home page. Failing means four or more, each of which the browser must download and run before it draws anything. A stylesheet in the head always blocks; a script blocks unless it is marked defer or async.

How we test it

We parse the head of the home page and count <link rel="stylesheet"> tags and <script src> tags that carry neither defer nor async. Fewer than four passes. Four or more fails. Scripts placed at the end of the body are not counted.

Why it matters

Blocking resources delay first paint. The visitor sees a blank page until the last blocking file in the head has arrived and run, and on mobile data that is the gap between opening the site and seeing anything. The kit's rule for this module is no render-blocking third-party scripts in the head at all: analytics and widgets load with defer or after interaction, and fonts are self-hosted or system so there is no third-party stylesheet to wait on.

The fix

Give analytics and widget scripts in the head defer or load them after interaction, self-host or use system fonts so no font stylesheet sits in the head, and keep the remaining stylesheets to the few the first paint needs. Confirm with curl -s https://YOUR_DOMAIN/ | grep -oE '<(link[^>]+rel="stylesheet"|script[^>]+src=)[^>]*>' | grep -vcE 'defer|async', expected a number under 4. The full runbook is in the Fix Kit, Module 01.

Prompt for your AI

Paste this into the coding agent that built the app. It reproduces the finding and stops before changing anything; the fix steps are in the kit.

Do not change anything. This is a verification pass.
Run: curl -s https://YOUR_DOMAIN/ | sed -n '/<head/,/<\/head>/p' | grep -oE '<(link[^>]+rel="stylesheet"|script[^>]+src=)[^>]*>' and show me every tag.
Tell me which of those are scripts without defer or async, which are stylesheets, and which come from a third party.
Tell me which template or component emits each one.
Count the blocking ones and tell me the number.
List what it would take to bring the count under four, and stop there.
Run: curl -s https://YOUR_DOMAIN/ | sed -n '/<head/,/<\/head>/p' | grep -oE '<(link[^>]+rel="stylesheet"|script[^>]+src=)[^>]*>' | grep -vcE 'defer|async' and show me the output. Expected on a passing site: a number under 4.

Next

Grade your own URL

Every grade lists this check with its evidence for your site. Two free grades a day.