En langsom WooCommerce-shop koster konverteringer. Problemet er sjældent “WooCommerce i sig selv”. Det er typisk tema, page builder, plugins og cart fragments, der loader JavaScript overalt - også på sider, hvor kunden aldrig ser en kurv.
Målet er ikke den højest mulige PageSpeed-score på forsiden. Målet er, at produkt, kurv og checkout føles hurtige på mobil, mens Core Web Vitals holder sig i det grønne for de URL’er, der driver omsætning.
Hvor shoppen oftest fejler
- LCP på produktsider: store, ukomprimerede billeder, hero-sliders og lazy-load på det forkerte (primære) billede
- INP i cart/checkout: tung JS, variationer, payment-widgets og chat, der kører midt i købsflowet
- TTFB: manglende full page cache / object cache, dyr database og for mange autoloadede options
- CLS: banners, cookie-consent og “du glemte noget”-bars, der skubber layoutet
Field data i Search Console afslører ofte, at kataloget er okay, mens enkeltprodukt- eller checkout-URL’er er de røde. Lab på forsiden siger dig ikke nok - se også field vs lab data.
Cart fragments - den klassiske fælde
WooCommerce har historisk kørt AJAX cart fragments på mange sider, så mini-carten opdateres uden reload. Det giver ekstra requests og JS-arbejde - også på blogindlæg og infosider, hvor widgeten måske slet ikke er synlig.
Praktisk tilgang:
- Begræns fragments til sider, der faktisk viser kurv/mini-cart
- Brug moderne temaer/plugins, der håndterer cart-opdatering mere effektivt
- Test efter ændringen, at antal varer stadig opdateres korrekt, når kunden tilføjer noget
Cart fragments er et godt eksempel på, at en “lille” Woo-feature kan fylde mere i INP end selve produkttemplateet.
Produktgalleri, variationer og LCP
Produktsidens LCP er næsten altid det primære produktbillede eller overskriften. Så:
- Server billeder i next-gen formater (WebP/AVIF) i rigtige størrelser - ikke et 3000 px originalt til en 600 px container
- Lazy-load galleri under fold; prioritér (preload / ingen lazy) det synlige hovedbillede
- Undgå autoplay-sliders i hero på kategori- og produktsider
- Load ikke alle variation-assets på én gang, hvis kunden kun ser én variant ad gangen
Page builders oven på Woo gør ofte DOM’en unødigt stor. Jo mere markup og JS omkring “Læg i kurv”, jo større risiko for dårlig INP - se også INP i WordPress.
Checkout uden at ofre funktionalitet
Checkout er det sidste sted, du vil have chat, heatmaps og tre ekstra upsell-widgets. Hold flowet stramt:
- Fjern unødvendige checkout-felter og “nice to have”-plugins
- Load payment-scripts kun på checkout (og evt. order-pay)
- Hold third-party ude af checkout - særligt chat og session-replay
- Test INP og fejl på mobil med rigtige betalingsmetoder i staging
- Undgå aggressiv page cache af cart, checkout og my-account
En hurtig checkout, der virker, slår en “optimeret” checkout, der dropper betalingsfelter eller viser forældede priser.
Cache uden at cache forkerte sider
Brug page cache til katalog, kategorier og produktsider, hvor det er sikkert for dig (pas på personlige priser, B2B-login og geoblokeret lager). Undgå at cache:
- cart
- checkout
- my-account
- endpoints med nonces / sessions
Kombinér gerne med object cache (Redis/Memcached) på database-tunge shops. Page cache hjælper anonyme katalogbesøg; object cache hjælper, når PHP stadig kører - fx indloggede kunder og dynamiske widgets.
Hostingen betyder også noget: delt hosting med kold database og ingen Redis bliver sjældent “hurtig nok” alene med et cache-plugin.
Prioriteret handlingsplan
- Mål field CWV for produkt- og checkout-URL’er (ikke kun origin)
- Ret LCP: billeder, cache, TTFB
- Ret INP: fragments, globale scripts, builder-JS, payment-load
- Ret CLS: dimensioner, banners, consent
- Genmål lab på de samme URL’er, og vent på field-vinduet
Kort sagt
WooCommerce behøver ikke være langsom. Den bliver det, når shop-logik og marketing-scripts får lov at køre overalt. Begræns JS til de sider, der har brug for det, beskyt checkout, og mål de URL’er kunderne faktisk køber på.
Vil du have en WooCommerce-hastighedsaudit med konkrete plugin- og cache-anbefalinger? Kontakt mig, eller start med et hurtigt helbredstjek.
