Sæt fart på din WordPress blog med Caching, GZIP, Minify & CDN

Hastigheden på hjemmesider er i dag blevet et centralt emne - udover det giver brugere en bedre oplevelse af ens side, så får man faktisk også fordele i søgemaskiner som Google ved have en hurtig side. (Hastighed indgår som en faktor i beregningen af hvor din hjemmeside skal placeres i søgeresultaterne).
Dette kan du opnå vha. Caching der yderligere har den fordel at det kraftigt nedsætter dit forbrug af server ressourcer ved at kunne give brugerne cached filer i stedet for at alle brugere laver deres egne database/fil kald når en side besøges. Det betyder at din hjemmeside vil være meget bedre rustet til at håndtere store spikes af trafik. (Kendt som Digg effekt).

Jeg har delt Caching, GZIP, Minify & CDN guiden lidt op i punkter pga. omfanget.


Jeg har tidligere benyttet et kendt plugin (WP Super Cache) til mine WordPress blogs for at cache/komprimere mine data og det har da givet en positiv effekt.
Men for en lille uges tid siden faldt jeg over et nyt og helt fantastisk plugin til WordPress - W3 Total Cache, der slår WP Super Cache med længder. Du får masser af muligheder for at indstille det netop til din brug og jeg vil garantere dig at du kan nedsætte loadtiderne på din egen blog. (ved korrekt opsætning naturligvis).

For at nævne lidt af mulighederne med W3 Total Cache plugin:

  • Caching via diskcache/memcache/APC af dine sider, filer og RSS feed.
  • Komprimering via gzip+deflate af tema, plugins, CSS, JavaScript filer.
  • Minify dine CSS/JS/HTML/Feed + mulighed for at kombinere og gruppere CSS/JavaScript for at reducere DNS opslag. (kræver PHP 5)
  • Cacheing af database kald.
  • Mulighed for nemt at bruge CDN. (Content delivery network)

Hvert punkt giver dig masser af muligheder for at indstille dem til efter dine behov. De vil alle på forskellige måder kunne hjælpe med at forbedre hastigheden af din blog og samlet kan de faktisk rykke en hel del.

Jeg har lige lavet et par målinger med YSlow på et par af mine egne blogs du kan se herunder - kan give et billede af effekten når det er nogenlunde tunet. (Der er nu stadig masser af plads til forbedringer på begge blogs, så forventer at kunne lave endnu bedre tider)

Målinger af Snyd.dk (Hvert tal er sekunder, beregnet gennemsnit af 10 målinger)
Side / Step Forside Kategori Indlæg Søgning
Uden brug af Cache 6,9 6,2 8,0 6,5
Med WP Super Cache 5,8 5,0 6,9 5,1
Med W3 Total Cache 3,1 2,9 3,4 2,8
W3TC + CDN 1,5 1,8 2,0 1,3
Målinger af Linkfeed.dk (Hvert tal er sekunder, beregnet gennemsnit af 10 målinger)
Side / Step Forside Kategori Indlæg Side uden billeder
Uden brug af Cache 7,7 4,6 4,7 2,9
Med WP Super Cache 6,5 4,0 4,3 2,0
Med W3 Total Cache 4,4 2,1 2,1 0,5
W3TC + CDN 4,0 2,0 1,9 0,4

CDN har ikke den voldsomme impact på Linkfeed.dk, men det er også et tema uden meget grafik i. Desuden sløves siden af den screenshot-udbyder jeg pt. benytter. (dog har jeg fundet muligheder for caching af de screenshots - noget jeg vil rode med når tiden tillader det)

Du kan ud fra tabellen se at det godt har kunne betale sig at benytte dette plugin - det har reduceret hastigheden gevaldigt for begge eksempler. Snyd.dk er en blog der på gode dage har mere end 8000 brugere/40000 sidevisninger. At kunne tilbyde en hurtigere side til de brugere er rigtig vigtigt. Både for deres oplevelse af siden, men også mht. ressource forbruget på serveren. At søgemaskinerne så også giver lidt bonus til hurtigere sider er en rigtig lækker sidegevinst.

W3 Total Cache kan nu godt bruges direkte ved blot at aktivere det, men de helt store fordele kommer ved at tweake alt til og det kan man sagtens komme til at bruge mange timer på.
Du kan få inspiration og opsætnings eksempler ved at følge de forskellige guides jeg har i toppen af dette indlæg. (Udbygges løbende)

Læsestof:

Ressourcer:

Kommentarer

Skriv en kommentar »

  1. 1. januar 13th, 2010 klokken 07:01

    Super lækker gennemgang Claus – og fint du har delt den op i flere, glæder mig til de sidste afsnit også.

    Vil anbefale alle WordPress brugere at følge disse anvisninger, da jeg tydeligt kan se stor forbedring i loadtid på et par af Claus’ projekter!

    Ingen undskyldning bare se at komme igang folkens!

  2. 2. januar 13th, 2010 klokken 08:52

    Hej Claus, dette er netop indlægget jeg har ventet med “længsel” på, da jeg gerne vil have optimeret egen blog.

    Så ved jeg også, hvad jeg skal lave, når jeg kommer hjem fra arbejde :D

    Ps. Prøvede at rode med et pluging ved navn WP-Minify igår, men den kunne jeg simpelthen ikke få til at virke – sikkert fordi den kun understøttes til og med WP 2.8.4. – Og jeg bruger 2.8.6

    Michael ØstergaardNo Gravatar
  3. 3. januar 13th, 2010 klokken 09:12

    Super indlæg. Det vil jeg bestemt kigge nærmere på når jeg får et ledigt øjeblik.

  4. 4. januar 13th, 2010 klokken 09:25

    Dælme et godt indlæg, som jeg længe selv har ville skrive :-).
    Fedt at se klare facts om, at loadtiden virkelig falder ved brug af de cache plugins. At minimere loadtid med 400%, det må siges at være en væsentlig forbedring.

    glæder mig til at læse resten i serien..

  5. 5. januar 13th, 2010 klokken 11:35

    Uh, det tegner til at blive en topklasse-serie det her.

    Jeg har dog en forhåndsanke. Er der ikke nogle ulemper ved caching på blogs, hvor man gerne vil have interaktion med sine brugere i form af kommentarer? (at brugerne ikke nødvendigvis ser de nyeste kommentarer, fordi cachen ikke er opdateret).

  6. 6. januar 13th, 2010 klokken 15:58

    Fantastisk hjælp…

    Det er da klart noget, som jeg skal have testet på nogle af de blogs, jeg har liggende rundt omkring…:D

  7. 7. januar 13th, 2010 klokken 17:05

    Fedt i kan bruge det og tak for de rigtig pæne ord fra jer alle.

    @Frank: Jo der kan godt være situationer hvor du ikke vil cache filer, men det kan man heldigvis nemt specificere i netop W3TC og holde enkelte filer uden om caching.
    Lige mht. kommentarer så laver den en ny cache efter en kommentar godkendes, så det vil ikke påvirke noget der.

  8. 8. januar 13th, 2010 klokken 20:36

    Claus, det her er for genialt. Når denne kommentar er skrevet, vil jeg læse dit andet indlæg om opsætningen af W3TC, og så skal der bare optimeres loadtider på bloggen.

    Jeg glæder mig til at læse med i dine andre posts også. Top klasse!

  9. 9. januar 15th, 2010 klokken 10:24

    Hej Claus

    Tak for det. Det hjalp gevaldigt på loadtiden :-)

  10. 10. juni 24th, 2010 klokken 18:56

    Det skal jeg da prøve. Tak for hjælpen. Håber det kan hjælpe min WP-blog til at blive hurtigere.

    Mvh.

  11. 11. juni 24th, 2010 klokken 19:00

    @Camilla, du kan evt. kigge her først http://densynligemand.dk/load-tid-wordpress-blog/ – det vil være gode ting at få på plads inden du går videre til caching delen.

  12. 12. juni 26th, 2010 klokken 21:08

    Hej igen, Claus!

    Som tidligere nævnt har jeg haft store problemer med at finde et fornuftigt cache-plugin, fordi min host (Surftown) kører med safe mode on; men nu er det lykkedes.

    Hypercache — utroligt nemt at installere og resultaterne er indtil videre fornemme.

    Ingen fejl, så vidt jeg kan se, og loadtider, der er rykket med 30-200% — i den rigtige retning.

    Så er der håb for dem af os, der ikke kan få W3 Total til at spille fornuftigt.

    Alt godt,

    Kasper

  13. 13. juli 16th, 2010 klokken 16:22

    Hej igen, optimerings-Claus! :)

    Du skulle vel ikke have gjort dig nogle erfaringer med opcode caching og MySQL-cahing?

    Jeg har over de sidste par dage eksperimenteret lidt med Xcache, eAccelrator og APC; hvor valget er faldet på sidstnævnte. Alle tre integrerer sig fint med W 3 Total Cache.

    Derudover overvejer jeg også — mest for skæg — at gå i gang med at afprøve alternativer til Apache, som har ry, så vidt jeg kan læse mig til, for at være temmelig tung i måsen. Nginx og Lighttpd står for skud.

    Mit mål er at komme ned på under 1 sekund i load tid på undersider; og det lykkes af og til; men for at det skal nås på et strukturelt plan, er der lidt vej igen.

    Amazon CloudFront har ikke virket godt for mig mht. loadtider, connect-tiden er for ringe.

    Nu overvejer jeg at lave mit eget CDN på en ekstern server, som leverer statisk indhold via lighttpd eller nginx.

    Mere følger, måske — særligt hvis eksperimenterne går godt.

    Endnu engang tak for at få sparket mig i gang!

    Kasper

  14. 14. juli 16th, 2010 klokken 16:32

    uha Kasper, nu graver du dybt :) Du er gået videre end jeg reelt er nået mht. at tænkte i andre serversoftware valg. Men ja har hørt godt om dem du nævner.

    Efter længere tids brug er jeg enig i din konklusion med CloudFront – ved nye CDN’er vil jeg også bare bruge en ekstern DK host og hoste mine filer der.
    Cloudfront bliver først smart når man har brugere fra hele verden.

    1 sec er også min skæringsgrænse for loadtid, men det afhænger en del af hosten og deres HW/SW version og forbindelse. Så nogen steder er det umuligt at kommer derned i loadtid.

    Og ja jeg bruger også APC eller blot memcache – APC forbruger dog en del mere ram på serverside. De andre du nævner har jeg ikke fået testet så meget.

    Ja meld endelig tilbage med de ting du finder ud af :)

  15. 15. juli 16th, 2010 klokken 17:40

    Tak for superhurtig respons, Claus!

    Ja, jeg tror måske, jeg har været igennem den samme proces, du var igennem, da du købte den dedikerede server for noget tid siden.

    Jeg købte en lille VPS for at blive klogere på LAMP, men kom ikke rigtigt nogen vegne i forhold til loadtid.

    så købte jeg en der var lidt større (512 mb ram) og nåede et stykke.

    Nu er jeg ved at være nogenlunde sikker på egne evner og overblik — og backups og et fornuftigt graceful failover-setup — så jeg har opgraderet til 2gb ram 1gb burst — og er stille og roligt gået i gang med at flytte sites over.

    Indtil videre holder jeg mig til Apache for rewrite-regler med Nginex og Lighttpd vækker vist lidt bøvl med (fx med W 3 Total Cache).

    Men alt i alt meget spændende!

    /Kasper

  16. 16. juli 16th, 2010 klokken 18:09

    Ja det er sgu næsten samme process vi har været igennem der :) Jeg er også på 2gb ram nu på serveren, men tror ikke det er nok med de tunge sider jeg smider på den.

    Men spændende at du arbejder videre med tuningen – håber du sender en besked hvis du rammer noget godt :-)

  17. 17. maj 19th, 2011 klokken 12:44

    Er du vimmer, “Kurt” / københavnske spisesteder — linkspammer danske blogs for tiden!

  18. 18. maj 19th, 2011 klokken 12:47

    Jeps. Det er træls!

    Der er også forsøgt hos mig, men jeg har ikke automatisk godkend på kommentarer, så jeg trykkede “spam” i stedet for.

    Henrik AndersenNo Gravatar
  19. 19. maj 19th, 2011 klokken 19:36

    Tak, den er hermed spammet og holder øje med spammeren “københavnske spisesteder” i fremtiden :)

  20. 20. august 5th, 2011 klokken 20:59

    Jeg har lige et forslag til denne og fremtidige multi-post guides du laver. I bunden af guiden, burde der være et link til næste “del” af guiden, således at læseoplevelsen bliver mere flydende.

    - Bare et forslag :-)

  21. 21. august 29th, 2011 klokken 16:49

    Voldsomt godt plugin, bruger det også på mine sider nu.
    Tak for det!

  22. 22. august 29th, 2011 klokken 17:08

    @Malte: Glæder mig du kan bruge det :)

  23. 23. september 3rd, 2011 klokken 13:39

    Det plugin vil jeg da tjekke ud. Tak for tippet :)

    Hilsen

    Frederik

  24. 24. februar 21st, 2012 klokken 17:31

    Jeg har haft installeret W3 Total Cache på 2-3 sites hvor jeg ikke har kunne mærke en forskel overhovedet. Kan det skyldes at min hjemmeside er hosted ude i byen, hvor jeg ikke har mulighed for at tweake specielt meget.

  25. 25. februar 27th, 2012 klokken 20:41

    @Laust: Denne guide er også til hosting ude i byen. Mener det er fra Unoeuro.
    Husker du at teste din side som “logget ud” – hvis du prøvet at besøge siden mens du er logget ind, vil du ikke mærke forskel.

    Og ellers kan jeg kun anbefale at teste dig lidt frem – der vil med garanti være noget at hente i loadspeed med dette plugin

  26. 26. oktober 16th, 2013 klokken 13:05

    Hej Claus,
    Har efterhånden været forbi et par forskellige gennemgange af diverse WordPress cache plugins da jeg synes det godt kan være lidt uoverskueligt – og samtidig svært at se forskellen på loadhastigheder når man tester på tværs af diverse online værktøjer.
    Er dog rigtig fedt at læse dine erfaringer og eksempler med bl.a. CDN.

  27. 27. februar 5th, 2014 klokken 11:14

    Fedt indlæg. Jeg sad og ledte efter noget, der kan være med til at forbedre load-hastigheden på egne sider.

Trackbacks

  1. [...] På dansk jord har Claus Heinrich været aktiv med en serie om at optimere hastigheden på WordPress-blogs. [...]

    Gode ting fra mine Twitter-kontakter
  2. [...] der har lavet flere sammenhængende artikler om optimering af WordPress sites – du finder den centrale artikel her. Claus går meget systematisk frem, hvilket også gør artiklerne meget [...]

    Sæt fart på dit Wordpress site
  3. [...] til hvordan man får mere fart på WordPress, og gør den bæredygtig over for mange besøg. Læs Sæt fart på din WordPress blog med Caching, GZIP, Minify & CDN og især Opsætning af W3 Total Cache til WordPress som alle kan drage stor nytte [...]

    Få endnu mere fart på Wordpress » UnoEuro Weblog
  4. [...] Hvis du har lyst til at gå den vej, kan du læse denne vejledning fra Claus Heinrich til at sætte ‘Mere fart på WordPress’. Tags: hastighed, [...]

    Sådan halverede jeg load-tiden på min Wordpress-blog

Efterlad en kommentar, et trackback til din egen blog eller tilmeld dig mit RSS feed for denne post. Trackback URL for denne post Kommentar feed for denne post

Skriv en kommentar

Hjemmeside?

Preview
Dansk blog Engelsk blog
Twitter Claus Heinrich