Core Web Vitals för webbutiker: LCP, INP och CLS förklarade
Vad LCP, INP och CLS mäter, gränsvärdena vid 75:e percentilen, labbdata mot fältdata och de vanligaste åtgärderna för Shopify- och WooCommerce-butiker.
FixReports redaktion12 min läsning
Core Web Vitals är tre mätvärden från Google som beskriver hur verkliga besökare upplever en sida: Largest Contentful Paint (LCP) för inläsning, Interaction to Next Paint (INP) för responsivitet och Cumulative Layout Shift (CLS) för visuell stabilitet. En sida klarar bedömningen när minst 75 % av besöken ligger inom intervallet ”bra”: LCP inom 2,5 sekunder, INP inom 200 millisekunder och CLS på högst 0,1, mätt separat för mobil och dator. I webbutiker beror dåliga värden oftast på stora eller lazy-loadade hero- och produktbilder, skript från appar och spårning, webbtypsnitt samt banners eller recensionswidgetar som trycker ner innehållet efter att sidan har visats.
Det viktigaste i korthet
- Bra, behöver förbättras och dåligt bedöms vid 75:e percentilen av sidladdningarna: LCP är dåligt över 4 sekunder, INP är dåligt över 500 ms och CLS är dåligt över 0,25 (web.dev (öppnas i en ny flik)).
- INP ersatte First Input Delay (FID) som Core Web Vital den 12 mars 2024 (web.dev (öppnas i en ny flik)).
- Fältdata i Chrome UX Report är ett rullande genomsnitt över 28 dagar och omfattar inte Chrome på iOS (Chrome for Developers (öppnas i en ny flik)).
- Shopifys filter
image_tagläser in bilder direkt i de tre första sektionerna i en mall och med lazy loading från den fjärde sektionen och framåt, om du inte åsidosätter det (Shopify (öppnas i en ny flik)). - Sedan WordPress 6.3 lägger kärnan till
fetchpriority="high"på den bild som den bedömer mest sannolikt är LCP-elementet (Make WordPress Core (öppnas i en ny flik)).
Vilka gränsvärden gäller för Core Web Vitals?
En sida uppfyller Core Web Vitals när 75:e percentilen av dess sidladdningar hamnar inom intervallet bra för alla tre mätvärdena.
| Mätvärde | Vad det mäter | Bra | Behöver förbättras | Dåligt |
|---|---|---|---|---|
| LCP | Tiden tills den största bilden, videon eller textblocket i visningsområdet har renderats | 2,5 s eller mindre | Över 2,5 s upp till 4,0 s | Över 4,0 s |
| INP | Tiden från ett klick, tryck eller tangenttryck tills nästa bildruta har ritats upp | 200 ms eller mindre | Över 200 ms upp till 500 ms | Över 500 ms |
| CLS | Hur mycket synligt innehåll som flyttar sig oväntat | 0,1 eller mindre | Över 0,1 upp till 0,25 | Över 0,25 |
Gränsvärdena kommer från web.dev:s guider om LCP (öppnas i en ny flik), INP (öppnas i en ny flik) och CLS (öppnas i en ny flik), i oktober 2026.
Att mätningen sker vid 75:e percentilen betyder att resultatet speglar de flesta besökare, inte bara de snabbaste, och Google delar upp mobil och dator (öppnas i en ny flik). PageSpeed Insights godkänner en sida när alla tre mätvärdena är bra; om det inte finns tillräckligt med INP-data bedöms bara LCP och CLS (dokumentationen för PageSpeed Insights (öppnas i en ny flik)). Google säger att stabila Core Web Vitals inte ändras mer än en gång per år.
I en webbutik är LCP-elementet ofta hero-bannern eller den största produktbilden, och därför spelar bildhanteringen så stor roll.
Varför ersatte INP FID i mars 2024?
INP ersatte FID eftersom FID bara mätte den första interaktionen och bara en del av dess fördröjning, medan INP tittar på interaktioner under hela besöket.
Google meddelade i maj 2023 att INP skulle bli en Core Web Vital, och bytet trädde i kraft den 12 mars 2024 (öppnas i en ny flik). FID rapporterade bara den första interaktionen och bara dess inmatningsfördröjning, inte tiden det tog att köra händelsehanterare eller rita upp resultatet. INP observerar klick, tryck och tangenttryck under hela besöket och rapporterar det längsta, med extremvärden bortrensade; scrollning och hovring räknas inte. Användare av API:erna för CrUX och PageSpeed Insights hade till den 9 september 2024 på sig att byta (web.dev (öppnas i en ny flik)).
Varje interaktion består av tre delar: inmatningsfördröjning (väntan på upptagna skript), bearbetningstid (körning av händelsehanterarna) och presentationsfördröjning (uppritning av nästa bildruta) (web.dev (öppnas i en ny flik)).
I en webbutik är de interaktionerna variantväljaren, knapparna för antal, lägg i varukorgen, den utfällbara varukorgen, filter och menyer. En sida kunde klara FID tack vare ett snabbt första tryck och ändå kännas långsam när någon öppnade filtren senare.
Vad är skillnaden mellan labbdata och fältdata?
Labbdata kommer från ett enskilt test under fasta förhållanden, medan fältdata samlas in från verkliga besökare över tid, och Google rekommenderar att du utgår från fältdata när du bestämmer vad som ska åtgärdas först (web.dev (öppnas i en ny flik)).
| Labbdata | Fältdata | |
|---|---|---|
| Källa | En simulerad sidladdning (Lighthouse, Chrome DevTools, labbdelen av PageSpeed Insights) | Verkliga besökare i Chrome (Chrome UX Report) eller din egen övervakning av verkliga användare (RUM) |
| Förhållanden | Fast enhet och fast nätverk. Lighthouses standardtest för mobil (öppnas i en ny flik) använder ”Slow 4G” (150 ms tur och retur, 1,6 Mbps nedladdning) och en CPU som är 4x långsammare | De enheter, nätverk och platser som dina besökare faktiskt har |
| INP | Mäts inte vid en vanlig sidladdning. Total Blocking Time (TBT) är en grov ersättare | Mäts från verkliga interaktioner |
| Passar bäst för | Felsökning och kontroll av en ändring före lansering | Att veta vad besökarna faktiskt får |
TBT summerar den del av varje uppgift på huvudtråden som överstiger 50 ms; web.dev föreslår under 200 ms på genomsnittlig mobil hårdvara men säger att det inte ersätter INP (web.dev (öppnas i en ny flik)).
Tre detaljer i Chrome UX Report (CrUX) är viktiga för webbutiker:
- Det är ett rullande genomsnitt över 28 dagar (öppnas i en ny flik) som uppdateras dagligen.
- Det omfattar Chrome på dator och Android för användare som uppfyller Chromes villkor för rapportering. Chrome på iOS ingår inte, så en butik med mest iPhone-kunder ser fältdata från bara en del av sin publik (metodik (öppnas i en ny flik)).
- Sidor och ursprung visas bara när de är offentligt sökbara och tillräckligt populära, så en butik med lite trafik kan ha data enbart på ursprungsnivå, eller ingen alls.
Shopifys instrumentpanel för webbprestanda (öppnas i en ny flik) rapporterar också LCP, INP och CLS från verkliga användare vid 75:e percentilen, men över 30 dagar i stället för 28, så räkna med vissa skillnader mot CrUX.
Vad gör LCP långsamt på butikens sidor?
LCP är oftast långsamt i webbutiker eftersom huvudbilden är för tung, upptäcks sent eller medvetet fördröjs av lazy loading eller en animering.
- Lazy loading av LCP-bilden. web.dev säger att du aldrig ska göra det (web.dev (öppnas i en ny flik)). Dess analys av WordPress-sidor visade långsammare LCP vid 75:e percentilen på webbplatser som använde inbyggd lazy loading, och när bilder ovanför vecket inte längre lazy-loadades försvann försämringen (web.dev (öppnas i en ny flik)).
- En bild som hittas sent. En hero-bild som är satt som CSS-
background-image, eller som läggs in av ett skript för en bildspelare, finns inte i den HTML som webbläsaren läser först. Shopify avråder från CSS-bakgrunder för hero-innehåll och från intoningseffekter på LCP-bilden (Shopify (öppnas i en ny flik)). - Låg prioritet. Bilder läses in med låg prioritet tills layouten är klar, så Shopify rekommenderar
fetchpriority="high"på LCP-bilden (Shopify (öppnas i en ny flik)). web.dev påpekar att attributet blir mindre användbart om du sätter det på fler än en eller två bilder (web.dev (öppnas i en ny flik)). - Renderingsblockerande CSS och skript. Stora stilmallar och synkrona skript i
<head>fördröjer renderingen även efter att bilden har kommit (web.dev (öppnas i en ny flik)). - Filstorlek och typsnitt. Använd moderna format,
srcsetochsizessamt ett CDN. För webbtypsnitt använder du ett annatfont-display-värde änautoellerblock.
<!-- Main product image: real src in the HTML, eager, high priority -->
<img src="/images/linen-shirt-1200.webp"
srcset="/images/linen-shirt-600.webp 600w, /images/linen-shirt-1200.webp 1200w"
sizes="(min-width: 990px) 50vw, 100vw"
width="1200" height="1500"
fetchpriority="high"
alt="Natural linen shirt, front view">
<!-- Gallery images below the first screen: lazy -->
<img src="/images/linen-shirt-back-600.webp" loading="lazy"
width="600" height="750" alt="Natural linen shirt, back view">
Vad gör INP långsamt på butikens sidor?
Långsam INP i en webbutik innebär oftast för mycket JavaScript på huvudtråden, mycket av det från appar, spårningstaggar och funktioner i temat, så att tryck måste vänta.
Om en kund trycker på ”Lägg i varukorgen” medan skript för recensioner, chatt och analys fortfarande körs, får trycket vänta. En variantväljare som renderar om hela produktformuläret ökar bearbetningstiden. Stora megamenyer och kategorirutnät med många färgrutor ökar presentationsfördröjningen.
web.dev rekommenderar att du delar upp långa uppgifter och lämnar tillbaka kontrollen till huvudtråden, uppdaterar skärmen först och skjuter upp resten, och håller DOM:en mindre (web.dev (öppnas i en ny flik)). Shopify lägger till butiksspecifika steg: gå igenom varje app, pixel och skript i temat, skjut upp det som inte är kritiskt, läs in funktioner först vid interaktion och stäng av anti-flimmer-kod för A/B-tester när inget test pågår (Shopify (öppnas i en ny flik)).
Vad orsakar layoutförskjutningar på produkt- och kategorisidor?
Layoutförskjutningar i webbutiker kommer mest från innehåll som dyker upp eller ändrar storlek efter den första renderingen: bilder utan mått, aviserings- och cookiefält, recensionswidgetar, appblock och typsnittsbyten.
web.dev listar de vanligaste orsakerna som media med okända mått, innehåll som läggs till ovanför befintligt innehåll, widgetar från tredje part som ändrar storlek på sig själva och webbtypsnitt som har en annan storlek än sitt reservtypsnitt (web.dev (öppnas i en ny flik)). I en webbutik betyder det ett fält om fri frakt som läggs in högst upp, stjärnbetyg som läses in efter rubriken, information om delbetalning under priset och karuseller med rekommendationer. Shopify påpekar att innehåll i popup-fönster också kan orsaka förskjutningar (Shopify (öppnas i en ny flik)).
Förskjutningar inom 500 ms efter en användares inmatning räknas inte, men förskjutningar under scrollning gör det, och labbverktyg missar dem ofta (web.dev (öppnas i en ny flik)). Ge bilder width och height eller ett CSS-aspect-ratio, reservera plats för widgetar, visa banners som överlägg, minska förskjutningar vid typsnittsbyten med size-adjust och animera med transform i stället för top eller left.
/* Reserve space for a reviews summary that loads after the page */
.product-reviews-summary { min-height: 24px; }
/* Keep product cards from jumping while images load */
.product-card img { width: 100%; height: auto; aspect-ratio: 4 / 5; }
Hur förbättrar du Core Web Vitals i Shopify?
I Shopify kommer de största vinsterna från att läsa in den första bilden direkt med hög prioritet, banta appskripten och kontrollera resultatet i adminpanelens rapporter om webbprestanda.
Kontrollera data i adminpanelen
En sammanfattning visas på sidan Onlinebutik > Teman (Online Store > Themes), och fullständiga rapporter om LCP, INP och CLS finns under Analys > Rapporter (Analytics > Reports). Data kan vara upp till 36 timmar försenade, och privat läge måste vara avstängt (Shopify Help Center (öppnas i en ny flik)).
Styr bildinläsningen i Liquid
Filtret image_tag lazy-loadar bilder i sektioner längre ner på sidan om du inte anger preload (referens för image_tag (öppnas i en ny flik)): direkt inläsning för sektion 1 till 3, lazy loading från sektion 4. Eftersom section.index är nil i temaredigeraren ska du testa med > 3 i stället för <= 3:
{%- if section.index == 1 -%}
{{ section.settings.image | image_url: width: 1600 | image_tag: loading: 'eager', fetchpriority: 'high', widths: '600, 900, 1200, 1600', sizes: '100vw' }}
{%- elsif section.index > 3 -%}
{{ section.settings.image | image_url: width: 1600 | image_tag: loading: 'lazy', sizes: '100vw' }}
{%- else -%}
{{ section.settings.image | image_url: width: 1600 | image_tag: sizes: '100vw' }}
{%- endif -%}
I produktrutnät föreslår Shopify att bara de första korten läses in direkt (till exempel forloop.index <= 4) (Shopify (öppnas i en ny flik)). Använd preload: true sparsamt; Shopify rekommenderar att du bara förinläser en eller två resurser som upptäcks sent.
Ta bort det som appar lämnar efter sig
Stäng av oanvända appinbäddningar under Onlinebutik > Redigera tema > Appinbäddningar (Online Store > Edit theme > App embeds) (Shopify Help Center (öppnas i en ny flik)). När du avinstallerar en app tas dess appblock bort, men appar som har redigerat temafilerna direkt kan lämna kvar ”spökkod” (ghost code) som enligt Shopify kan orsaka problem med kvalitet och prestanda (Shopify (öppnas i en ny flik)). Shopify uppger också att skripttaggar (script tags) slutar köras den 1 mars 2027. För typsnitt rekommenderar Shopify sitt eget CDN eller systemtypsnitt framför externa typsnittstjänster (Shopify (öppnas i en ny flik)).
Hur förbättrar du Core Web Vitals i WooCommerce?
I WooCommerce ska du se till att tillägg inte åsidosätter WordPress bildprioritering, cacha allt utom varukorg och kassa och ta bort skript som läses in överallt utan att behövas.
- Behåll kärnans bildhantering. Sedan WordPress 6.3 (som släpptes den 8 augusti 2023) lägger kärnan till
fetchpriority="high"på den troliga LCP-bilden (som standard minst 50 000 kvadratpixlar) och hoppar över lazy loading för de tre första innehållsbilderna (Make WordPress Core (öppnas i en ny flik)). Om ett optimeringstillägg lägger till egen lazy loading, kontrollera att det undantar hero-bilden och den största produktbilden. - Cacha sidor, inte varukorgar. WooCommerces guide rekommenderar sidcachning på servern eller via ett tillägg samt ett CDN, men att sidorna för varukorg och kassa inte cachas (WooCommerce developer docs (öppnas i en ny flik)).
- Kontrollera cart fragments. Sedan WooCommerce 7.8 läses skriptet för cart fragments bara in där en Cart-widget finns, men vissa teman hårdkodar den widgeten. Blocket Mini-Cart använder inte cart fragments (WooCommerce developer blog (öppnas i en ny flik)).
- Hitta tunga tillägg. WooCommerce föreslår Query Monitor för att hitta långsamma tillägg, och att du skjuter upp JavaScript som inte är kritiskt.
Om din layout visar fler än tre bilder ovanför vecket kan du höja tröskeln i WordPress:
// functions.php: skip lazy loading for the first 4 content images (default is 3)
add_filter( 'wp_omit_loading_attr_threshold', function () {
return 4;
} );
Hur lång tid tar det innan åtgärderna syns?
Labbtester visar effekten av en åtgärd direkt, men fältdata behöver upp till ungefär fyra veckor för att spegla den fullt ut, eftersom CrUX räknar ett genomsnitt över de senaste 28 dagarna.
Kör labbtestet flera gånger före och efter en ändring, eftersom enskilda körningar varierar, och följ sedan fältvärdena i PageSpeed Insights, rapporten Core Web Vitals i Search Console eller Shopifys rapporter. En gratis skanning ger en första bild på ungefär en minut. Vår Prestandarapport kör ett strypt labbtest för mobil (Slow 4G, 4x CPU) och lägger till fältdata från Chrome UX Report, inklusive INP när Google har tillräckligt med data för din butik.
Vanliga frågor
Påverkar Core Web Vitals rankningen i Google?
Google säger att Core Web Vitals används av dess rankningssystem, men att bra värden inte garanterar topplaceringar och att Google ändå visar det mest relevanta innehållet även när sidupplevelsen är dålig (Google Search Central (öppnas i en ny flik)).
Varför visar PageSpeed Insights inga fältdata för min butik?
CrUX tar bara med sidor och ursprung som är offentligt sökbara och har tillräckligt många besökare i Chrome som uppfyller villkoren. En butik med lite trafik kan ha data enbart på ursprungsnivå, eller ingen alls, så förlita dig på labbtester och plattformens egna rapporter.
Behöver jag ett Lighthouse-poäng på 90 eller mer för att klara bedömningen?
Nej. Prestandapoängen i Lighthouse är ett labbresultat, medan bedömningen av Core Web Vitals använder fältdata vid 75:e percentilen, så en sida kan klara den med ett blygsamt Lighthouse-poäng och misslyckas med ett högt.
Ska jag använda lazy loading för alla produktbilder?
Nej. Använd lazy loading för bilder under den första skärmbilden, men läs in hero-bilden och den största produktbilden direkt, med fetchpriority="high" på en av dem.
Varför är mina resultat sämre på mobil än på dator?
Google mäter mobil och dator separat, och telefoner har långsammare processorer och nätverk. Lighthouses mobiltest simulerar det med profilen Slow 4G och en CPU som är 4x långsammare.
Källor
- Web Vitals (öppnas i en ny flik), web.dev (Google), uppdaterad 31 oktober 2024
- Largest Contentful Paint (LCP) (öppnas i en ny flik), web.dev, uppdaterad 4 september 2025
- Interaction to Next Paint (INP) (öppnas i en ny flik), web.dev, uppdaterad 2 september 2025
- Cumulative Layout Shift (CLS) (öppnas i en ny flik), web.dev, uppdaterad 12 april 2023
- Advancing Interaction to Next Paint (öppnas i en ny flik), web.dev, 10 maj 2023
- Interaction to Next Paint becomes a Core Web Vital on March 12 (öppnas i en ny flik), web.dev, 12 mars 2024
- Why lab and field data can be different (öppnas i en ny flik), web.dev, uppdaterad 18 juli 2022
- Optimize Largest Contentful Paint (öppnas i en ny flik), web.dev, uppdaterad 31 mars 2025
- Optimize Interaction to Next Paint (öppnas i en ny flik), web.dev, uppdaterad 2 september 2025
- Optimize Cumulative Layout Shift (öppnas i en ny flik), web.dev, uppdaterad 7 februari 2025
- Total Blocking Time (TBT) (öppnas i en ny flik), web.dev, hämtad 22 oktober 2026
- The performance effects of too much lazy loading (öppnas i en ny flik), web.dev, uppdaterad 31 mars 2022
- CrUX methodology (öppnas i en ny flik), Chrome for Developers, uppdaterad 20 juni 2024
- CrUX API (öppnas i en ny flik), Chrome for Developers, uppdaterad 13 oktober 2026
- About PageSpeed Insights (öppnas i en ny flik), Google for Developers, uppdaterad 21 oktober 2024
- Lighthouse throttling documentation (öppnas i en ny flik), GoogleChrome på GitHub, hämtad 22 oktober 2026
- Understanding page experience in Google Search results (öppnas i en ny flik), Google Search Central, uppdaterad 22 september 2026
- Performance best practices for Shopify themes (öppnas i en ny flik), Shopify, hämtad 22 oktober 2026
- Never lazy load the LCP image (öppnas i en ny flik), Shopify, hämtad 22 oktober 2026
- Set fetchpriority high on the LCP image (öppnas i en ny flik), Shopify, hämtad 22 oktober 2026
- Liquid filters: image_tag (öppnas i en ny flik), Shopify, hämtad 22 oktober 2026
- Web performance dashboard (öppnas i en ny flik), Shopify Help Center, hämtad 22 oktober 2026
- Web performance (öppnas i en ny flik), Shopify Help Center, hämtad 22 oktober 2026
- Apps in your theme (öppnas i en ny flik), Shopify Help Center, hämtad 22 oktober 2026
- Migrate to theme app extensions (öppnas i en ny flik), Shopify, hämtad 22 oktober 2026
- Image performance enhancements in WordPress 6.3 (öppnas i en ny flik), Make WordPress Core, 13 juli 2023
- Version 6.3 (öppnas i en ny flik), WordPress.org-dokumentation, släppt 8 augusti 2023
- How to optimize performance for WooCommerce stores (öppnas i en ny flik), WooCommerce developer docs, hämtad 22 oktober 2026
- Best practices for the use of the cart fragments API (öppnas i en ny flik), WooCommerce developer blog, 16 juni 2023
Alla guider
- Checklista för produktsidan: det som hindrar kunder från att köpaChecklista för produktsidan, baserad på Baymard och WebAIM: pris, frakt och returer, bilder, recensioner, köpknapp i mobilen, popup-fönster, sök och tangentbord.
- Fått ett kravbrev enligt ADA om din webbplats? Kontrollera detta förstVad kravbrev enligt ADA om webbplatser brukar påstå, hur WCAG hänger ihop med lagen, vad du ska samla in och när du behöver en advokat. Inte juridisk rådgivning.
- Kontrollera webbplatsens säkerhet utan att hacka någotPassiva säkerhetskontroller för webbutiker: TLS-certifikat, HSTS, CSP, nosniff, cookieflaggor, blandat innehåll, gammal jQuery, security.txt och DMARC.