Långsam laddning av PrestaShop 1.7-butiken

Allt oftare stöter e-handelsföretag på problemet med långsamma nätbutiker som är byggda på PrestaShop. Många IT-företag kan inte lösa dessa prestandaproblem. Att aktivera cache, byta till en snabbare server eller rensa databasen från onödiga data ger inte alltid de önskade resultaten. Butikerna fungerar långsamt, och sidor laddas på 3 till 10 sekunder, även med små produktdatabaser på några tusen produkter. Genom våra tio års erfarenhet av PrestaShop har vi utvecklat en metodik för att identifiera prestandaproblem, som kan delas in i databasrelaterade problem och problem med överskott av filer. Även om databasproblem är relativt enkla att identifiera med rätt mätningstekniker kräver problem med överskott av filer en fullständig analys av källkoden.

Prestandaproblem relaterade till databasen

Databasproblem uppstår huvudsakligen på grund av moduler som inte lagrar återkommande resultat i cacheminnet utan hämtar data från databasen varje gång en användare navigerar i nätbutiken. Många gratis och betalda moduler på marknaden kan sakta ner butiker avsevärt och problemen blir särskilt märkbara när produktdatabasen växer.

Det viktigaste är att hitta problematiska moduler, och ett sätt är att inaktivera alla moduler och aktivera dem igen en efter en. Efter varje modulaktivering bör butikens laddningshastighet testas. En tydlig försämring i hastigheten indikerar problem med den senast aktiverade modulen.

Om en problematisk modul identifieras kan den ersättas med en annan eller försöka repareras. Tyvärr kan inte alla moduler repareras på grund av att deras källkod är krypterad av utvecklaren. Det innebär att endast tillverkaren kan förbättra sådana moduler. Om modulen inte är krypterad kan en programmerare med erfarenhet av PrestaShop-butiker reparera den.

Under utvecklingsprocessen utförs följande:
– Optimering av databasfrågor
– Lägga till index i databasens kolumner
– Cachelagring av återkommande resultat från databasen
– Implementering av dynamisk laddning av moduler i bakgrunden, så att endast de som behövs för stunden laddas
Dessa uppgifter utförs för alla moduler som påverkar butikens laddningstid.

Problem med överskott av filer

Det andra problemet är överskott av filer som genereras av moduler. Vi har ofta stött på moduler som genererar dokument, t.ex. PDF-filer för erbjudanden, fraktsedlar eller fakturor, i sina kataloger. I PrestaShop 1.7 implementerades en autoload-funktion som automatiskt lägger till filer (t.ex. Core-filer och modulfiler) i serverns minne varje gång en sida laddas. Med andra ord, en dåligt skriven modul kan samla fraktsedlar för varje kundorder i en katalog, och nätbutikssystemet lägger till denna lista i sitt minne.

Problemet är litet när listan består av 1 000 filer, men vi har stött på fall där 100 000 filer laddades till cacheminnet varje gång en sida besöktes, vilket kraftigt saktade ner nätbutiken. Tyvärr hjälper inte avaktivering och aktivering av moduler, som vid databasproblem, för att hitta en dåligt konstruerad modul. Den enda metoden är manuell granskning av modulens källkod.

Sammanfattning

Företag är ofta omedvetna om kvaliteten på de moduler som köpts till deras nätbutik. Det finns också en falsk uppfattning att en köpt modul alltid är korrekt utvecklad. Det är viktigt att välja rätt moduler från betrodda programvaruleverantörer eller åtminstone utföra prestandatester efter installationen av nya moduler.

En långsam butik kan med tiden bli oanvändbar, inte generera försäljningskonverteringar och sjunka i Googles rankning.