Kort fortalt: Speculation Rules er en deklarativ måde at fortælle browseren hvilke navigeringer den må optimere med prefetch og/eller prerender. Du beskriver reglerne i HTML (eller via JS), og browseren vælger selv om den vil udføre dem – typisk baseret på netværk, batteri, brugeradfærd og sikkerhed.
Hvad betyder Speculation Rules?
Når en bruger klikker på et link, starter browseren normalt først anmodningen efter klikket. Med Speculation Rules kan browseren starte forberedelsen før klikket, så næste side kan føles øjeblikkelig.
Der er to idéer (som ofte blandes sammen):
- Prefetch: hent ressourcer på forhånd, så download bliver kortere ved klik.
- Prerender: gå længere og forbered hele siden i baggrunden, så den i praksis kan “skifte” uden at lave hele arbejdet fra scratch.
I praksis er prerender den “kraftige” optimering, men også den der nemmest kan koste for meget.
Hvorfor er det vigtigt (og hvornår giver det mening)?
Speculation Rules er især interessant på sites hvor brugeren typisk klikker videre i en forudsigelig sti:
- Artikler der linker videre til en næste guide
- Kategorisider hvor brugeren næsten altid klikker på et af de første resultater
- Interne “hub”-sider (fx emnesider) hvor næste klik ofte er kendt
Hvis du allerede har fornuftig TTFB, caching (Cache-Control) og du har styr på render-blocking, kan Speculation Rules være et lag ovenpå der gør navigationen hurtigere – ikke kun første load.
Sådan ser det ud i praksis
Du kan definere regler i et <script type="speculationrules">-element. Eksemplet nedenfor er konceptuelt (brug kilden i bunden for korrekt syntax i din browser-version):
- vælg en snæver mængde links
- brug en konservativ strategi først (prefetch før prerender)
- mål effekten i virkelige flows, ikke kun på én side
Det vigtigste er ikke “at slå det til”, men at vælge hvilke sider der er realistiske næste klik.
Typiske fejl og misforståelser
1) “Prerender alt i menuen”
Det lyder fristende, men er ofte direkte skadeligt:
- På mobil kan du bruge CPU/batteri og skabe dårligere INP (fordi main thread får mere arbejde).
- Du kan bruge netværk på sider brugeren aldrig åbner.
- Du risikerer at konkurrere med downloads der er kritiske for den nuværende side (CSS, billeder, scripts).
Start småt: 1–3 sandsynlige næste klik.
2) “Hvis prerender er slået til, er LCP løst”
Nej. Prerender kan gøre næste side hurtigere at vise, men hvis selve skabelonen har tung rendering (fx dyre baggrunde, store billeder, render-blocking), er problemet der stadig. Prerender flytter bare hvornår arbejdet sker.
3) “Det kræver altid JavaScript”
Ideen med Speculation Rules er netop at gøre det mindre “script-hack”. Du kan beskrive regler uden at bygge et komplekst runtime-system – og browseren kan vælge at ignorere dem i uegnede situationer.
Hvordan du måler om det virker
For øvede giver det mening at kombinere:
- Chrome DevTools Performance for at se hvad der sker omkring navigationer
- Navigation Timing API og evt. Resource Timing API for timings
- Rigtige brugerflows (RUM) – se RUM hvis du vil måle bredt
Du leder efter lavere “click-to-render” på næste side – uden at nuværende side bliver tungere.
Relaterede begreber og næste skridt
- Prefetch og Prerender – beslægtede teknikker (og forskelle i risiko)
- Preload – når du vil prioritere en kritisk ressource (fx LCP-billede) snarere end hele dokumenter
- HTTP prioritet og fetchpriority – når du vil styre rækkefølgen på netværksarbejde
- Guides: start med Fjern render-blocking og brug derefter speculation til navigationer, når grundfundamentet er sundt
FAQ
Er Speculation Rules det samme som prefetch?
Nej. Prefetch henter typisk ressourcer (og kan være diskret), mens Speculation Rules kan bede browseren om både prefetch og prerender af hele dokumenter – afhængigt af reglerne og browserens politik.
Kan prerender give dårligere performance?
Ja. Hvis du prerender for bredt, kan du bruge CPU/netværk på sider brugeren aldrig besøger. Det kan skade INP/batteri på mobil og stjæle båndbredde fra det der faktisk er kritisk.
Virker det i alle browsere?
Understøttelse varierer. Det er netop derfor Speculation Rules er lavet som en deklarativ API: browseren kan ignorere regler den ikke kan eller vil udføre, uden at din side går i stykker.
Eksterne kilder
Primær reference til API’et og adfærden i moderne browsere.
Næste skridt fra begreb til handling
Guides og blogindlæg der matcher begrebets emne - ud fra fælles tags og sidens fokus.
Fjern render blocking CSS og JavaScript for hurtigere første visning
Lær hvordan du reducerer render blocking fra CSS og JavaScript, så siden viser indhold hurtigere og giver bedre FCP og LCP.
Gør hero til LCP: sådan ændrer du struktur, CSS og prioritering
Hvis LCP bliver en tilfældig paragraf i stedet for hero, får du både dårligere tal og en måling der ikke matcher brugerens første indtryk. Her er en konkret metode til at få hero (H1/billede) til at blive LCP – uden at snyde.
Fjern eller udsæt tunge tredjeparts scripts uden at ødelægge funktionalitet
Følg en praktisk guide til at finde, vurdere og udsætte tredjeparts scripts, så de ikke ødelægger LCP, INP og den samlede brugeroplevelse.
5 grunde til at din hjemmeside er langsom og hvad du gør ved det
Se de mest almindelige årsager til en langsom hjemmeside, hvordan du spotter dem, og hvilke ændringer der typisk giver mest effekt først.
Hvordan du spotter render delay (uden at stirre på score)
Render delay er ofte grunden til at LCP bliver 1–2 sekunder for sent, selv når TTFB ser fin ud. Her er metoden til at finde årsagen hurtigt – og vælge den rigtige type fix.
Hvordan tredjeparts scripts gør din hjemmeside langsom
Få overblik over hvordan chat widgets, tracking, consent, video embeds og andre tredjeparts scripts påvirker LCP, INP, CLS og TTFB.