Fördjupning i LCP, FID och CLS
Analysera Largest Contentful Paint (LCP), First Input Delay (FID) och Cumulative Layout Shift (CLS) i detalj, tillsammans med tekniker för att optimera dem.
Fördjupning i LCP, FID och CLS är en gratis lektion i Optimering av webbprestanda och Lighthouse på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Optimering av webbprestanda och Lighthouse, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Optimering av webbprestanda och Lighthouse innehåller totalt 4 lektioner.
Fördjupning i Core Web Vitals
Välkomna till en djupare genomgång av Core Web Vitals! Dessa mätvärden är avgörande för att förstå och förbättra användarupplevelsen på webbplatsen.
I den här lektionen analyserar vi Largest Contentful Paint (LCP), First Input Delay (FID) och Cumulative Layout Shift (CLS). Ni får lära er vad varje mätvärde mäter, varför de är viktiga och praktiska metoder för att optimera dem.
Largest Contentful Paint (LCP)
Largest Contentful Paint (LCP) mäter hur lång tid det tar innan det största synliga innehållselementet i visningsområdet renderas. Tänk på det som hur snabbt användaren ser sidans huvudinnehåll.
- Ett bra LCP-resultat är 2,5 sekunder eller mindre.
- Allt över 4 sekunder betraktas som dåligt.
LCP är en viktig indikator på sidans upplevda laddningshastighet.
Vad räknas med i LCP?
Alla element bidrar inte till LCP. Vanligtvis är det den största bilden eller det största textblocket som syns när sidan laddas första gången som är LCP-elementet. Vanliga LCP-element är:
<img>-element<video>-element (med sin förhandsvisningsbild)- Element med en bakgrundsbild som laddas via
url() - Text-element på blocknivå som innehåller textnoder (till exempel
<h1>och<p>)
Att känna till ert LCP-element är det första steget mot att optimera det!
Optimera LCP: snabba upp resurser
En viktig faktor för LCP är hur snabbt webbläsaren kan hämta och rendera kritiska resurser, särskilt bilder och typsnitt. Här är en vanlig strategi:
- Förladda kritiska bilder: Använd
<link rel="preload">för att tala om för webbläsaren att hämta resurser med hög prioritet tidigare. - Optimera bilder: Komprimera dem, använd moderna format (WebP, AVIF) och responsiva bilder.
- Minimera renderingsblockerande resurser: Minska eller senarelägg CSS och JavaScript som hindrar sidan från att renderas snabbt.
Nu tittar vi på ett exempel där en hero-bild förladdas:
<!DOCTYPE html>
<html>
<head>
<title>LCP Preload Demo</title>
<!-- Preload the hero image to fetch it early -->
<link rel="preload" href="https://via.placeholder.com/800x450.webp" as="image">
<style>
body { margin: 0; font-family: sans-serif; }
img { max-width: 100%; height: auto; display: block; }
h1 { padding: 10px; }
</style>
</head>
<body>
<h1>Welcome to Our Site!</h1>
<!-- The actual image will render faster due to preload -->
<img src="https://via.placeholder.com/800x450.webp" alt="Important Hero Image" width="800" height="450">
<p>This image is likely the LCP element. Preloading helps it appear faster.</p>
</body>
</html>First Input Delay (FID)
First Input Delay (FID) mäter tiden från det att en användare interagerar med en sida för första gången (till exempel klickar på en knapp eller trycker på en länk) tills webbläsaren faktiskt kan börja bearbeta interaktionen.
Det handlar om responsivitet och hur snabbt sidan reagerar på användarens inmatning. Måttet mäter inte hur lång tid det tar att köra händelsehanteraren, utan bara fördröjningen innan körningen kan börja.
- Ett bra FID-värde är 100 millisekunder eller mindre.
- Allt över 300 millisekunder anses vara dåligt.
Varför FID är högt: Huvudtråden är upptagen
Ett högt FID-värde innebär ofta att webbläsarens huvudtråd är upptagen med annat arbete, vanligtvis med att köra JavaScript, och därför inte kan reagera på användarinmatning direkt.
Vanliga orsaker är:
- Långa JavaScript-uppgifter: Omfattande skript som körs under en längre tid och blockerar huvudtråden.
- Stora JavaScript-paket: Mer kod innebär längre tid för parsning, kompilering och körning.
- Skript från tredje part: Annonser, analysverktyg och andra externa skript kan förbruka mycket tid på huvudtråden.
Optimera FID: Frigör huvudtråden
För att förbättra FID behöver du minska den tid som huvudtråden är blockerad. Så här gör du:
- Dela upp långa uppgifter: Dela upp omfattande JavaScript-operationer i mindre asynkrona delar.
- Skjut upp eller kör icke-kritisk JS asynkront: Använd attributen
deferellerasyncför skript som inte behövs för den initiala rendering-en. - Minska mängden JavaScript: Minifiera, tree-shaka och dela upp dina JavaScript-paket i separata koddelar.
- Använd Web Workers: Flytta beräkningsintensiva uppgifter till en bakgrundstråd så att huvudtråden hålls fri.
Cumulative Layout Shift (CLS)
Cumulative Layout Shift (CLS) mäter en sidas visuella stabilitet. Det kvantifierar hur stora oväntade layoutförskjutningar som sker under sidans livslängd.
En oväntad förskjutning inträffar när ett synligt elements startposition ändras från en renderad bildruta till nästa. Det kan vara mycket frustrerande för användare!
- Ett bra CLS-värde är 0,1 eller mindre.
- Allt över 0,25 anses vara dåligt.
Vanliga orsaker till CLS
Layoutförskjutningar inträffar ofta när innehåll läses in eller ändras dynamiskt utan att utrymme reserveras. Viktiga orsaker är:
- Bilder eller videor utan dimensioner: Webbläsaren vet inte hur mycket utrymme som ska reserveras förrän mediet har lästs in.
- Dynamiskt infogat innehåll: Annonser, banners eller widgetar som visas efter att sidan har börjat renderas.
- Webbfonter som orsakar FOIT/FOUT: Sent inlästa fonter kan göra att texten flödar om eller försvinner och visas igen.
- Åtgärder som väntar på ett nätverkssvar: Innehåll som flyttas efter att ett API-anrop har slutförts.
Optimera CLS: Stabil layout
Att förebygga CLS handlar om att reservera utrymme och se till att element inte flyttas oväntat. Här är några tekniker:
- Ange bilders och videors dimensioner: Använd alltid attributen
widthochheight, eller CSS-egenskapenaspect-ratio. - Reservera utrymme för annonser och inbäddat innehåll: Använd CSS-egenskapen
min-heighteller ett platshållarelement. - Undvik att infoga innehåll ovanför befintligt innehåll: Särskilt efter den initiala rendering-en av sidan.
- Förläs fonter och använd
font-display: Användfont-display: optionalellerswapför att styra hur fonter läses in.
Här är ett exempel på hur angivna bilddimensioner förhindrar CLS:
<!DOCTYPE html>
<html>
<head>
<title>CLS Prevention Demo</title>
<style>
body { font-family: sans-serif; }
.container { width: 300px; margin: 20px auto; border: 1px solid #ccc; padding: 10px; }
img { max-width: 100%; height: auto; display: block; margin-bottom: 10px; }
</style>
</head>
<body>
<div class="container">
<p>This content is stable.</p>
<!-- Image with specified width and height prevents layout shift -->
<img src="https://via.placeholder.com/300x200" alt="Placeholder" width="300" height="200">
<p>The content below the image does not jump around.</p>
</div>
</body>
</html>Kontroll av Core Web Vitals
Nu testar vi dina kunskaper om Core Web Vitals och tekniker för att optimera dem.
Sammanfattning: LCP, FID, CLS
Du har nu fördjupat dig i Core Web Vitals!
- LCP (Largest Contentful Paint): Mäter den upplevda laddningshastigheten med fokus på det största innehållselementet. Optimera genom att förladda, optimera bilder och minska serverns svarstid.
- FID (First Input Delay): Mäter interaktivitet med fokus på fördröjningen innan webbläsaren reagerar på användarinmatning. Optimera genom att minimera och dela upp JavaScript-uppgifter.
- CLS (Cumulative Layout Shift): Mäter visuell stabilitet. Optimera genom att reservera utrymme för dynamiskt innehåll, ange bilddimensioner och styra hur fonter läses in.
Genom att förstå och förbättra dessa mätvärden bidrar du till en betydligt bättre användarupplevelse!
Lär dig Optimering av webbprestanda och Lighthouse med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Fördjupning i LCP, FID och CLS” gratis?
Ja – hela texten till ”Fördjupning i LCP, FID och CLS” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Optimering av webbprestanda och Lighthouse, kan Ni uppgradera till CoddyKit PRO. Kursen i Optimering av webbprestanda och Lighthouse innehåller totalt 4 lektioner.
Vad lär jag mig i ”Fördjupning i LCP, FID och CLS”?
Analysera Largest Contentful Paint (LCP), First Input Delay (FID) och Cumulative Layout Shift (CLS) i detalj, tillsammans med tekniker för att optimera dem. Ni övar på Optimering av webbprestanda och Lighthouse med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Optimering av webbprestanda och Lighthouse?
Du behöver inga förkunskaper. Utbildningen i Optimering av webbprestanda och Lighthouse på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Fördjupning i LCP, FID och CLS”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Optimering av webbprestanda och Lighthouse-lektionen?
Ja. Varje Optimering av webbprestanda och Lighthouse-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Introduktion till Core Web Vitals
- Fördjupning i LCP, FID och CLS
- Förbättra mått för användarinteraktion
- Interaction to Next Paint (INP)