Webbplats

Minska TBT-tiden med fördröjd JavaScript-inläsning (Defer/Async)

  • 15 min läsning
  • Hostragons-teamet
Minska TBT-tiden med fördröjd JavaScript-inläsning (Defer/Async)

Fördröjd JavaScript-inläsning är en metod för att minska Total Blocking Time (TBT) genom att skjuta upp JavaScript-filer som blockerar webbläsarens rendering av sidinnehållet i rätt ordning. Kort sagt, genom att lägga till defer eller async till icke-kritiska skriptfiler minskar du låsningarna i huvudtråden; på så sätt ser användaren sidan snabbare, kan klicka tidigare och Core Web Vitals-metrikerna förbättras. För att implementera fördröjd JavaScript-inläsning på din webbplats bör du först identifiera vilka filer som är kritiska, använda defer för skript med beroenden och oftast async för oberoende tredjepartsskript, samt mäta TBT-värdet efter ändringarna med PageSpeed Insights, Lighthouse och Chrome DevTools.

I moderna webbplatser kommer prestandaproblem oftast inte från bilder utan från okontrollerad användning av JavaScript. Om en e-handelswebbplats har produktfilter, live support, reklampixlar, analyskoder, kommentarsplugins, A/B-testverktyg och temaskript som laddas samtidigt, kommer webbläsarens huvudtråd att vara upptagen under lång tid. Detta problem är särskilt tydligt på mobila enheter. Även om användaren ser titeln på skärmen kan de få ingen respons när de trycker på menyn; i Lighthouse-rapporten kan TBT framstå som högt.

I denna guide kommer vi att gå igenom vad defer och async-attributen gör, när du ska använda dem, hur du kan tillämpa dem i WordPress och skräddarsydda programvaruprojekt, vad du bör tänka på när du mäter, och realistiska TBT-vinster steg för steg. Rekommendationerna för webbplatser som är värd hos Hostragons följer allmänna webbstandarder; vi kommer också att diskutera hur rätt hosting, CDN, SSL och caching-beslut stödjer JavaScript-optimering. Hostragons webbhostingpaket

Vad är TBT och varför är det nära relaterat till JavaScript?

TBT är en förkortning av Total Blocking Time och mäter blockeringen av huvudtråden som fördröjer sidans beredskap för användarinteraktion. I Lighthouse-laboratorietester ökar TBT-värdet på grund av en överflöd av långa uppgifter som överstiger 50 millisekunder mellan First Contentful Paint och Time to Interactive. Till exempel, om en JavaScript-uppgift tar 180 ms, bidrar 130 ms efter de första 50 ms till blockeringstiden.

Denna metrisk är kritisk ur ett användarupplevelseperspektiv. Om en besökare trycker på menyn, knappen för att lägga till i korgen eller sökrutan när sidan har laddats, men webbläsaren fortfarande kör JavaScript, fördröjs interaktionen. Användaren tolkar detta som fryst, sen respons eller en trasig webbplats. Även om Google inte sammanfattar sidans upplevelse i en enda poäng i SEO-standarderna 2026, ger webbplatser som erbjuder snabb och stabil interaktion fördelar både när det gäller användarnöjdhet och konverteringsfrekvens.

Vanliga tecken på hög TBT

  • TBT-värdet överstiger 300 ms i den mobila PageSpeed Insights-rapporten.
  • Varningar i Lighthouse-rapporten som "Minska JavaScript-exekveringstid" eller "Minimera arbete på huvudtråden".
  • Menyn, slidern, filtren eller formulärfälten reagerar långsamt, trots att sidan visas.
  • Tredjepartsannonser, live support eller analyskript verkar ha hög kostnad i rapporten.
  • Speciellt på lågpresterande Android-enheter upplever användare fördröjningar vid scrollning och klick.

Som ett bra mål anses det vara hälsosamt att hålla TBT-värdet under 200 ms för de flesta innehållssajter. För mer komplexa e-handels- eller SaaS-gränssnitt kan det dock vara otillräckligt med enbart defer och async; koddelning, avlägsnande av onödiga paket, caching, förbättring av serverns svarstid och justering av kritisk CSS kan också vara nödvändigt. Ändå är fördröjd JavaScript-inläsning en av de första och mest effektiva optimeringarna som ska tillämpas i de flesta projekt.

Vad är Defer och Async?

När en skript-tagg används i HTML stoppar webbläsaren som standard HTML-parsing, laddar JavaScript-filen, kör den och fortsätter sedan med att bygga sidan. Detta beteende är ibland nödvändigt för kritiska skript; men när det används för varje fil producerar det onödiga väntetider. Defer och async-attributen ändrar detta beteende genom att knyta nedladdningen och körningen av filen till olika regler.

Hur fungerar Defer?

En skriptfil med defer laddas ner i bakgrunden medan HTML-parsing fortsätter; men körningen sker först efter att HTML-dokumentet har parsats. Dessutom bevaras ordningen för flera filer som använder defer, vilket gör det till ett säkert val för JavaScript-filer som är beroende av varandra. Till exempel, om en bibliotek först måste laddas och sedan ett tema-skript, kan defer vara lämpligt.

Ett exempel på användning ser ut så här: <script defer src=/js/app.js></script>. I detta fall laddas app.js-filen ner utan att blockera den första rendering av sidan, och körs i ordning när DOM är redo. Defer stöds ganska allmänt i moderna webbläsare och är ett pålitligt optimeringsverktyg för klassiska skriptfiler.

Hur fungerar Async?

En skriptfil med async laddas ner medan HTML-parsing fortsätter; men så snart nedladdningen är klar, körs den. Under denna tid kan HTML-parsing kort pausas. Async garanterar ingen ordning mellan filerna. Den som laddas först körs först. Därför är det mer lämpligt för analyser, annonser, spårningspixlar, externa widgets eller sociala medier-skript som fungerar oberoende.

Ett exempel på användning: <script async src=/js/analytics.js></script>. Denna fil bör inte vänta på att en annan lokal skript ska köras först. Om analytics.js är beroende av en variabel som definieras senare på sidan eller av ett bibliotek som jQuery kan async orsaka fel. Därför är async snabbt men kräver noggrann klassificering.

Jämförelsetabell för Defer och Async

Jämförelsetabell för Defer och Async
Egenskapdeferasync
Blockerar HTML-parsing under nedladdning?Nej, filen laddas ner i bakgrunden.Nej, filen laddas ner i bakgrunden.
KörningstidEfter att HTML-parsing är avslutad.Så snart filen har laddats ner.
OrdningsgarantiFinns, HTML-ordningen bevaras.Finns inte, den som laddas ner först körs först.
Optimal användningTema-skript, beroende moduler, huvudapplikationsfiler.Oberoende analyser, annonser, pixlar och externa widgetkoder.
RiskKan orsaka fördröjningar i kod som måste köras innan DOM är klar.Kan orsaka tävlingsproblem och fel i beroende filer.
TBT-påverkanÄr oftast säkert och balanserat för att minska initiala laddningsblockeringar.Effektiv för att tidigt separera oberoende tredjepartslaster.

En praktisk regel är: Om din fil måste köras i ordning, börja med defer. Om din fil är helt oberoende, överväg async. Om du är osäker, prova defer först i en staging-miljö, testa konsolfel och kritiska interaktioner. guide för staging-miljö och backup

Steg-för-steg-handlingsplan för fördröjd JavaScript-inläsning

Att slumpmässigt lägga till defer eller async till varje skript-tagg kan verka som en kortsiktig lösning för att öka poängen, men det kan störa kritiska funktioner på produktionssidan som betalningar, sökning, menyer, formulärvalidering eller korg. En hälsosam tillämpning måste följa en cykel av mätning, klassificering, små ändringar, testning och övervakning.

1. Mät nuvarande prestanda

Skapa ett basvärde innan du börjar. Spara mobil och skrivbordspoäng med PageSpeed Insights. Notera TBT, First Contentful Paint, Largest Contentful Paint och Speed Index-värden i Lighthouse-rapporten. Granska huvudtråden i Chrome DevTools Performance-fliken; långa gula block visar oftast kostnaden för JavaScript-analys, kompilering och körning.

Du kan förbereda en exempelstarttabell: mobil TBT 780 ms, JavaScript-exekveringstid 2,8 sekunder, huvudtrådsarbete 4,5 sekunder. Om mobil TBT efter optimering sjunker till 280 ms, har du uppnått en förbättring på cirka 64%. Sådana konkreta registreringar gör det lättare för teamet att se vilken förändring som har fungerat.

2. Skapa en skriptinventering

Lista alla JavaScript-filer som laddas i sidans källkod eller under Network-fliken. Identifiera ursprunget, storleken, när de behövs och deras beroenden för varje fil. Att dela in filerna i följande grupper kan underlätta ditt arbete:

  • Kritiska skript: Koder som behövs omedelbart för första visning eller grundläggande navigering.
  • Beroende lokala skript: Tema, slidern, filter, galleri och applikationsmoduler.
  • Oberoende tredjeparts skript: Analys, annonser, pixlar, chatt och sociala mediekomponenter.
  • Onödiga eller gamla skript: Filer som är kvar från oanvända plugins.
  • Villkorligt laddade skript: Skript som behövs endast på specifika sidor som formvalidering på kontaktsidan.

Den bästa optimeringen är ibland inte att lägga till defer, utan att ta bort en fil som inte är nödvändig. En 90 KB komprimerad fil kan kosta över 300 ms på en mobil enhet, inklusive parsing och körning. Därför är det en mer korrekt strategi att först städa bort det onödiga och sedan fördröja de återstående.

3. Identifiera filer för Defer

Vanligtvis är huvudtemaskript, menybeteenden, slidern-koder, produktgallerimoduler och applikationens bundle-filer bra kandidater för defer. Men en viktig förutsättning är att skriptet inte är alltför beroende av gamla och blockerande metoder som document.write och att det är acceptabelt att det körs efter att DOM är redo.

En WordPress-tema kan ha komplexa beroenden i jquery-migrate, huvudtemafilen och plugin-skript. Att göra jQuery-kärnan async kan vara riskabelt för många webbplatser, eftersom många plugins väntar på jQuery-ordningen. Istället kan det vara säkrare att tillämpa kontrollerad defer på jQuery-beroende filer eller använda optimerade laddningsalternativ på plugin-nivå. Guide för WordPress hastighetsoptimering

4. Välj filer för Async

Google Analytics, annonsmärken, Facebook Pixel, LinkedIn Insight Tag, vissa externa chatt-widgetar och sociala delningskoder är kandidater för async. Men alla tredjeparts skript är inte desamma. Vissa live supportverktyg kan vilja skapa användarsessioner så snart sidan laddas, medan vissa annonsystem kan förvänta sig en viss containerordning. Därför bör dokumentationen kontrolleras.

Att göra en oberoende analyskod async skadar vanligtvis inte användarupplevelsen. Men för att minska risken för databasförlust, kontrollera utlösningen i realtidsrapporter. Om du använder en taggförvaltare, organisera utlösarvillkoren istället för att stapla alla taggar i en enda container. Till exempel bör kommentarsövervakningsskript inte laddas på sidor utan kommentarsformulär och produktinteraktionsskript bör inte laddas på sidor som inte är produktbaserade.

5. Lägg till villkorlig och händelsebaserad laddning

Defer och async är en bra början; men att ladda JavaScript-filer baserat på användarbeteende kan ha en större inverkan på TBT. En live supportruta kan laddas först när användaren har stannat i 5 sekunder eller tryckt på hjälpknappen, snarare än så snart sidan öppnas. Koden för att bädda in kartan kan laddas när användaren scrollar till kontaktavsnittet. Videospelarens skript kan anropas när användaren trycker på play-knappen.

Denna strategi är särskilt effektiv för innehållssajter och företagswebbplatser. Eftersom en besökare behöver inte varje widget på varje sida. Att ta bort 200 KB JavaScript från den första laddningen kan minska TBT-värdet med hundratals millisekunder på svaga mobila processorer.

6. Testa och publicera gradvis

Istället för att direkt applicera ändringarna på den live-webbplatsen, testa dem i en staging-miljö. Gör manuella tester på kritiska sidor som startsidan, kategorisidan, produkt- eller tjänstesidan, kontaktsidan, inloggningsformuläret och betalningsflödet. Kontrollera om det finns fel i webbläsarens konsol. Speciellt fel som "Cannot read property", "is not defined" och "undefined function" indikerar ett problem med ordningen eller beroendet.

Gå över till live i små grupper. Optimera först oberoende tredjeparts skript, och gå sedan vidare till temaskript. Upprepa Lighthouse-rapporten efter varje ändring med samma nätverk och enhetssimulering. Lita inte på en enda mätning; att ta medelvärdet av 3 tester ger mer tillförlitliga resultat.

Noteringar för tillämpning av Defer och Async på WordPress-sidor

I WordPress-ekosystemet laddas JavaScript-filer genom wp_enqueue_script-funktionen via teman och plugins. Från 2026 kan skriptstrategier i moderna WordPress-versioner definieras mer kontrollerat. Men äldre teman, page builder-plugins och inkompatibla optimeringsplugins kan orsaka konflikter.

Om du använder ett prestanda-plugin, skapa en exkluderingslista istället för att fördröja all JavaScript med ett klick. Betalningssidan, inloggning, adminbar, autentisering och captcha-skript kan vara känsliga. På en webbplats som använder WooCommerce måste varukorgsbitar, betalningsgateway-skript och variationsväljare testas noggrant. WooCommerce hostinglösningar

En praktisk ordning för WordPress skulle kunna vara: Först ta bort oanvända plugins. Sedan gör de plugin-filer som endast behöver laddas på specifika sidor villkorliga. Därefter prova defer på tema och plugin-skript. Slutligen, använd async eller fördröjd laddning på oberoende tredjepartskoder. Denna metod minskar risken för stora avbrott vid en enda tidpunkt.

Att tänka på vid skräddarsydda program och ramverksprojekt

JavaScript-optimering i moderna strukturer som React, Vue, Angular, Next.js, Nuxt eller liknande är inte bara att lägga till defer i HTML-taggen. Paketstorlek, koddelning, tree shaking, dynamisk import och kostnaden för hydrering är avgörande för TBT. Om en enda stor bundle-fil är 700 KB kan huvudtråden blockeras under lång tid även om defer används.

Vid skräddarsydda program bör du använda ruttbaserad koddelning. När användaren är på startsidan bör inte administrationspanelen, grafikbiblioteket eller avancerade redigerarkoder laddas. Tunga komponenter bör anropas med dynamisk import vid behov. Identifiera oanvända beroenden med paketanalysverktyg. Överväg lättare alternativ istället för stora datum-, grafik- eller animationsbibliotek.

Var också försiktig med projekt som använder server-side rendering eller statisk produktion. Även om HTML kommer snabbt kan hydreringen av hundratals komponenter som aktiveras samtidigt öka TBT-värdet. Att undvika onödig client-side JavaScript i interaktiva innehåll är centralt för 2026 års prestandastrategi.

Relationen mellan hosting, serverns svarstid och JavaScript-prestanda

TBT är direkt relaterat till tiden för JavaScript-exekvering i webbläsaren; men hostinginfrastrukturen påverkar resultaten indirekt. Långsam TTFB, brist på komprimering, avsaknad av HTTP/2 eller HTTP/3-stöd, svagt caching och fördröjning på grund av avstånd orsakar att JavaScript-filer kommer sent. När filerna kommer sent förlängs sidans livscykel och användarupplevelsen försämras.

En kvalitetshostinginfrastruktur stöder optimering med Brotli eller Gzip-komprimering, aktiv webbläsarcaching, aktuell PHP-version, snabb diskteknik och CDN-integration. Korrekt installation av SSL-certifikat är också viktigt för moderna webbläsarfunktioner, HTTP/2 och säkra tredjepartsintegrationer. Hostragons SSL-certifikat Hostragons domänsökning

Till exempel kan samma JavaScript-fil, utan komprimering, vara 320 KB, medan den kan minska till 95 KB med Brotli. Detta minskar inte TBT-värdet direkt i samma proportion, eftersom TBT mäter exekveringskostnaden. Men nedladdningstiden kortas, resursprioriteringen lättas och den totala laddningsupplevelsen förbättras. Därför bör defer, async, caching och korrekt hosting beaktas tillsammans.

Kontrollista för mätning och verifiering

För att förstå om optimeringen har varit framgångsrik är det inte tillräckligt att bara titta på PageSpeed-poängen. Följande kontrollista hjälper dig att bedöma den verkliga effekten mer korrekt:

  • Har mobil TBT-värde jämförts före och efter optimering?
  • Har de mest kostsamma filerna minskat i JavaScript-exekveringstid-rapporten?
  • Har antalet långa uppgifter minskat i Chrome DevTools Performance-loggen?
  • Finns det några JavaScript-fel i konsolen?
  • Fungerar menyer, sökningar, filter, formulär, korgar och betalningsflöden smidigt?
  • Blir tredjepartsanalys och annonsmärken utlösta korrekt?
  • Förbättras INP och interaktionsfördröjningar i verkliga användardata?
  • Har ändringarna testats på nytt efter att cachen har rensats?

Det viktiga här är att särskilja laboratorie- och fältdata. TBT är en laboratoriemetrik från Lighthouse. I den verkliga användarupplevelsen har Interaction to Next Paint (INP) blivit mer avgörande. Men en minskning av TBT bidrar ofta till förbättringar av INP, eftersom det blir mindre blockering i huvudtråden.

Vanliga misstag och hur man undviker dem

Att göra alla skript async samtidigt

Detta är en av de vanligaste misstagen. Eftersom async inte ger någon ordningsgaranti kan det orsaka slumpmässiga fel i beroende filer. En struktur som ser bra ut på en sida kan gå sönder på en långsam anslutning eller i en annan webbläsare. Det är säkrare att använda defer för filer med beroenden.

Att felaktigt fördröja jQuery och beroende plugins

Speciellt på WordPress-sajter är många plugins beroende av jQuery-ordningen. Att göra jQuery-kärnan async kan få plugins att köras innan jQuery har laddats. Lösningen är att se beroenden och inkludera kritiska filer i exkluderingslistan.

Att lämna tredjeparts skript okontrollerade

Webbplatsägaren kan glömma att optimera sina egna temafiler när de arbetar med reklam, chatt och analyskoder. Men i Lighthouse-rapporter kommer de tyngsta uppgifterna oftast från tredjepartsresurser. Att ta bort oanvända taggar, göra villkorliga utlösningar och fördröja vid behov användarinteraktion ger betydande vinster.

Att installera plugins utan mätning

Prestanda-plugins kan vara användbara; men varje extra verktyg som används utan mätning kan introducera ny JavaScript- och CSS-belastning. Diagnostisera först problemet, välj sedan verktyget. Verifiera med en testrapport att pluginet verkligen sänker TBT.

Att ignorera konflikter mellan caching och minifiering

Om minifiering, sammanslagning, defer och async tillämpas samtidigt kan filordningen förändras. Detta kan leda till oväntade fel i produktionsmiljön. Särskilt om CDN, servercache och applikationscache används tillsammans, rensa alla lager efter ändringar.

En realistisk optimeringsscenarie

Låt oss anta att en medelstor företagswebbplats har 18 JavaScript-förfrågningar på sin startsida. Av dessa är 5 för tema och menybeteenden, 4 för slidern och animationer, 3 för formulär och kartor, och 6 för analys, pixlar och live support-koder. Den initiala Lighthouse-mobil TBT-värdet uppmäts till 920 ms.

I det första steget tas två oanvända animationsplugins bort, vilket minskar den komprimerade JavaScript-belastningen med 140 KB. TBT sjunker till 760 ms. I det andra steget görs tema- och sliderfiler till defer; ordningen av beroenden testas. TBT blir 480 ms. I det tredje steget laddas kartan endast när användaren scrollar till kontaktavsnittet, live support startas 7 sekunder senare, och analys- och pixelkoder görs till async. Den slutliga mätningen visar att TBT har sjunkit till 210 ms.

Detta scenario visar vikten av ett lager på lager-tillvägagångssätt istället för att förlita sig på en enda magisk inställning. Defer och async är kraftfulla verktyg; men de bästa resultaten uppnås genom att ta bort onödig kod, använda villkorlig laddning, korrekt caching och en kvalitetsinfrastruktur.

Slutsats: En balanserad och testad JavaScript-strategi för att sänka TBT

Att implementera fördröjd JavaScript-inläsning på din webbplats är en av de mest praktiska och effektiva sätten att minska TBT-tiden. Defer erbjuder en säker lösning för filer som bör köras i ordning och efter DOM, medan async är idealisk för att ladda oberoende tredjepartsskript mer flexibelt. För att lyckas med optimeringen bör du först mäta, klassificera skripten, ta bort onödiga filer, testa ändringar gradvis och övervaka verkliga användarupplevelser.

Genom att använda en snabb, säker och skalbar infrastruktur hos Hostragons kan du uppnå en mer stabil webbprestanda tillsammans med JavaScript-optimering, caching och SSL-konfigurationer. Om du vill förbättra TBT-värdet på din webbplats, börja med att skapa din nuvarande rapport och gå sedan vidare med små men mätbara steg. Du kan utforska Hostragons lösningar för lämplig hosting och prestandainfrastruktur. Hostragons webbhostingpaket

Vanliga frågor

Kan Defer och async användas samtidigt?

Om defer och async används tillsammans i en klassisk skript-tagg kan async prioritera i moderna webbläsare; vilket tar bort ordningens garanti. Därför rekommenderas det inte att använda dem tillsammans i samma fil i praktiken. Välj defer för beroende filer och async för oberoende filer för att vara säkrare.

Ökar fördröjd JavaScript-inläsning SEO-rankningen direkt?

Det ger inte en direkt rankningsgaranti; men det stöder SEO-framgång genom att förbättra sidans upplevelse, interaktionshastighet och Core Web Vitals-prestanda. Sidor som svarar snabbare kan öka användarnöjdheten, konvertering och uppfattningen om crawlbar kvalitet.

Är det säkert att lägga till defer till varje JavaScript-fil?

Nej. Vissa skript kan behöva köras i det första steget av sidan eller kan vara beroende av att andra filer laddas i en viss ordning. Därför bör syfte, beroende och körningstid kontrolleras för varje fil; ändringar bör testas i en staging-miljö.

Är defer och async tillräckliga för att sänka TBT?

De kan ge stora förbättringar på små och medelstora sidor; men för sidor som använder tunga ramverk, innehåller många tredjepartskoder eller stora bundle-filer krävs ytterligare åtgärder. Koddelning, borttagning av oanvänd JavaScript, villkorlig laddning, caching och en stark hostinginfrastruktur bör beaktas tillsammans.

Vilka skript bör jag inte göra async på en WordPress-sajt?

Skriptfiler som är beroende av jQuery, betalnings- och korg-skript, formulärvalidering, autentisering och kritiska temafunktioner bör inte göras till async slumpmässigt. Om ordningen i dessa filer störs kan användarens åtgärder påverkas negativt. Först bör defer testas, och en exkluderingslista bör skapas vid behov.

Dela detta inlägg:

Hostragons-teamet

Aktuella guider från vårt expertteam inom webbhotell, servrar och domäner. Låt oss hitta rätt lösning för ditt projekt tillsammans.

Kontakta oss