Gå til indhold
Journalen

Hvorfor er min WooCommerce-webshop langsom?

En langsom WooCommerce-webshop har sjældent én årsag. Her er de steder, jeg kigger først, når en butik er blevet tung, fra hosting og database til billeder og tredjepartsscripts, og hvordan du måler, før du ændrer noget.

3 min. læsetid#woocommerce#performance

En WooCommerce-butik bliver typisk langsom gradvist. Der kommer et plugin til, et nyt tema, flere produkter og et par år med ordrer i databasen, og en dag går produktsiderne i stå, mens kurven og kassen er værre endnu.

Her er de steder, jeg kigger først. Rækkefølgen er den, jeg bruger, fordi de første punkter ofte forklarer mest.

Mål først, og mål de rigtige sider#

Forsiden er sjældent problemet. Mål en produktside, en kategoriside med filtre, kurven og kassen hver for sig. PageSpeed Insights viser både et laboratorietal og, hvis butikken har trafik nok, data fra rigtige besøgende i Chrome. Det er de sidste, Google bruger.

Kig især på, hvor lang tid serveren er om at svare, før browseren overhovedet begynder at tegne siden. Er det over et sekund på kurven, ligger problemet på serveren, og billeder og scripts kan ikke rette det.

Kurven og kassen kan ikke caches#

Cache-plugins gør forsiden og produktsiderne hurtige ved at gemme en færdig version. Kurven, kassen og "min konto" er forskellige for hver kunde og bliver bygget forfra hver gang. Derfor kan en butik se hurtig ud i en test af forsiden og stadig være langsom der, hvor kunden betaler.

Det, der hjælper her, er:

  • En opdateret PHP-version. Hver ny version er hurtigere end den forrige, og ældre versioner får ikke længere sikkerhedsopdateringer.

  • Objektcache. Redis eller Memcached gemmer svar fra databasen i hukommelsen, så de samme forespørgsler ikke køres igen ved hver sidevisning.

  • Nok PHP-processer. Billig delt hosting giver få processer, og når de er optaget, står de næste besøgende i kø.

Databasen vokser i det stille#

En butik, der har kørt i nogle år, har ofte en database, der er langt større end nødvendigt:

  • Tabellen `wp_options` indeholder indstillinger, der bliver indlæst ved hver sidevisning. Plugins, der er fjernet for længe siden, efterlader ofte data her.

  • Action Scheduler, som WooCommerce bruger til baggrundsopgaver, kan nå op på millioner af rækker, hvis gamle opgaver aldrig bliver ryddet op.

  • Ordrelagring. Nyere butikker gemmer ordrer i deres egne tabeller (HPOS), som WooCommerce har brugt som standard siden 2023. Ældre butikker gemmer dem stadig som indlæg mellem sider og produkter, og det gør både ordrelisten og rapporterne tungere. Skiftet kan laves på en kørende butik, men det skal testes med de plugins, butikken bruger.

Plugins: hvad hvert enkelt gør ved hver side#

Antallet af plugins siger lidt. Det afgørende er, hvad hvert plugin gør ved hver sidevisning. Et enkelt plugin, der kører en tung databaseforespørgsel på alle sider, koster mere end ti små. Værktøjet Query Monitor viser, hvilke forespørgsler og hvilke plugins der bruger tiden på en given side.

Kig også efter plugins, der indlæser scripts og stylesheets på alle sider, selvom de kun bruges et enkelt sted, for eksempel en formular på kontaktsiden eller en slider på forsiden.

Billeder, tema og tredjepartsscripts#

Når serveren svarer hurtigt, flytter problemet til browseren:

  • Billeder i fuld kameraopløsning, der bliver skaleret ned i browseren, og som ikke er gemt i WebP eller AVIF.

  • Tunge temaer og sidebyggere, der sender meget mere HTML, CSS og JavaScript, end siden bruger.

  • Tredjepartsscripts: chat, anmeldelseswidgets, sporingspixels og cookiebanner. Hvert af dem henter kode fra en anden server, og nogle af dem blokerer, indtil de er færdige.

  • Filtre på kategorisider, som kan lave langsomme forespørgsler, når der er mange produkter og egenskaber.

Hvorfor det er værd at rette#

Hastighed påvirker to ting, der begge koster penge: hvor mange besøgende der gennemfører et køb, og hvor højt butikken står i Google, hvor sidernes hastighed målt hos rigtige brugere indgår i vurderingen.

Jeg arbejder med WooCommerce-butikker, både når der skal bygges nyt, og når en eksisterende butik skal gøres hurtigere. Hastighed og indeksering er en del af min tekniske SEO, og overvejer du at skifte platform, har jeg skrevet om WooCommerce eller Shopify til en dansk webshop.

Var dette nyttigt?

Flere noter