WooCommerce-hastighed: Sådan får du din webshop under 3 sekunder
WooCommerce driver over 36% af alle webshops globalt. Det er fleksibelt, open source og enormt kraftfuldt. Men det har én achilleshæl: Hastighed.
En standard WooCommerce-installation med 20 plugins, 500 produkter og et typisk tema loader i 4-7 sekunder på mobil. Det er ikke bare irriterende — det koster dig penge.
Hver ekstra sekund loadtid reducerer konverteringen med 7%. En webshop der loader i 5 sekunder taber potentielt 21% af sine salg sammenlignet med en der loader i 2 sekunder.
Denne guide går ud over de basale tips. Her dykker vi ned i de WooCommerce-specifikke teknikker der gør den reelle forskel.
Forudsætninger
Denne guide forudsætter at du allerede har:
- Et cache-plugin (WP Rocket, LiteSpeed Cache)
- En CDN (Cloudflare, BunnyCDN)
- Rimelig hosting (ikke $5/md shared hosting)
Mangler du basalerne, start med WordPress hastighedsoptimering: Den komplette guide.
Hvorfor WooCommerce er langsomt
Før vi løser problemet, skal vi forstå det. WooCommerce er langsomt af tre primære årsager:
1. Cart fragments (AJAX)
WooCommerce loader et JavaScript-fragment på alle sider der tjekker om der er produkter i kurven. Det hedder wc-ajax=get_refreshed_fragments og kører en uautoriseret AJAX-request der bypasser cache.
Effekt: 200-800ms ekstra TTFB på hver eneste sidevisning — også sider der ikke har noget med shop at gøre.
2. Database-queries
En typisk WooCommerce-produktside kører 100-300 database-queries. Med 500+ produkter og variationer kan en produktarkivside nemt ramme 500+ queries.
3. Plugin-overload
De fleste WooCommerce-shops har 30-50 plugins. Mange af dem loader scripts og styles på alle sider — ikke kun shop-sider.
Teknik 1: Tæm cart fragments
Cart fragments er den enkeltstående største performance-killer i WooCommerce. Her er tre tilgange:
Deaktivér helt (simple shops)
Hvis din shop ikke har en "kurv-indikator" i headeren, kan du deaktivere cart fragments helt:
add_action('wp_enqueue_scripts', function() { if (!is_cart() && !is_checkout()) { wp_dequeue_script('wc-cart-fragments'); }});Reducer frekvensen (mellemløsning)
Erstat AJAX-fragmenter med en letvægtsalternativ der kun tjekker kurven ved interaktion:
add_action('wp_enqueue_scripts', function() { if (is_product() || is_shop() || is_product_category()) { return; // Behold på shop-sider } wp_dequeue_script('wc-cart-fragments');});Brug et letvægts-alternativ
Plugins som Mini Cart Drawer erstatter WooCommerces tunge cart fragments med en letvægts-implementation der kun loader ved klik.
Mål effekten
Test din side i Chrome DevTools → Network. Filtrer på "wc-ajax". Hvis du ser get_refreshed_fragments på ikke-shop-sider, har du problemet. Deaktivering sparer typisk 200-500ms.
Teknik 2: HPOS (High-Performance Order Storage)
WooCommerce har historisk gemt ordrer i wp_posts-tabellen — sammen med blogindlæg, sider og alt muligt andet. Det er en arkitektonisk fejl der gør database-queries langsomme.
HPOS (introduceret som stabil i WooCommerce 8.2) flytter ordrer til dedikerede tabeller:
| Faktor | Klassisk (wp_posts) | HPOS (dedikerede tabeller) |
|---|---|---|
| Ordre-queries | 200-500ms | 20-50ms |
| Admin ordre-liste | 2-5s (10.000+ ordrer) | 0.5-1s |
| Checkout | 100-300ms ekstra | Minimal overhead |
| Rapportering | Langsom med mange ordrer | 5-10x hurtigere |
Aktivér HPOS
- Gå til WooCommerce → Settings → Advanced → Features
- Aktivér High-Performance Order Storage
- Kør synkronisering af eksisterende ordrer
- Når synkroniseringen er færdig, slå legacy-mode fra
Plugin-kompatibilitet
Ikke alle plugins understøtter HPOS endnu. Tjek din plugins kompatibilitet i WooCommerce → Status → HPOS Compatibility. De store spillere (Stripe, PayPal, Mailchimp) understøtter det. Mindre niche-plugins kan mangle support.
Teknik 3: Produkt-billede-pipeline
Produktbilleder er typisk det tungeste element på en WooCommerce-side. Her er den optimale pipeline:
Upload-workflow
- Originaler: Max 2400px bred, JPEG quality 85
- Auto-konvertering: ShortPixel eller Imagify konverterer til AVIF + WebP
- Lazy loading: WordPress 6.3+ har native lazy loading
- Srcset: WooCommerce genererer automatisk responsive varianter
Thumbnail-optimering
WooCommerce genererer 6-8 billedstørrelser per produkt. Med 500 produkter er det 3.000-4.000 filer. Optimér:
// Reducer antallet af billedstørrelseradd_filter('intermediate_image_sizes_advanced', function($sizes) { // Fjern størrelser du ikke bruger unset($sizes['medium_large']); // 768px — sjældent brugt unset($sizes['1536x1536']); // Sjældent brugt unset($sizes['2048x2048']); // Sjældent brugt return $sizes;});Gallery lazy loading
Produktgallerier loader ofte alle billeder med det samme. Tilføj lazy loading:
add_filter('woocommerce_single_product_image_gallery_classes', function($classes) { $classes[] = 'lazy-gallery'; return $classes;});Teknik 4: Database-optimering
Transients og sessions
WooCommerce opretter tusindvis af transients og sessions i wp_options-tabellen. Over tid vokser tabellen og bliver langsom:
-- Tjek størrelsen af wp_optionsSELECT COUNT(*) as total, SUM(CASE WHEN autoload = 'yes' THEN 1 ELSE 0 END) as autoloadedFROM wp_options; -- Slet udløbne transientsDELETE FROM wp_options WHERE option_name LIKE '%_transient_%'AND option_value < UNIX_TIMESTAMP();Product lookup tables
WooCommerce har lookup tables for pris, rating og stock der caches. Regenerér dem hvis de er out-of-sync:
- Gå til WooCommerce → Status → Tools
- Klik Regenerate product lookup tables
- Klik Regenerate product attributes lookup table
Autoloaded options
WooCommerces options spreder sig i wp_options med autoload = yes. Audit med:
SELECT option_name, LENGTH(option_value) as sizeFROM wp_optionsWHERE autoload = 'yes'ORDER BY size DESCLIMIT 20;Alt over 100 KB der ikke er kritisk for sideindlæsning, bør sættes til autoload = no.
Teknik 5: Checkout-optimering
Checkout-siden er den vigtigste side i din webshop — og ofte den langsomste.
WooCommerce Blocks Checkout
WooCommerce Blocks Checkout (indført i WC 8.3+) er markant hurtigere end den klassiske shortcode-checkout:
| Faktor | Klassisk checkout | Blocks checkout |
|---|---|---|
| JavaScript | 300-500 KB | 100-200 KB |
| Payment gateway loading | Synkron | Asynkron |
| Validering | Server-side | Client-side + server |
| UX | Fuld page reload | SPA-lignende |
Reducer payment gateways
Hver payment gateway du tilbyder loader sit eget JavaScript. 5 gateways = 5 scripts. Begræns til 2-3 relevante:
- Danmark: MobilePay, Kreditkort (Stripe), evt. Klarna
- Internationalt: Stripe, PayPal, evt. Klarna
Fjern unødvendige felter
Hvert felt i checkout er en database-query og en valideringscheck. Fjern dem du ikke bruger:
add_filter('woocommerce_checkout_fields', function($fields) { unset($fields['billing']['billing_company']); unset($fields['billing']['billing_address_2']); unset($fields['order']['order_comments']); return $fields;});Teknik 6: Plugin-audit for WooCommerce
De typiske syndere
| Plugin/type | Typisk påvirkning | Alternativ |
|---|---|---|
| Slider-plugins (Revolution, Layer) | 500ms-1.5s | CSS-only hero |
| Social proof popups ("X købte lige...") | 200-500ms | Fjern eller lazy-load |
| Upsell/cross-sell plugins | 100-400ms | WooCommerces native funktionalitet |
| Live chat widgets | 300-800ms | Lazy-load efter 5 sekunder |
| Cookie consent (tunge løsninger) | 100-300ms | Letvægts-løsning |
| Analytics (multiple scripts) | 200-600ms | Server-side tagging |
Conditional loading
Det mest effektive du kan gøre: Sørg for at plugins kun loader på de sider de bruges:
add_action('wp_enqueue_scripts', function() { // Kun load WooCommerce scripts på shop-sider if (!is_woocommerce() && !is_cart() && !is_checkout() && !is_account_page()) { // Fjern WooCommerce styles wp_dequeue_style('woocommerce-layout'); wp_dequeue_style('woocommerce-smallscreen'); wp_dequeue_style('woocommerce-general'); wp_dequeue_script('wc-add-to-cart'); wp_dequeue_script('woocommerce'); }});Teknik 7: Object caching
WooCommerce er extremt database-tung. Object caching gemmer query-resultater i RAM i stedet for at ramme databasen igen:
| Løsning | Pris | Hastighed | Kompleksitet |
|---|---|---|---|
| Redis | Gratis-$20/md | Hurtigst | Medium |
| Memcached | Gratis-$15/md | Hurtig | Medium |
| APCu | Gratis | Hurtig (single server) | Lav |
Redis er min anbefaling. De fleste managed hosting-udbydere (Kinsta, Cloudways, SpinupWP) tilbyder Redis med ét klik.
Effekt: 30-50% reduktion i TTFB for WooCommerce-sider.
Hastighedsbudget for WooCommerce
Her er realistiske mål for en optimeret WooCommerce-shop:
| Side | Mål (mobil) | Typisk uoptimeret |
|---|---|---|
| Forside | < 2.0s | 3.5-6.0s |
| Kategoriside | < 2.5s | 4.0-7.0s |
| Produktside | < 2.0s | 3.0-6.0s |
| Kurv | < 2.0s | 3.0-5.0s |
| Checkout | < 2.5s | 4.0-8.0s |
| Søgning | < 2.5s | 5.0-10.0s |
Den prioriterede optimeringsplan
Deaktivér cart fragments på ikke-shop-sider
Enkeltstående største effekt. 200-500ms forbedring med én kode-ændring.
Aktivér HPOS
Migrér til dedikerede ordre-tabeller. Kæmpe forskel ved 1.000+ ordrer.
Optimér produktbilleder
AVIF/WebP med ShortPixel, fjern unødvendige billedstørrelser, lazy load gallerier.
Installér object caching (Redis)
30-50% hurtigere database-queries. De fleste hosts tilbyder det.
Plugin-audit med conditional loading
Fjern eller lazy-load plugins der loader på alle sider. Brug Query Monitor til at identificere synderne.
Skift til Blocks Checkout
Hurtigere og mere moderne checkout-oplevelse.
Database-oprydning
Fjern udløbne transients, regenerér lookup tables, audit autoloaded options.
Konklusion
WooCommerce er ikke langsomt af natur — det er langsomt af vane. De fleste hastigheds-problemer skyldes cart fragments, manglende object caching og plugins der loader overalt.
Med de teknikker jeg har beskrevet her, er under 3 sekunder realistisk for de fleste WooCommerce-shops. Og for shops med god hosting og få plugins er under 2 sekunder opnåeligt.
Den vigtigste erkendelse: Hastighed er ikke et luksusproblem for webshops — det er direkte koblet til omsætning. Hvert millisekund tæller.
Brug for en WooCommerce-optimering?
Jeg har optimeret snesevis af WooCommerce-shops — fra små nichebutikker til shops med 10.000+ produkter. Book en gratis afklaring og lad os se på din shops hastighed.




