Tilbage til Forsiden
Tips og tricks· 20. august 2026 ·Opdateret 24. aug. 2026 ·7 min læsetid

PrestaShop-ydeevne: cachelagring af en dynamisk butik på den rigtige måde

PrestaShop giver dig en seriøs butik ud af æsken, og en seriøs mængde arbejde pr. side for at gå med det. Sådan gør du det hurtigt uden at bryde de dynamiske bits.

Mads Edelskjold
Mads Edelskjold
Grundlægger, XprotectTerm0X ex-datacenter CTO
PrestaShop-ydeevne: cachelagring af en dynamisk butik på den rigtige måde
Den korte version

PrestaShop samler hver side fra PHP, Smarty-skabeloner og en travl database, hvorfor store kataloger bliver træge. Cache kataloget - hjem, kategorier, produkter - på kanten, og omgå cachen, når PrestaShop session cookie er til stede, så indkøbsvogne, checkout og kundekonti forbliver live. Hold øje med butikker med flere valutaer og flere sprog, som har brug for cachenøglen for at inkludere disse dimensioner.

PrestaShop er en ordentlig e-handelsplatform: multi-store, multi-valuta, multi-sprog, og et modul økosystem, der vil med glæde lade dig installere tredive ting. Alt dette kapacitet har en omkostning, og omkostningerne normalt dukker op, når kataloget passerer et par hundrede produkter og nogen spørger, hvorfor kategori sider tager to sekunder.

Hvor tiden går

Hver eneste PrestaShop-side samles efter behov. PHP-støvler, Smarty-skabelonmotoren gør, moduler kører deres kroge, og databasen er queried - ofte stærkt, fordi lagdelt navigation, prisregler, lager og kombinationer alle skal løses før siden kan trækkes.

De specifikke ting, der har tendens til at gøre ondt, i nogenlunde den rækkefølge, de ser ud som en butik, vokser:

  • Lagdelt navigation på store kategorier. Det er dyrt med facetteret filtrering, og forespørgslerne vokser med antallet af attributter.
  • Produktkombinationer. Et produkt med fem størrelser og seks farver er tredive forskellige kombinationer, hver med sin egen pris og sit eget lager.
  • Særlige prisregler. Hver pris, der vises, kan kræve, at katalogets prisregler vurderes i forhold til den aktuelle kundegruppe, valuta og land.
  • Modulkroge, der kører på hver side. Moduler registrerer kroge, der affyrer, uanset om siden bruger dem eller ej, og ingen overvåger dem.
  • Gendannelse af billeder. Gendannelse af miniaturer efter en temaændring er en velkendt måde at bruge en server på i timevis.

Intet af dette er en fejl. Det er det, der gør PrestaShop i stand til. Det er bare arbejde, der gentages for hver besøgende, herunder den tusinde besøgende på en produktside, der ikke har ændret sig siden marts.

Splittet, der gør caching sikker

Catalog — same for everyone → cache Cart & checkout — personal → bypass
Cache de delte sider, omgå de personlige. Alt andet er detaljer.
SideCache det?Bemærkning
Hjemmeside, kategorier, produktsiderJa, jaStørstedelen af din trafik
CMS-sider, producent- og leverandørlisterJa, jaSjælden ændring
SøgeresultaterNormaltKort TTL; normaliser forespørgselsparameteren
Resultater af lagdelt navigationForsigtigtCacheable, men se antallet af filterkombinationer
Indkøbskurv og betalingAldrigPersonlig pr. definition
Min konto, ordrehistorik, adresserAldrigPersonlige oplysninger
Alt under admin-mappenAldrigOmgåelse helt

Sådan får du den rigtige bypass

Hele tricket er at genkende, hvornår en besøgende er "i session" snarere end bare at browse. PrestaShop sætter en sessionscookie – navngivet PrestaShop- efterfulgt af en hash, der er unik for din installation – når en kunde har en indkøbskurv eller logger ind. Omgå cachen, når den cookie er til stede, og alt virker: anonyme browsere får cachelagrede sider, alle med en vogn får en levende.

To ting, der fanger folk:

Undgå at omgå cookien, der kun findes i en eller anden form. Nogle konfigurationer indstiller en sessionscookie ved første besøg uanset aktivitet, hvilket betyder, at ingen nogensinde får en cachelagret side, og dit hitforhold sidder tæt på nul, mens du spekulerer på, hvad der gik galt. Kontroller, om din installation giver anonyme besøgende den pågældende cookie, før du stoler på, at den er til stede.

Fjern sporingsparametrene. PrestaShop-butikker tiltrækker en masse kampagnetrafik, og ?utm_source= varianter fragmenterer din cache dårligt. Fjern dem fra cache-nøglen.

En fælde med flere valutaer og flere sprog

Denne ene er specifik for PrestaShop, og det er værd at mere opmærksomhed end det normalt får, fordi at få det forkert viser en dansk shopper priser i euro - eller værre, viser en engros kundegruppe detailpriser.

PrestaShop løser sprog, valuta og kundegruppe pr. anmodning, ofte fra cookies. Hvis din cache-nøgle ikke indeholder disse dimensioner, udfylder den første besøgende, der anmoder om en side, cachen med deres version og alle derefter modtager den.

Løsningen er enten at inkludere de relevante cookies i cachenøglen - så hver valuta og sprog får sin egen cachekopi - eller at bruge forskellige webadresser pr. Sprog og valuta, hvilket er bedre for SEO alligevel. Multishop-installationer har også brug for butiksdimensionen i nøglen.

Test dette med vilje, før du går live. Åbn butikken i én browser, skift valuta, og åbn den derefter i et nyt inkognitovindue, og se, hvilken valuta du får. Det tager halvfems sekunder, og det fanger den mest skadelige cachefejl, som en PrestaShop kan begå.

Rensning, når tingene ændrer sig

Et cachelagret katalog skal ugyldiggøres, når kataloget ændres. Prisopdateringer, lagerændringer og nye produkter har alle brug for de berørte sider renset, eller shoppere ser gårsdagens priser - hvilket er et kundeserviceproblem og, afhængigt af hvor du handler, potentielt et lovligt.

Praktisk tilgang: Rens den specifikke produktwebadresse og dens kategorisider på produktbesparelse, rens stort set efter en bulkimport og hold produktsiden TTLs beskedne - en time i stedet for en dag - så alt, hvad en udrensning går glip af Ret hurtigt sig selv. Hvis du viser levende lageroptællinger, skal du enten udelukke det pågældende fragment fra siden eller acceptere, at lagervisningen forsinker din TTL.

Og billederne

En PrestaShop-butik lever og dør på produktfotografering, og billedvægt er normalt den største enkeltkomponent i sidestørrelse. Konvertering til WebP eller AVIF og ændring af størrelsen på kanten gør rutinemæssigt mere for opfattet hastighed end nogen backend tuning - og i modsætning til at regenerere miniaturebilleder i admin-panelet, behøver det ikke en times servertid og en Bøn.

Ofte stillede spørgsmål

Hvorfor er mit PrestaShop-websted langsomt?

Fordi hver side samles efter behov fra PHP, Smarty-skabeloner og databaseforespørgsler, og det arbejde gentages for hver besøgende. Belastningen vokser med kataloget: lagdelt navigation, produktkombinationer, specifikke prisregler og modulkroge, der alle tilføjer forespørgsler pr. side. Caching af sider, der er identiske for alle kunder, fjerner gentagelsen i stedet for at optimere den.

Kan jeg bruge helsides cachelagring med PrestaShop?

Ja, til kataloget. Hjemmesider, kategorier, produkter og CMS-sider er identiske for anonyme besøgende og kan cachelagres på kanten. Kurv, checkout, kundekonto sider og admin område skal altid omgå cachen, som håndteres ved at registrere PrestaShop session cookie og betjener disse besøgende en live side.

Hvilken PrestaShop-cookie skal udløse en cache-bypass?

Sessionscookien PrestaShop, der hedder PrestaShop – efterfulgt af en hash, der er unik for din installation. Dens tilstedeværelse indikerer, at den besøgende har en indkøbskurv eller er logget ind, og cachen bør omgås for disse anmodninger. Kontroller først, om din installation problemer, at cookie til anonyme besøgende på første side indlæses, da hvis det gør, omgå sin tilstedeværelse alene ville forhindre nogen side nogensinde bliver cachelagret.

Hvordan cacher jeg en PrestaShop-butik i flere valutaer?

Medtag valuta og sprog i cachenøglen, enten ved at tilføje de relevante cookies til nøglen, så hver kombination cachelagres separat, eller ved at bruge forskellige webadresser pr. sprog og valuta, hvilket er at foretrække for SEO. Uden dette udfylder den første besøgende, der anmoder om en side, cachen med deres valuta, og hver efterfølgende besøgende modtager den. Multi-shop installationer skal også omfatte butiksdimensionen.

Hvordan forhindrer jeg kunder i at se forældede priser i cachen?

Rens de berørte produkt- og kategoriwebadresser, når et produkt gemmes, rens stort set efter bulkimport, og behold produktside-TTL'er til omkring en time, så alt, hvad en udrensning overser, korrigerer sig selv hurtigt. Hvis du viser levende lagerniveauer, skal du enten udelukke det pågældende fragment fra den cachelagrede side eller acceptere, at det vil være forsinket i forhold til længden af TTL'en.

Sammendraget er, at PrestaShop er tung af gode grunde og cacheable for bedre. Cache kataloget, omgå sessionscookien, få valuta og sprog ind i cachenøglen, før du går live, og optimer fotograferingen. Du beholder alt, hvad platformen kan, og mister den del, hvor den får folk til at vente.

#prestashop #ecommerce #caching #præstation
Sæt det i praksis

Se, hvordan NordicCDN gør dette for dit websted:

Mads Edelskjold
Skrevet af
Mads Edelskjold Grundlægger, NordicCDN ex-datacenter CTO

Mads har arbejdet med IT – mest som vært – siden han var 16. Han tog tidligt ejerskab i en SaaS-virksomhed og var med til at udvide den til Visma, har opbygget og drevet datacenternetværk og fungeret som CTO for et dansk datacenter. Han startede NordicCDN for at gøre hurtig og sikker infrastruktur enkel at bruge.

Få dit websted til at indlæses øjeblikkeligt

Start gratis på to minutter – intet kort påkrævet.

Start gratis