Hoppa till innehållet

Cookieinställningar

Välj vilka typer av cookies du tillåter. Du kan alltid ändra ditt val via Cookieinställningar längst ned på varje sida. Integritetspolicy

Nödvändiga

Alltid på

Behövs för att logga in, spara din varukorg och komma ihåg dina val. De är alltid på.

Vilka cookies?
  • weboke_sessie, weboke_klant, weboke_remember: din session och att du förblir inloggad
  • weboke_basket: din varukorg
  • wkBtwIncl: visa priser med eller utan moms
  • wok_cookies: ditt cookieval, 12 månader

Mäter vilken annons som leder till ett besök eller en beställning, så att vi inte betalar för annonser som inte ger något.

Vilka cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), upp till 90 dagar
  • OpenAI Ads, annonser i ChatGPT
  • wok_aff: via vilken partner du kom till oss (affiliateprogram), 60 dagar

4,6

Land och språk

Varje land har en egen webbplats med landets priser och moms.

Visa

Cachelagring

Modul 6: Hastighet · Lästid: 9 minuter

Lärandemål: Efter den här lektionen kan du förklara vilka typer av cache som finns och ställa in och kontrollera en sidcache på rätt sätt.

Nyckelbegrepp: sidcache, webbläsarcache, Cache-Control, objektcache, Redis, OPcache, CDN, cachetillägg, LiteSpeed Cache, undantag (inloggad, varukorg, kassa), tömma cache, dubbla cachetillägg

Cache: gör inte samma arbete två gånger

En cache sparar resultatet av ett arbete, så att det inte behöver göras om nästa gång. På en WordPress-webbplats finns det fyra ställen där detta sker, från störst till minst:

TypVad som sparasVarEffekt
SidcacheDen kompletta HTML-koden för en sidaPå servern (eller hos ett CDN)Den största vinsten: PHP, tillägg och databas hoppas över
WebbläsarcacheStilmallar, skript, bilder, typsnittI besökarens webbläsareEn andra sida laddas snabbare, eftersom filerna redan finns där
ObjektcacheResultat av databasfrågorI serverns minne (Redis, Memcached)Hjälper där en sidcache inte räcker till, till exempel för inloggade användare och webbutiker
OPcacheDen kompilerade PHP-kodenI PHP:s minnePHP behöver inte läsa filer på nytt vid varje förfrågan; är påslaget som standard hos de flesta webbhotell

Sidcachen

Lektion 1.2 visade det: utan cache skapar WordPress om hela sidan vid varje besök. Med en sidcache skapar den första besökaren den, och de följande får den sparade HTML-koden. En TTFB på en sekund kan på så sätt bli några hundradels sekunder, och ditt paket klarar av betydligt fler besökare samtidigt.

Hur du får en sidcache beror på din webbserver:

  • LiteSpeed (många delade webbhotell, inklusive WebOké): webbservern har en egen cache. Det kostnadsfria tillägget LiteSpeed Cache styr den från WordPress: vilka sidor som får sparas i cachen, när de ska tömmas. Eftersom cachen sitter i webbservern startas PHP inte alls för en sparad sida.
  • Apache eller nginx: ett cachetillägg som sparar HTML-koden som filer, till exempel WP Super Cache, W3 Total Cache eller ett betaltillägg som WP Rocket. Eller en cache som webbhotellet sköter på servernivå.
  • Hanterat WordPress-webbhotell har ofta en egen cache; där installerar du vanligtvis inget cachetillägg.

Välj en. Två cachetillägg samtidigt (till exempel LiteSpeed Cache och WP Rocket) krockar med varandra: dubbelt arbete, sidor som inte töms, märkliga fel. På en LiteSpeed-server samarbetar LiteSpeed Cache med webbserverns cache; ett annat cachetillägg kan inte göra det.

Vad som inte ska cachelagras

En sidcache ger alla samma HTML. Det går fel på sidor som skiljer sig åt per besökare:

  • inloggade användare (adminfältet, "Välkommen, Lisa");
  • varukorgen, kassan och Mitt konto i en webbutik;
  • sidor med ett formulär med en engångskod (nonce), som slutar gälla efter en tid;
  • sidor som visar olika innehåll baserat på plats, språk eller en cookie.

Bra cachetillägg hoppar automatiskt över inloggade användare och de kända WooCommerce-sidorna. Vid andra tillägg (en medlemsdel, ett bokningssystem) måste du själv ställa in undantag. Tecknet på att det går fel: en besökare ser någon annans varukorg, eller ett formulär ger "har gått ut" eller "ogiltig begäran".

Tömma: när är cachen för gammal?

Ändrar du en sida måste den sparade versionen bort. Cachetillägg tömmer vanligtvis den sidan, startsidan och arkiven när ett inlägg sparas. Vid en ändring av menyn, temat eller en widget måste ofta hela cachen tömmas. Ser du den gamla versionen efter en ändring, töm då cachen (i cachetilläggets adminfält) och kontrollera i ett privat fönster, så att din egen webbläsarcache inte påverkar resultatet.

Webbläsarcachen

Servern talar om för webbläsaren med headers hur länge den får spara en fil:

cache-control: public, max-age=31536000

Detta betyder: spara detta i ett år. För stilmallar, skript, typsnitt och bilder är en lång tid helt rätt, eftersom WordPress sätter en annan ?ver= efter adressen vid en ny version, och webbläsaren då ser det som en ny fil. För själva HTML-koden är en kort tid (eller ingen alls) vanligt, så att besökare ser ändringar snabbt.

Många webbhotell och cachetillägg sköter detta. I uppgiften för den här lektionen kontrollerar du det.

Objektcache och Redis

En sidcache hjälper inte för inloggade användare och inte för varukorgen. Där hjälper en objektcache: WordPress sparar resultatet av databasfrågor i minnet, i ett program som Redis eller Memcached. Nästa gång samma fråga kommer sparar WordPress svaret från minnet i stället för från databasen.

Det är framför allt användbart för webbutiker, medlemswebbplatser och webbplatser med många inloggade redaktörer. För en vanlig informationswebbplats med en sidcache är skillnaden liten. En objektcache kräver att ditt webbhotell erbjuder Redis eller Memcached; du aktiverar den sedan med ett tillägg (LiteSpeed Cache kan göra det, det finns även fristående tillägg).

Ett CDN

Ett CDN (content delivery network) är ett nätverk av servrar på många platser i världen som sparar kopior av dina filer (och ibland hela dina sidor). En besökare får dem från den närmaste servern. Det hjälper framför allt vid besökare långt bort och vid mycket trafik. För en europeisk webbplats med europeiska besökare på en europeisk server är vinsten liten. Ett CDN med proxy (som Cloudflare) ändrar också din DNS och ditt certifikat (DNS-kursen lektion 7.5); gör inte det utan att förstå vad det innebär.

I praktiken: så här ser det ut i en panel

Som exempel använder vi LiteSpeed Cache på en LiteSpeed-server. Andra cachetillägg har liknande inställningar under andra namn.

  1. Installera och aktivera LiteSpeed Cache under Tillägg > Lägg till nytt.
  2. Öppna LiteSpeed Cache > Cache: "Aktivera cache" är påslaget, "Cacha inloggade användare" är avslaget (om du inte vet exakt vad du gör).
  3. Vid en webbutik: kontrollera under Uteslut att varukorg, kassa och Mitt konto finns med (vid WooCommerce sker det automatiskt).
  4. Låt de övriga delarna (optimering av CSS och JavaScript, bilder) vara avstängda till en början. Slå på dem en i taget och testa efter varje steg: just dessa delar kan ibland göra sönder ett tema.
  5. Kontrollera i ett privat fönster med utvecklarverktygen (F12, Nätverk, första förfrågan): vid andra laddningen ska x-litespeed-cache: hit visas.

Sammanfattning

  • Det finns fyra typer av cache: sida (den största vinsten), webbläsare, objekt och OPcache.
  • På en LiteSpeed-server styr LiteSpeed Cache webbserverns cache; på Apache eller nginx använder du ett annat cachetillägg. Välj en.
  • Inloggade användare, varukorg, kassa och personliga sidor hör inte hemma i sidcachen.
  • Töm cachen efter ändringar av meny eller tema och kontrollera i ett privat fönster.
  • En objektcache (Redis) hjälper vid webbutiker och inloggade användare; ett CDN hjälper framför allt vid besökare långt bort och mycket trafik.

Quiz

1. Vilken cache ger oftast den största hastighetsvinsten för en vanlig informationswebbplats?



2. En kund ser produkter från någon annan i sin varukorg. Vad är det troligen som är fel?



3. Varför installerar man inte två cachetillägg samtidigt?



4. Vem hjälper en objektcache som Redis mest?



Uppgift

Uppgift A6.2: Fungerar din sidcache? Fyll i adressen till din webbplats. Programmet hämtar startsidan två gånger kort efter varandra, utan cookies, och tittar vid andra hämtningen efter headers som visar en cacheträff (x-litespeed-cache: hit, x-cache: HIT, cf-cache-status: HIT, ett age-värde större än 0, eller headern för en annan känd cache). Därefter hämtar det en stilmall från startsidan och kontrollerar om webbläsaren får spara den i minst sju dagar (cache-control: max-age eller expires). Notera vilken cache du använder.

Uppgift A6.2: Fungerar din sidcache?



Det du fyller i och det vi hittar sparar vi inte. Din webbläsare kommer ihåg dina svar och om du klarade uppgiften. Är du inloggad sparar vi bara att du klarade uppgiften (nästan) i Mina kurser; där kan du också ta bort det.

Läs mer

Dessa artiklar beskriver stegen i WebOkés paneler; i andra paneler fungerar det på liknande sätt.

Ett ögonblick…

Ställ in dina domäner

Ställ in namnservrar, koppling till ditt webbhotell och vem som blir innehavare för varje domän.

Hämtar dina domäner…