perf/no-blocking-scripts

Af content-framework-redaktionen · Opdateret
Performance · scope: page · severity: error

No render-blocking scripts in <head>. Reglen perf/no-blocking-scripts kører i page-scope med severity 'error' og indgår i performance-domænet sammen med 7 andre kontrakter i frameworket.

Hvorfor no-blocking-scripts findes

A synchronous <script src> in <head> halts HTML parsing until the script downloads and executes — usually the single largest FCP/LCP penalty. Gold standard for content sites: zero JS by default; any scripts use defer, async or type="module".

Sådan håndhæves no-blocking-scripts

Reglen no-blocking-scripts evalueres på hver enkelt renderet HTML-side for sig, så et fund altid kan føres tilbage til én konkret side og én konkret rettelse i data eller template. Fejler en side, får agenten en finding, hvor fix-instruktionen for no-blocking-scripts er formuleret som en konkret arbejdsordre med filnavne og målbare krav — aldrig et vagt råd. Severity 'error' betyder at et brud på no-blocking-scripts fejler hele verifikationen med exit-kode 1, så hverken CI eller en agent kan skibe sitet før fundet er rettet.

Domænet: performance

Perf-domænet internaliserer de statisk afgørbare dele af Lighthouse: billedformater og -vægt, render-blokerende ressourcer, dimensioner mod layout shift og selvhostede fonte. Målet er ikke en score men disciplin — siden er hurtig, fordi den ikke kan bygges langsom. Netop derfor hører no-blocking-scripts hjemme her: kravet kan afgøres maskinelt, og dermed kan det håndhæves i stedet for blot at blive anbefalet.

Test og fixtures

Som alle kontrakter i frameworket har perf/no-blocking-scripts en mutant-test, der beviser at reglen fejler, når kravet brydes — en regel uden en fejlende test er ikke en regel. Golden-fixturet beviser omvendt, at en fuldt compliant side består no-blocking-scripts sammen med de øvrige 85 regler, og denne demoside er selv underlagt hele kontrakten.

Relaterede regler

Tilbage til oversigten over alle 86 regler.