Tillbaka till Sällskapet
Tips och tricks· 20 augusti 2026 ·Uppdaterad 24 aug 2026 ·7 min läsning

PrestaShop-prestanda: cachar en dynamisk butik på rätt sätt

PrestaShop ger dig en seriös butik ur lådan, och en allvarlig mängd arbete per sida för att gå med det. Hur man gör det snabbt utan att bryta de dynamiska bitarna.

Mads Edelskjold
Mads Edelskjold
Grundare, NordicCDN ex-datacenter CTO
PrestaShop-prestanda: cachar en dynamisk butik på rätt sätt
Den korta versionen

PrestaShop monterar varje sida från PHP, Smarty mallar och en upptagen databas, varför stora kataloger blir tröga. Cache katalogen - hem, kategorier, produkter - vid kanten och kringgå cacheminnet när PrestaShops sessionscookie är närvarande så att vagnar, kassan och kundkonton förblir live. Se upp för flera valutor och flerspråkiga butiker, som behöver cachenyckeln för att inkludera dessa dimensioner.

PrestaShop är en riktig e-handelsplattform: multi-store, multi-valuta, multi-språk och ett modulekosystem som gärna låter dig installera trettio saker. All denna kapacitet har en kostnad, och kostnaden brukar dyka upp när katalogen passerar några hundra produkter och någon frågar varför kategorisidorna tar två sekunder.

Där tiden går

Varje PrestaShop-sida monteras på begäran. PHP-stövlar, Smarty-mallmotorn renderar, moduler kör sina krokar och databasen är frågad - ofta tungt, eftersom skiktad navigering, prisregler, lager och kombinationer alla måste lösas före sidan kan dras.

De specifika saker som tenderar att skada, i ungefär den ordning de visas som en butik växer:

  • Lagad navigering på stora kategorier. Fasetterad filtrering är dyr, och frågorna växer med ditt attributantal.
  • Produktkombinationer. En produkt med fem storlekar och sex färger är trettio kombinationer att lösa, var och en med sitt eget pris och lager.
  • Särskilda prisregler. Varje pris som visas kan behöva katalog prisregler utvärderas mot den aktuella kundgruppen, valuta och land.
  • Modul krokar körs på varje sida. Moduler registrerar krokar som avfyrar oavsett om sidan använder dem eller inte, och ingen granskar dem.
  • Bildförnyelse. Miniatyrregenerering efter en temaändring är ett välkänt sätt att ockupera en server i timmar.

Inget av detta är en defekt. Det är det som gör PrestaShop kapabel. Det är bara arbete som upprepas för varje besökare, inklusive den tusende besökaren till en produktsida som inte har ändrats sedan mars.

Splittet som gör caching säkert

Catalog — same for everyone → cache Cart & checkout — personal → bypass
Cache de delade sidorna, kringgå de personliga. Allt annat är detaljer.
SidaCache det?Anmärkning
Hemsida, kategorier, produktsidorJa.Huvuddelen av din trafik
CMS-sidor, tillverkare och leverantörslistorJa.Sällan förändring
SökresultatVanligtvisKort TTL; normalisera frågeparametern
Resultat för skiktad navigeringFörsiktigtCacheable, men titta på antalet filterkombinationer
Varukorg och kassaAldrigPersonlig per definition
Mitt konto, orderhistorik, adresserAldrigPersonuppgifter
Allt under admin-mappenAldrigBypass helt

Att få bypass rätt

Hela tricket är att känna igen när en besökare är "i session" snarare än att bara surfa. PrestaShop ställer in en sessionscookie - som heter PrestaShop- följt av en hash som är unik för din installation - när en kund har en kundvagn eller loggar in. Bypass cachen när den cookien är närvarande, och allt fungerar: anonyma webbläsare får cachade sidor, alla med en vagn får en levande.

Två detaljer som fångar människor:

Gå inte förbi cookien som bara finns i någon form. Vissa konfigurationer ställer in en sessionscookie vid första besöket oavsett aktivitet, vilket skulle innebära att ingen någonsin får en cachad sida och ditt träffförhållande sitter nära noll medan du undrar vad som gick fel. Kontrollera om din installation ger den cookien till anonyma besökare innan du förlitar dig på dess närvaro.

Avlägsna spårningsparametrarna. PrestaShop-butiker lockar mycket kampanjtrafik, och ?utm_source= varianter fragmenterar din cache dåligt. Ta bort dem från cachenyckeln.

Multi-valuta och flerspråkig fälla

Den här är specifik för PrestaShop och det är värt mer uppmärksamhet än det brukar få, för att få det fel visar en dansk shopper priser i euro - eller värre, visar en grossist kundgrupp detaljhandelspriser.

PrestaShop löser språk, valuta och kundgrupp per förfrågan, ofta från cookies. Om din cachenyckel inte innehåller dessa dimensioner, fyller den första besökaren att begära en sida cache med deras Versionen och alla efter det får det.

Fixen är antingen att inkludera relevanta cookies i cachenyckeln - så att varje valuta och språk får sin egen cachade kopia - eller att använda olika webbadresser per språk och valuta, vilket är bättre för SEO ändå. Multi-shop installationer behöver butiksdimensionen i nyckeln också.

Testa detta medvetet innan du går live. Öppna butiken i en webbläsare, byt valuta, öppna den sedan i ett nytt inkognitofönster och kontrollera vilken valuta du får. Det tar nittio sekunder och det fångar det enskilt mest skadliga cachefelet som en PrestaShop kan göra.

Rensa när saker förändras

En cachad katalog måste ogiltigförklaras när katalogen ändras. Prisuppdateringar, lagerändringar och nya produkter behöver alla de drabbade sidorna rensas, eller shoppare ser gårdagens priser - vilket är ett kundserviceproblem och, beroende på var du handlar, potentiellt en juridisk.

Praktiskt tillvägagångssätt: Rensa den specifika produktwebbadressen och dess kategorisidor om produktsparande, rensa i stort sett efter en bulkimport och håll produktsidan TTLs blygsam - en timme snarare än en dag - så allt som en rensning missar Rättar sig snabbt. Om du visar live lagerräkningar, antingen utesluta det fragmentet från sidan eller acceptera att lagervisningen släpar efter din TTL.

Och bilderna

En PrestaShop-butik lever och dör på produktfotografering, och bildvikt är vanligtvis den största enskilda komponenten i sidstorlek. Konvertera till WebP eller AVIF och ändra storlek på kanten rutinmässigt gör mer för upplevd hastighet än någon backend tuning och till skillnad från regenerera miniatyrer i admin panelen, behöver det inte en timmes servertid och en bön.

Vanliga frågor

Varför är min PrestaShop-webbplats långsam?

Eftersom varje sida är monterad på begäran från PHP, Smarty mallar och databasfrågor, och att arbetet upprepas för varje besökare. Belastningen växer med katalogen: skiktad navigering, produktkombinationer, specifika prisregler och modulkrokar alla lägger till frågor per sida. Caching de sidor som är identiska för alla shoppare tar bort repetitionen i stället för att optimera den.

Kan jag använda helsides cache med PrestaShop?

Ja, för katalogen. Hemsida, kategori, produkt och CMS-sidor är identiska för anonyma besökare och kan cachas vid kanten. Varukorg, kassa, kundkonto sidor och administratörsområdet måste alltid kringgå cacheminnet, som hanteras genom att detektera PrestaShop session cookie och servering dessa besökare en levande sida.

Vilken PrestaShop-cookie ska utlösa en cache-bypass?

PrestaShop-sessionscookien, med namnet PrestaShop- följt av en hash som är unik för din installation. Dess närvaro indikerar att besökaren har en kundvagn eller är inloggad, och cachen bör kringgås för dessa förfrågningar. Kontrollera först om din installation problem som cookie till anonyma besökare på första sidan laddas, eftersom om det gör, kringgå sin närvaro ensam skulle förhindra någon sida från att någonsin cachas.

Hur cachar jag en PrestaShop-butik med flera valutor?

Inkludera valuta och språk i cachenyckeln, antingen genom att lägga till relevanta cookies i nyckeln så att varje kombination cachas separat, eller genom att använda olika webbadresser per språk och valuta, vilket är att föredra för SEO. Utan detta, den första besökaren att begära en sida fyller cachen med sin valuta och varje efterföljande besökare får den. Installationer med flera butiker måste också inkludera butiksdimensionen.

Hur förhindrar jag att kunder ser föråldrade priser från cachen?

Rensa de berörda produkt- och kategoriwebbadresserna när en produkt sparas, rensa i stort sett efter bulkimport och behåll produktsidans TTL till cirka en timme så att allt som en utrensning missar självkorrigerar snabbt. Om du visar live lagernivåer, antingen utesluta det fragmentet från den cachade sidan eller acceptera att det kommer att släpa efter längden på TTL.

Sammanfattningen är att PrestaShop är tung av goda skäl och cacheable för bättre. Cache katalogen, förbigå sessionscookien, få valuta och språk i cachenyckeln innan du går live och optimera fotograferingen. Du behåller varje bit av plattformens kapacitet och förlorar den del där det får folk att vänta.

#prestashop #e-handel #caching #prestation
Omsätt det i praktiken

Se hur NordicCDN gör detta för din webbplats:

Mads Edelskjold
Skrivet av
Mads Edelskjold Grundare, NordicCDN ex-datacenter CTO

Mads har arbetat inom IT - mestadels värd - sedan han var 16. Han tog tidigt del i ett SaaS-företag och hjälpte till att växa fram till Vismas förvärv, har byggt och drivit datacenternätverk och fungerat som CTO för ett danskt datacenter. Han startade NordicCDN för att göra snabb och säker infrastruktur enkel att använda.

Gör din webbplats laddad direkt

Starta gratis på två minuter - inget kort krävs.

Starta gratis