Skal du genere cache om natten på dit website?

Cache er godt på rigtigt mange punkter, særligt fordi det er hurtigere end ikke at have cache, men det er kun hvis der faktisk er oprettet cache på den side som brugere besøger, hvis der ikke er lavet en cache på serveren i forvejen, så er det brugeren der laver den, også er siden endnu langsommere end normalt.

Eksempler fra virkeligheden så loader forsiden på Mackabler på ca. 600ms, det er med cache og når den er oprettet, hvis der ikke er cache på siden er loader den på ca. 1,3sek og hvis der er cache på, men den ikke er oprettet er det ca. 1,5sek. Forskellen er meget lille, i den virkelig verden, men nogen af vores kategori sider tager tit 4-5sek at loade, her skal der være cache på.

Mange, faktisk de fleste, cache systemer er baseret på tid, dvs cachen er lavet så den vare i x sekunder og om man sætter den til 3 uger eller 10sek så er der altid nogen brugere som havner på en side uden cache, særligt hvis du har en meget stor side.

Det vi alle sammen brude have er smart cache, som kun sletter sig selv når der faktisk sker noget på siden, men ellers aldrig udløber, det gør denne blog’s cache system fx, det hedder WP fastest cache, og fungere super når man har en blog der ikke sker så meget på.

Men du kan også hacke det.

Du kan sætte cachen til at udløbe efter flere uger, men det er en dårlig idé, fordi ændringer så ikke kommer online før flere uger efter du har lavet dem.

Sæt din cache til at udløbe efter 24 timer, også indekser* hele siden hver nat, det betyder at cachen bliver lavet i løbet af natten, af en computer der synes det er fint at vente, også er cachen altid klar til dine brugere.

*indekser betyder at man får en computer til at besøge alle siderne på ens hjemmeside.

Hvis du starter i dag med et cache system der allerede er igang så går der nok et par uger før det hele er synkroniseret, fordi dine sider allerede er lavet når de bliver besøgt om natten også udløber i løbet af dagen, men systemet her går imod at cachen udløber hver nat og bliver lavet af din server selv.

Jeg har lavet et lille php script til dig, så burde virke for alle websider, det er baseret på at du har et sitemap, det har de fleste sider fra starten ellers er det let at installere et grats plugin til det.

Det eneste du skal gøre er at lægge det online på siden, også køre det hver nat med cronjobs, dette understøtter din host helt sikkert.

Dette er cronjobbet du skal køre: fx kl 2 om natten, sæt dem gerne til at køre 5min fra hinanden. Eksemplet neden for køre 4 cron jobs og besøger de 400 første sider på dit website.

https://ditdomænenavn.dk/vejen/til/dit/croncache.php?start=0&slut=100
https://ditdomænenavn.dk/vejen/til/dit/croncache.php?start=100&slut=200
https://ditdomænenavn.dk/vejen/til/dit/croncache.php?start=200&slut=300
https://ditdomænenavn.dk/vejen/til/dit/croncache.php?start=300&slut=400

Downlaod det her: croncache.php

Det eneste du skal gøre er at erstatte https://domænenavn.dk/til/dit/sitemap.xml med stigen til dit sitemap i XML format også håbe på det er formateret på samme måde som mit 🙂

Det er nok også en god idé at slette den øverste linje i dokumentet:
<!– sådan formatere du dine cronjobs dette eksemple tager siderne nummer 101 til 200 https://domanenavn.dk/vejen/til/dit/croncache.php?start=101&slut=200 –> Alt dette kan klares i hvilket som helst tekst program, fx textEdit på alle Macs


Huske at lave nogen test, så du ved hvor meget din server kan klare, vores klare let 200 af gangen, men billige hosts kan måske ikke det. Det er vigtigt at den fakstisk kan køre dem du sætter den til alt køre, fordi ellers ender du med sider der slet ikke har cache når dagen starter.