Hjemmeside

Sådan reducerer du TBT på din hjemmeside med forsinket JavaScript-indlæsning (Defer/Async)

  • 12 min. læsetid
  • Hostragons-teamet
Sådan reducerer du TBT på din hjemmeside med forsinket JavaScript-indlæsning (Defer/Async)

Forsinket JavaScript-indlæsning er en metode til at forbedre Total Blocking Time (TBT) på din hjemmeside ved at udsætte ikke-kritiske JavaScript-filer, så browseren kan gengive indholdet hurtigere. Ved at tilføje defer eller async til scripts, der ikke er essentielle for den første visning, undgår du at hovedtråden bliver blokeret – hvilket betyder, at brugeren ser siden hurtigere, kan klikke tidligere og Core Web Vitals-metrikker forbedres. For at implementere forsinket JavaScript-indlæsning skal du først identificere hvilke scripts der er kritiske, vælge defer til scripts med afhængigheder, async til uafhængige tredjeparts scripts, og derefter måle effekten på TBT med PageSpeed Insights, Lighthouse og Chrome DevTools.

På moderne websites skyldes performanceproblemer ofte ikke billeder, men overdreven og ukontrolleret JavaScript. En webshop kan have produktfiltre, live chat, annonce-pixels, analyseværktøjer, kommentar-plugins, A/B test scripts og temakode – alt sammen indlæst samtidig, hvilket belaster browserens hovedtråd markant. Dette er især tydeligt på mobile enheder. Selvom brugeren ser sidens overskrift, kan menuen være langsom eller helt uresponsiv, og Lighthouse-rapporten viser høj Total Blocking Time.

I denne guide gennemgår vi trin for trin, hvordan defer og async fungerer, hvornår du bør bruge dem, hvordan du implementerer dem i WordPress og specialudviklede projekter, hvad du skal være opmærksom på ved måling, samt realistiske TBT-gevinstscenarier. Vores anbefalinger er baseret på generelle webstandarder og Hostragons hosting-infrastruktur, og vi kommer også ind på, hvordan korrekt hosting, CDN, SSL og cache-strategier understøtter JavaScript-optimering. Hostragons webhosting pakker

Hvad er TBT, og hvorfor er det tæt knyttet til JavaScript?

TBT står for Total Blocking Time og måler hvor længe browserens hovedtråd er blokeret, inden siden er klar til brugerinteraktion. I Lighthouse-laboratorietests øges TBT, hvis der mellem First Contentful Paint og Time to Interactive er for mange “lange opgaver” over 50 millisekunder. Hvis et JavaScript-script tager 180 ms, bidrager de sidste 130 ms til TBT.

Dette er afgørende for brugeroplevelsen: Hvis en besøgende klikker på menuen, tilføjer til kurven eller bruger søgefeltet kort efter, at siden vises, men browseren stadig eksekverer JavaScript, opleves det som langsomt, frosset eller ustabilt. I 2026 SEO-standarder fremhæver Google ikke ét samlet page experience-score, men hurtige, stabile interaktioner øger både brugertilfredshed og konvertering.

Tegn på høj TBT

  • Mobil PageSpeed Insights-rapporten viser TBT over 300 ms.
  • Lighthouse-rapporten advarer med “Reduce JavaScript execution time” eller “Minimize main-thread work”.
  • Menu, sliders, filtre eller formularer reagerer langsomt, selvom siden er synlig.
  • Tredjeparts scripts til annoncer, chat eller analytics har høj omkostning i rapporten.
  • Især på billige Android-enheder opleves forsinkelse ved scroll og klik.

For de fleste content-sites er det anbefalet at holde TBT under 200 ms. På mere komplekse shops eller SaaS interfaces kræver dette ofte mere end defer og async; code-splitting, fjernelse af unødvendige pakker, caching, forbedring af serverens svartid og optimering af kritisk CSS kan også være nødvendigt. Men forsinket JavaScript-indlæsning er et af de hurtigste og mest effektive første skridt.

Hvad er Defer og Async?

Som standard stopper browseren HTML-parsing, når den støder på et <script> tag, downloader JavaScript-filen, kører den og fortsætter derefter. Dette er nødvendigt for kritiske scripts, men unødvendigt for alle scripts. defer og async ændrer denne adfærd og styrer, hvordan og hvornår scripts downloades og eksekveres.

Hvordan fungerer defer?

Med defer downloader browseren scriptet i baggrunden, mens HTML-parsingen fortsætter. Scriptet køres først, når hele dokumentet er parsed. Flere defer-scripts eksekveres i den rækkefølge, de er skrevet i HTML-koden. Derfor er defer godt til scripts med indbyrdes afhængigheder – f.eks. et bibliotek efterfulgt af et tema-script.

Eksempel: <script defer src="/js/app.js"></script>. Her henter browseren app.js uden at blokere sidens rendering, og kører det, når DOM er klar. Moderne browsere understøtter defer bredt og det er en pålidelig metode til klassiske scripts.

Hvordan fungerer async?

Med async downloader browseren også scriptet i baggrunden, men kører det straks, når download er færdig – selvom HTML-parsingen ikke er færdig. Async garanterer ikke rækkefølge; det første script, der er færdig med at hente, køres først. Derfor egner async sig bedst til uafhængige scripts som analytics, annonce-pixels, eksterne widgets eller sociale medier.

Eksempel: <script async src="/js/analytics.js"></script>. Analytics.js bør ikke afhænge af variabler eller biblioteker, der først senere defineres (som jQuery). Async er hurtigt, men kræver omhyggelig klassificering af scripts.

Sammenligning: Defer vs. Async

Sammenligning: Defer vs. Async
Egenskabdeferasync
Blokerer HTML-parsing under download?Nej, downloader i baggrunden.Nej, downloader i baggrunden.
EksekveringstidspunktEfter HTML-parsing er færdig.Straks efter download.
RækkefølgerespektJa, scripts eksekveres i HTML-orden.Nej, først downloadet køres først.
Bedste anvendelseTemascripts, afhængige moduler, hovedapplikation.Uafhængige analytics, annoncer, pixels, eksterne widgets.
RisikoKan forsinke kode, der skal køre før DOM er klar.Kan give race-conditions og fejl i afhængige scripts.
TBT-effektReducerer initial blokering på balanceret vis.Effektiv til tidlig separation af uafhængige scripts.

Praktisk tommelfingerregel: Hvis scriptet skal køre i rækkefølge, start med defer. Hvis det er helt uafhængigt, vurder async. Test først med defer i staging-miljø, og tjek konsolfejl og kritiske interaktioner. Guide til staging miljø og sikkerhedskopiering

Trin-for-trin plan for forsinket JavaScript-indlæsning

Det er fristende at tilføje defer eller async til alle scripts for hurtigt at forbedre performance-score, men det kan ødelægge vigtige funktioner som betaling, søgning, menu, validering eller kurv. Sund implementering kræver måling, klassificering, små ændringer, test og overvågning.

1. Mål den nuværende performance

Start med at etablere et baseline. Notér PageSpeed Insights-score for mobil og desktop. I Lighthouse: TBT, First Contentful Paint, Largest Contentful Paint og Speed Index. Brug Chrome DevTools til at analysere main-thread; lange gule blokke er typisk JavaScript parsing, compilation og execution.

Du kan lave en starttabel: mobil TBT 780 ms, JavaScript execution time 2,8 sekunder, main-thread work 4,5 sekunder. Hvis du får TBT ned på 280 ms, har du opnået ca. 64% forbedring. Dokumentation gør det lettere for teamet at se, hvad der virker.

2. Lav en script-oversigt

List alle JavaScript-filer, som indlæses i kildekoden eller via Network-tab. Notér kilde, størrelse, hvornår de skal bruges og afhængigheder. Grupper dem:

  • Kritiske scripts: Bruges til initial visning/navigation.
  • Afhængige lokale scripts: Tema, sliders, galleri, app-moduler.
  • Uafhængige tredjeparts scripts: Analytics, annoncer, pixels, chat, sociale widgets.
  • Unødvendige/ældgamle scripts: Rester fra gamle plugins.
  • Betingede scripts: Kun nødvendig på kontakt- eller specifikke sider.

Den bedste optimering er ofte at fjerne ubrugte scripts, ikke bare at tilføje defer. En komprimeret fil på 90 KB kan koste over 300 ms på mobile devices. Ryd op først, og forsink derefter resten.

3. Identificér scripts der skal have defer

Typisk er tema-scripts, menu-funktioner, sliders, galleri-moduler og app-bundles gode kandidater til defer. Betingelsen er, at scriptet ikke er afhængig af gamle blokkerende metoder som document.write, og at det er okay, hvis det først eksekveres, når DOM er klar.

Et WordPress-tema kan have komplekse afhængigheder (fx jquery-migrate, hovedtema-fil, plugin scripts). Det er risikabelt at gøre jQuery async, fordi mange plugins kræver korrekt rækkefølge. Brug i stedet defer til scripts med jQuery-afhængighed, og overvej plugin-niveau optimering. Guide til WordPress hastighedsoptimering

4. Identificér scripts til async

Google Analytics, annonce-tags, Facebook Pixel, LinkedIn Insight Tag, enkelte chat-widgets og sociale delingskode er gode til async. Men ikke alle tredjeparts scripts er ens; nogle chat-systemer skal initialisere hurtigt, andre annoncer har behov for containers. Undersøg dokumentationen.

Async på uafhængige analyse-scripts skader sjældent brugeroplevelsen. For at undgå datatab, kontroller triggers i real time. Med tag manager bør du ikke samle alle tags i én container, men indstille betingelser. Eksempel: Kommentar-tracking scripts bør ikke loade på sider uden formular.

5. Tilføj betinget og eventbaseret indlæsning

defer og async er gode startpunkter, men du kan forbedre TBT yderligere ved at indlæse scripts baseret på brugerhandlinger. Live chat kan loade først efter 5 sekunder eller når en bruger klikker på hjælp. Kort-embed kode kan indlæses, når brugeren scroller til kontaktsektionen. Video-afspiller script kan først loades ved klik på afspil.

Dette er især effektivt på content- og virksomheds-sites. Brugeren har ikke brug for alle widgets på alle sider. Ved at fjerne 200 KB initial JavaScript kan du reducere TBT med flere hundrede ms på svage mobiler.

6. Test og udrul gradvist

Test ændringer i staging, ikke direkte på live-sitet. Lav manuelle tests på forsiden, kategorier, produktsider, kontakt, login og checkout. Tjek for konsolfejl. Fejl som “Cannot read property”, “is not defined” eller “undefined function” tyder på fejl i rækkefølge eller afhængigheder.

Rollout bør ske gradvist: Start med uafhængige tredjeparts scripts, derefter tema-scripts. Brug samme netværk og device-simulering efter hver ændring, og tag gennemsnit af tre tests for mere præcise resultater.

Noter til Defer og Async på WordPress-sites

I WordPress indlæses scripts via wp_enqueue_script i temaer og plugins. Moderne WordPress (2026) tillader mere kontrolleret script-strategi, men gamle temaer, page builders og inkompatible optimerings-plugins kan give konflikt.

Brug ikke en performance-plugin til at udsætte alle scripts på én gang – lav i stedet en eksklusionsliste. Checkout, login, adminbar, sikkerhedsvalidering og captcha-scripts er følsomme. På WooCommerce skal du teste kurv-fragments, betalings-gateway scripts og variantvælger nøje. WooCommerce hosting løsninger

Praktisk rækkefølge for WordPress: Fjern ubrugte plugins først. Derefter gør plugin scripts betingede, så de kun loader på nødvendige sider. Prøv defer på tema- og plugin scripts. Til sidst brug async eller eventbaseret indlæsning på uafhængige tredjeparts scripts. Så minimerer du risikoen for store nedbrud.

Vigtige forhold ved specialudviklede projekter og frameworks

I moderne frameworks som React, Vue, Angular, Next.js, Nuxt osv. er JavaScript-optimering mere end bare defer på HTML-tags. Pakke-størrelse, code splitting, tree-shaking, dynamic imports og hydration koster på TBT. En stor bundle på 700 KB blokerer stadig hovedtråden under eksekvering, selv med defer.

Brug route-baseret code splitting: Når brugeren er på forsiden, bør admin-panel, grafbiblioteker eller avancerede editorer ikke downloades. Tunge komponenter bør indlæses dynamisk ved behov. Brug værktøjer til at finde ubrugte afhængigheder. Vælg lette alternativer til store biblioteker for dato, grafik eller animation.

Ved server-side rendering eller statisk generering skal du også være opmærksom. Selvom HTML loader hurtigt, kan hydration af hundrede komponenter samtidig øge TBT. Undgå unødvendig client-side JavaScript på ikke-interaktive sider – det er en central performance-strategi i 2026.

Hosting, serverrespons og JavaScript-performance

TBT afhænger primært af JavaScript-eksekvering i browseren, men hosting påvirker indirekte. Langsom TTFB, manglende komprimering, ingen HTTP/2/3, svag caching og geografisk afstand kan få scripts til at nå browseren langsommere. Jo senere scripts ankommer, desto længere er sidens livscyklus og brugeroplevelsen forværres.

God hosting understøtter performance med Brotli/Gzip-komprimering, effektiv browser-cache, opdateret PHP, hurtige SSD/NVMe-diske og CDN-integration. Korrekt SSL-installation er vigtigt for moderne browserfunktioner, HTTP/2 og sikre tredjeparts integrationer. Hostragons SSL certifikater Hostragons domænesøgning

Eksempel: En JavaScript-fil på 320 KB kan reduceres til 95 KB med Brotli. Det sænker ikke TBT direkte (da TBT måler eksekvering), men download går hurtigere, ressourcer prioriteres bedre og den samlede load-oplevelse forbedres. Tænk derfor defer, async, cache og hosting som en samlet strategi.

Tjekliste til måling og validering

  • Er mobil TBT målt før og efter optimering?
  • Er de tungeste JavaScript-filer blevet lettere i execution time-rapporten?
  • Er antallet af lange opgaver faldet i Chrome DevTools Performance?
  • Er der JavaScript-fejl i konsollen?
  • Fungerer menu, søgning, filtre, formular, kurv og checkout?
  • Triggeres tredjeparts analytics og annonce-tags korrekt?
  • Er INP og interaktionsforsinkelser forbedret i real user data?
  • Er ændringer testet efter cache-clearing?

Det er vigtigt at skelne mellem laboratorie- og feltdata. TBT er en laboratoriemetrik i Lighthouse. Interaction to Next Paint (INP) er nu mere relevant i real world user data. Men lavere TBT forbedrer ofte INP, da hovedtråden er mindre blokeret.

Almindelige fejl og hvordan du undgår dem

Async på alle scripts samtidig

En klassiker: Async garanterer ikke rækkefølge, så afhængige scripts kan fejle vilkårligt. Det, der virker på én side, kan fejle på langsomme netværk eller i andre browsere. Brug defer til afhængige scripts.

Forkert udsættelse af jQuery og afhængige plugins

Især på WordPress er mange plugins afhængige af jQuery. Gør du jQuery async, risikerer du, at plugins loader før jQuery. Løsningen: Se afhængighedsnetværket, og undtag kritiske scripts fra defer/async.

Ignorering af tredjeparts scripts

Siteejere optimerer ofte egne tema-scripts, men overser annoncer, chat og analytics. De er dog ofte de tungeste i Lighthouse-rapporten. Fjern ubrugte tags, brug betingede triggers og udsæt scripts til brugerinteraktion, hvis muligt.

Installation af plugins uden måling

Performance-plugins kan være nyttige, men enhver ny plugin tilføjer JavaScript og CSS. Diagnosér først problemet, vælg derefter værktøjet, og verificér effekten på TBT med rapporter.

Ignorering af cache- og minifikationskonflikter

Kombinerer du minifikation, bundling, defer og async kan script-rækkefølgen ændres. Det kan give uventede fejl i produktion. Bruges CDN, server- og applikationscache samtidig, så ryd alle lag efter ændringer.

Eksempel: Realistisk optimerings-scenarie

Forestil dig en virksomheds-hjemmeside med 18 JavaScript requests på forsiden. 5 til tema/menu, 4 til sliders/animationer, 3 til formular/kort, 6 til analytics/pixels/chat. Initial Lighthouse mobil TBT: 920 ms.

Først fjernes to ubrugte animation-plugins og 140 KB JavaScript. TBT falder til 760 ms. Dernæst sættes tema- og slider-scripts til defer; rækkefølge testes. TBT: 480 ms. Kort-script loader kun ved scroll til kontaktsektionen, chat starter efter 7 sekunder, analytics/pixels sættes til async. Final TBT: 210 ms.

Dette viser, at lagdelte tiltag er nødvendige – ikke én magisk indstilling. Defer og async er stærke værktøjer, men bedst effekt opnås ved at fjerne overflødig kode, bruge betinget indlæsning, cache og god infrastruktur.

Konklusion: Få lavere TBT med balanceret og testet JavaScript-strategi

Forsinket JavaScript-indlæsning er et effektivt og pragmatisk middel til at reducere TBT på din hjemmeside. defer er sikkert til scripts, der kan køre efter DOM er klar; async er ideelt til uafhængige tredjeparts scripts. Succes kræver, at du måler, klassificerer scripts, fjerner unødvendige filer, tester ændringer gradvist og monitorerer den reelle brugeroplevelse.

Med Hostragons får du en hurtig, sikker og skalerbar platform, hvor JavaScript-optimering, caching og SSL-setup giver stabil webperformance. Vil du forbedre TBT, start med at analysere din nuværende rapport og implementer små, målbare ændringer. Se Hostragons løsninger for optimal hosting og performance. Hostragons webhosting pakker

Ofte stillede spørgsmål

Kan defer og async bruges samtidigt?

Hvis du tilføjer defer og async på samme script, vil moderne browsere prioritere async – rækkefølgen er ikke garanteret. Derfor bør du ikke bruge begge på én gang. Brug defer til afhængige scripts, async til uafhængige.

Forbedrer forsinket JavaScript-indlæsning direkte SEO-rangering?

Det er ikke en direkte rangeringfaktor, men forbedrer page experience, interaktionshastighed og Core Web Vitals – hvilket støtter SEO. Hurtigere og mere responsive sider giver bedre brugertilfredshed, konvertering og crawlability.

Er det sikkert at tilføje defer til alle JavaScript-filer?

Nej. Nogle scripts skal køre tidligt eller har afhængigheder, der kræver specifik rækkefølge. Tjek formål, afhængighed og timing for hvert script, og test ændringer i staging.

Er defer og async nok til at reducere TBT?

På mindre sites kan det give store forbedringer, men på tunge frameworks eller med mange tredjeparts scripts kræves ekstra tiltag: code-splitting, fjernelse af unødvendig JavaScript, betinget indlæsning, caching og solid hosting.

Hvilke WordPress scripts bør ikke sættes til async?

Plugins, der er afhængige af jQuery, betalings- og kurv scripts, formularvalidering, sikkerhedsvalidering og kritiske tema-funktioner bør ikke sættes til async. Forkert rækkefølge kan skade brugeroplevelsen. Prøv defer først, og lav en eksklusionsliste efter behov.

Del denne artikel:

Hostragons-teamet

Opdaterede guider fra vores ekspertteam om hosting, servere og domænenavne. Lad os sammen finde den rigtige løsning til dit projekt.

Kontakt os