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.