permalink

7

Optimering af WordPress — Hvordan får man WordPress til at køre hurtigere?

wordpress-logo-creative-commons-mykl-roventine-illustration-optimering-wordpress

Illustration: WordPress-logo. Creative Commons: Mykl Roventine.

Performanceoptimering fik voldsom opmærksomhed, da Google bekendtgjorde, at pageload-tid, altså hvor lang tid det ta’r at loade en side, fremadrettet ville fungere som en rankingparameter, altså være medbestemmende for, hvor i søgeresultaterne ens hjemmeside blev vist.

Læs også: Caching er min ven… 

Hvorfor bruge tid på optimering?
Performanceoptimering er i alles interesse. Hostingudbydere sparer ressourcer. Brugerne oplever hurtigere, mere responsive sites. Hjemmesideejerne ved, at deres sites skalerer bedre — og kan ta’ imod mere peaktrafik — og visse usability-/adfærdsanalyser viser, at lave loadtider er godt for konverteringsrater og average time spent on site.

Læs også: Webhotel til blogs. 

WordPress: Fra blogplatform til generel CMS-brug
Wordpress-platformen er uhyre populært til blogs, men stigende grad også til mere komplekse projekter, hvor WordPress anvendes som CMS (Content Management System).

WordPress bygger på php og mysql. MySQL er en open sourec database-teknologi, og php er det scriptingsprog, der bruges til at generere de dynamiske sider, der vises.

Læs også: Webhotel til WordPress. 

Php og caching — APC (Alternative Php Cache)
Php er et versatilt og stærkt sprog, men det skal fortolkes ved run-time. For at forbedre performancen udvikledes tidligt forskellige caching-teknologier. Den næste version af Php — php 6.0 — kommer fx medfødt med APC (Alternative PHP Cache).

Det er ikke alle udbydere, der understøtter APC, fordi cache-bibliotekerne bygger på brug af shared memory, altså en mængde hukommelser, der deles på tværs af processer og rettigheder.

Optimering af WordPress på standard-webhoteller
De fleste, der kører med WordPress-installationer, kører på standard webhoteller (shared hosting), hvor mange kunder deles om en ressourcepulje.

Disse webhotellers muligheder for at tweake og tune — fx ved at ændre indstillinger for php-fortolkeren eller ændre på cache-indstillingerne for MySQL-databasen — er ofte ikke eksisterende.

Hvad gør man så, hvis man gerne vil optimere sin WordPress’ installations performance?

W3 Total Cache-plugin til optimering af WordPress

optimering-wordpress-w3-total-cache

Illustration: Optimering af WordPress via W3 Total Cache -- her med brug af APC (Alternative PHP Cache).

Det korte svar: Man downloader og aktiverer et caching-plugin. Der er mange muligheder, men flere og flere (bl.a. Mashable, som jo i den grad har bevist, at WordPress-platformen kan skaleres til at klare tusinde og atter tusinde af samtidige besøgende) anvender W3 Total Cache, som er det mest avancerede caching-plugin på markedet pt., men som dog stadig kører rimeligt fornuftigt out of the box – altså uden diverse justeringer af indstillingsparametrene.

Hvordan virker optimeringen af WordPress med W3 Total Cache
W3 Total cache-pluginet indeholder en lang række forskellige mulighede for at optimere WordPress’ performance.

Minify: CSS og html.
I den simple ende tilbyder det mulighed for at minify’e diverse scripts — altså fjerne mellemrum og kommentarer, så de filer, der skal downloader, fylder mindre. Mange små filer, der downloades tusindevis eller hundredetundevis af gange per dag kan gøre en forskel for, hvor meget pres, man lægger på sin server.

Derudover er det muligt at sammenlægge forskellige css- og java-script-filer i én fil. De fleste browsere tillader kun 4-6 samtidige http-request, og hve filer ta’r én plads. Ved at samle flere javascript- og css-filer én fil, kan man nedbringe loadtiden.

Caching af databaseopslag og caching sider
Caching af databasekald (altså kald til MySQL-databasen) er også muligt med W3 Total Cache, ligesom det er muligt at cache sider, der har været vist. Det fungerer således, at siden altså kun behøves at fortolkes én gang af php-fortolkeren.

Cachingen kan udnytte diverse accelrator-biblioteker, der er bygget til php. Fx APC (Alternative Php Cache) eAccelrator eller MemCached.

Integration med et Content Delivery Network
Statisk indhold såsom billedr, videoer, javascript og css-filer anbefaler mange at servere fra et Content Delivery Network. Anbefalingerne er dog ikke altid værd at følge, hvis man hoster i Danmark og har en dansk brugerskare. De fleste store content delivery network træder først i karaktér, hvis man har behov for at servere for at servere indhold mod en mere spredt brugerskare.

Amazons Cloudfront-netværk nærmeste content delivery-node er fx i Irland.

Hvis ens hjemmeside siger mod en bredere målskare, kan integration med et Content Delivery Netowrk dog være en god idé.

Læs også: Kunsten at finde et hurgtigt webhotel 

Hvis man er tæt på at overskride ens trafikgrænser, kan et CDN også være løsningen.

Hvor finder jeg W3 Total Cache-pluginet til optimering af WordPress?
Her:  W3 Total Cache.

VN:F [1.9.22_1171]
Rating: 8.3/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Optimering af WordPress -- Hvordan får man WordPress til at køre hurtigere?, 8.3 out of 10 based on 3 ratings

7 Comments

  1. Hej Tobias & tak for feedback & spørgsmål!

    På denne blog har jeg fået undersiderne til at loade på under et minut, omkrig 0,7 sekunder i snit (og det er på en standard UnoEuro-løsning).

    Inden jeg optimerede og slog W3 Total Cache til, lå loadtiderne på omkring halvandet sekund for undersider.

    Skalérbarheden er også markant bedre nu — loadtiderne stiger ikke voldsomt trods flere samtidige forbindelser (op til 50).

    Loadtider er målt med Pingdom Tools & ySlow — og skalérbarhed / concurrency med Loadimpact.com.

    På Amino har jeg lige fået feedback på indlægget fra en gut, der hoster hos One.com.

    Før:
    http://loadimpact.com/result/billigefodboldtrojer.dk-40f339140c6beed997f25c9c3eada9fa

    Nu:
    http://loadimpact.com/result/billigefodboldtrojer.dk-4105ac3288ed31f59ffd0fab0e93b829

    Men bemærk, at det ikke er alle webhoteller, der kører lige godt sammen med W3 Total Cache; jeg fik det fx aldrig til at spille med Surftowns erhvervsløsning.

    Alt godt,

    Kasper

    VN:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  2. Rigtig god test du har lavet, det vil jeg afprøve på nogle af mine blogs også, tak!

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  3. Hej Kasper,

    Ved godt det er en lidt gammel artikel at kommentere på, men jeg sidder pt. og optimere loadtid for en af mine kunder på hans WordPress side og tænkte om du havde nogle nye (2012) tricks i ærmet / plugins som man med fordel kan bruge?

    :)

    VA:F [1.9.22_1171]
    Rating: 5.0/5 (1 vote cast)
    VA:F [1.9.22_1171]
    Rating: +1 (from 1 vote)
  4. Hej SEOTEXT!

    Helt i orden med kommentar til ældre artikel. Internationalt er der mange, der melder om gode erfaringer med Hyper Cache, så det er jo gået over til i stedet for W3 Total Cache-plugin’et, som jeg anbefaler ovenfor.

    Derudover betyder hostingen også rigtigt meget, så det ville nok være det første sted, jeg vendte mine øjne hen ved et sløvt site. Ved du, hvor WordPress-sitet er hosted?

    Alt godt,

    Kasper

    VN:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.22_1171]
    Rating: 0 (from 0 votes)
  5. Hej Kasper,

    Tak for dit hurtige svar.

    Ja, WordPress hjemmesiden er hosted ved UnoEuro, hvad er dine erfaringer med dette webhotel?

    VA:F [1.9.22_1171]
    Rating: 5.0/5 (1 vote cast)
    VA:F [1.9.22_1171]
    Rating: +1 (from 1 vote)
  6. Hej igen,

    Jeg — og mange andre, når man læser trådene på Amino fx — har gode erfaringer med UnoEuro. Da et par af mine sites blev populære blandt læserne, var jeg dog nødt til at flytte webhotel, da ressourcerne blev throttled ned af den platform, der driver sagerne, CloudLinux.

    Udover host skal du også være opmærksom på selve themet. Der er nogle themes, der ikke er skruet helt heldigt sammen, når det kommer til loadtider.

    Alt godt,

    Kasper

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

Leave a Reply

Required fields are marked *.