Gå direkte til indholdet

Cookieindstillinger

Vælg for hver type, hvilke cookies du tillader. Du kan altid ændre dit valg via Cookieindstillinger nederst på hver side. Privatlivspolitik

Nødvendige

Altid slået til

Nødvendige for at logge ind, gemme din kurv og huske dine valg. De er altid slået til.

Hvilke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: din session og at forblive logget ind
  • weboke_basket: din kurv
  • wkBtwIncl: vise priser med eller uden moms
  • wok_cookies: dit cookievalg, 12 måneder

Måler, hvilken annonce der fører til et besøg eller en bestilling, så vi ikke betaler for annoncer, der ikke virker.

Hvilke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), op til 90 dage
  • OpenAI Ads, annoncer i ChatGPT
  • wok_aff: hvilken partner der henviste dig til os (affiliateprogram), 60 dage

4,6

Land og sprog

Hvert land har sin egen side med landets priser og moms.

Se

Caching

Modul 6: Hastighed · Læsetid: 9 minutter

Læringsmål: Efter denne lektion kan du forklare, hvilke typer cache der findes, og indstille og kontrollere en sidecache korrekt.

Nøglebegreber: sidecache, browsercache, Cache-Control, objektcache, Redis, OPcache, CDN, cacheplugin, LiteSpeed Cache, undtagelser (logget ind, indkøbskurv, kassen), rydde cache, dobbelte cacheplugins

Cache: undgå at gøre arbejdet to gange

En cache gemmer resultatet af et stykke arbejde, så det ikke skal gøres igen næste gang. På et WordPress-websted sker det fire steder, fra størst til mindst effekt:

TypeHvad bliver gemtHvorEffekt
SidecacheDen komplette HTML for en sidePå serveren (eller hos et CDN)Den største gevinst: PHP, plugins og database springes over
BrowsercacheStylesheets, scripts, billeder, skrifttyperI besøgendes browserEn anden side indlæses hurtigere, fordi filerne allerede findes
ObjektcacheResultater af databaseforespørgslerI serverens hukommelse (Redis, Memcached)Hjælper, hvor en sidecache ikke kan, som ved indloggede brugere og webshops
OPcacheDen oversatte PHP-kodeI PHP's hukommelsePHP behøver ikke læse filer igen ved hver forespørgsel; er som regel slået til som standard hos de fleste hostingudbydere

Sidecachen

Lektion 1.2 viste det: uden cache opbygger WordPress hele siden igen ved hvert besøg. Med en sidecache opbygger den første besøgende siden, og de næste får den gemte HTML. En TTFB på et sekund kan på den måde blive til nogle hundrededele af et sekund, og din pakke kan klare langt flere besøgende samtidig.

Hvordan du får en sidecache, afhænger af din webserver:

  • LiteSpeed (mange delte hostingløsninger, herunder WebOké): webserveren har selv en cache. Den gratis plugin LiteSpeed Cache styrer den fra WordPress: hvilke sider der må være i cachen, og hvornår de ryddes. Fordi cachen ligger i webserveren, startes PHP slet ikke for en gemt side.
  • Apache eller nginx: en cacheplugin, der gemmer HTML'en som filer, som WP Super Cache, W3 Total Cache eller en betalt plugin som WP Rocket. Eller en cache, som din hostingudbyder styrer på serverniveau.
  • Managed WordPress-hosting har ofte sin egen cache; her installerer du som regel ikke en cacheplugin.

Vælg én. To cacheplugins samtidig (for eksempel LiteSpeed Cache og WP Rocket) kommer i vejen for hinanden: dobbeltarbejde, sider der ikke bliver ryddet, mærkelige fejl. På en LiteSpeed-server arbejder LiteSpeed Cache sammen med webserverens egen cache; en anden cacheplugin kan ikke det samme.

Hvad må ikke ligge i cachen

En sidecache giver alle den samme HTML. Det går galt med sider, der er forskellige fra besøgende til besøgende:

  • indloggede brugere (administrationslinjen, "Velkommen, Lisa");
  • indkøbskurven, kassen og Min konto i en webshop;
  • sider med en formular med en engangskode (nonce), som udløber efter et stykke tid;
  • sider, der viser noget andet baseret på placering, sprog eller en cookie.

Gode cacheplugins springer automatisk indloggede brugere og de kendte WooCommerce-sider over. Ved andre plugins (en medlemssektion, et bookingsystem) skal du selv indstille undtagelser. Tegnet på at noget er galt: en besøgende ser en andens indkøbskurv, eller en formular siger "udløbet" eller "ugyldig forespørgsel".

Rydning: hvornår er cachen forældet?

Hvis du ændrer en side, skal den gemte version væk. Cacheplugins rydder som regel den pågældende side, forsiden og arkiverne, når et indlæg gemmes. Ved en ændring af menuen, temaet eller en widget skal ofte hele cachen ryddes. Ser du den gamle version efter en ændring, så ryd cachen (i cacheplugin'ens administrationslinje) og kontrollér det i et privat vindue, så din egen browsercache ikke spiller ind.

Browsercachen

Serveren fortæller browseren med headere, hvor længe den må gemme en fil:

cache-control: public, max-age=31536000

Dette betyder: gem dette i et år. For stylesheets, scripts, skrifttyper og billeder er en lang periode fint, fordi WordPress sætter et andet ?ver= bagved adressen ved en ny version, og browseren så ser det som en ny fil. For selve HTML'en er en kort periode (eller slet ingen) almindeligt, så besøgende hurtigt ser ændringer.

Mange hostingudbydere og cacheplugins klarer dette. I opgaven til denne lektion kontrollerer du det.

Objektcache og Redis

En sidecache hjælper ikke ved indloggede brugere, og ikke ved indkøbskurven. Der hjælper en objektcache: WordPress gemmer resultatet af databaseforespørgsler i hukommelsen, i et program som Redis eller Memcached. Næste gang den samme forespørgsel kommer, henter WordPress svaret fra hukommelsen i stedet for fra databasen.

Det er især nyttigt for webshops, medlemswebsteder og websteder med mange indloggede redaktører. For et almindeligt informationswebsted med en sidecache er forskellen lille. En objektcache kræver, at din hostingudbyder tilbyder Redis eller Memcached; du slår det derefter til med en plugin (LiteSpeed Cache kan det, der findes også separate plugins).

Et CDN

Et CDN (content delivery network) er et netværk af servere mange steder i verden, der gemmer kopier af dine filer (og nogle gange hele dine sider). En besøgende får dem fra den nærmeste server. Det hjælper især ved besøgende langt væk og ved meget trafik. For et europæisk websted med europæiske besøgende på en europæisk server er gevinsten lille. Et CDN med proxy (som Cloudflare) ændrer også din DNS og dit certifikat (DNS-kurset lektion 7.5); gør ikke det uden at forstå, hvad det gør.

I praksis: sådan ser det ud i et panel

Som eksempel bruger vi LiteSpeed Cache på en LiteSpeed-server. Andre cacheplugins har tilsvarende indstillinger under andre navne.

  1. Installér og aktivér LiteSpeed Cache under Plugins > Tilføj ny.
  2. Åbn LiteSpeed Cache > Cache: "Aktivér cache" er slået til, "Cache indloggede brugere" slået fra (medmindre du ved, hvad du gør).
  3. Ved en webshop: kontrollér under Udeluk, at indkøbskurv, kassen og Min konto er med (ved WooCommerce sker det automatisk).
  4. Lad de øvrige dele (optimering af CSS og JavaScript, billeder) være slået fra til at starte med. Slå dem til én for én, og test efter hvert trin: netop disse dele kan nogle gange ødelægge et tema.
  5. Kontrollér i et privat vindue med udviklerværktøjerne (F12, Netværk, første forespørgsel): ved anden indlæsning bør der stå x-litespeed-cache: hit.

Opsummering

  • Der findes fire typer cache: side (den største gevinst), browser, objekt og OPcache.
  • På en LiteSpeed-server styrer LiteSpeed Cache webserverens egen cache; på Apache eller nginx bruger du en anden cacheplugin. Vælg én.
  • Indloggede brugere, indkøbskurv, kassen og personlige sider hører ikke til i sidecachen.
  • Ryd cachen efter ændringer af menu eller tema, og kontrollér i et privat vindue.
  • En objektcache (Redis) hjælper ved webshops og indloggede brugere; et CDN især ved lang afstand og meget trafik.

Quiz

1. Hvilken cache giver normalt den største hastighedsgevinst for et almindeligt informationswebsted?



2. En kunde ser en andens produkter i sin indkøbskurv. Hvad er der sandsynligvis galt?



3. Hvorfor installerer man ikke to cacheplugins samtidig?



4. Hvem hjælper en objektcache som Redis mest?



Opgave

Opgave A6.2: Virker din sidecache? Indtast adressen på dit websted. Programmet henter forsiden to gange kort efter hinanden, uden cookies, og ser ved anden gang efter headere, der viser et cachetræf (x-litespeed-cache: hit, x-cache: HIT, cf-cache-status: HIT, en age større end 0, eller headeren fra en anden kendt cache). Derefter henter det ét stylesheet fra forsiden og kontrollerer, om browseren må gemme det i mindst syv dage (cache-control: max-age eller expires). Noter, hvilken cache du bruger.

Opgave A6.2: Virker din sidecache?



Det, du udfylder, og hvad vi finder, gemmer vi ikke. Din browser husker dine svar, og om du har bestået opgaven. Er du logget ind, gemmer vi kun, at du (næsten) bestod opgaven, i Mine kurser; der kan du også slette det.

Læs mere

Disse artikler beskriver trinnene i WebOkés paneler; i andre paneler fungerer det på tilsvarende vis.

Et øjeblik…

Opsæt dine domæner

Angiv for hvert domæne navneserverne, tilknytningen til din hosting, og hvem der bliver ejer.

Indlæser dine domæner…