Publiserad

Hur man ökar prestandan hos WordPress-webbplatser är ett populärt samtalsämne bland WordPress-utvecklare. Ägare av e-butiker vet att snabbare webbplatser ger högre konverteringsgrad och ökad försäljning. Ingen gillar att vänta på sidor som laddas långsamt. Men kunskapen om hur man på rätt sätt höjer prestandan hos WordPress-webbplatser är fortfarande överraskande begränsad.

Den mest grundläggande och viktiga kunskapen är hur man mäter aktuell hastighet för en WordPress-webbplats. Utvecklare som inte vet hur man mäter hastigheten hos programkoden eller webbplatsen har mycket små chanser att snabba upp saker och ting. Det är rent slöseri med tid att prova våra tio olika saker som kanske (men oftast inte) kan förbättra en webbplats – då är det frågan om tur att råka prova något som har effekt.

För WordPress är den mest grundläggande mätningen att ta tid på hur lång tid det tar för PHP-miljön att skapa den HTML-kod som ska levereras. Det smidigaste sättet att prova vilken webbplats som helst är att använda kommandoradsverktyget cURL. Du behöver bara installera paketet (t.ex. med kommandot ”apt install curl” på Debian-baserade Linux-maskiner) och sedan köra kommandot curl och skriva ut värdet time_total:

curl -s -o /dev/null -w "%{time_total}\n" https://example.com/
0.123

Detta betyder att webbplatsen behövde 123 millisekunder för att hämtas från servern till maskinen som körde kommandot cURL. För att utesluta tidsfördröjning på grund av nätförbindelsen mellan servern och din egen dator kan du helt enkelt logga in till servern via ssh och köra curl där i stället för att utesluta alla mellanliggande nätverkshopp.

Om WordPress-webbplatsen körs i en professionell servermiljö kommer det att finnas vissa cache-lager mellan själva webbplatsen och omvärlden. Detta cache-lager levererar HTML-koden för innehållet mycket snabbare än PHP-miljön klarar. För att säkerställa att du varje gång betjänas av PHP-miljön behöver du kringgå cache-lagret med hjälp av header-kommandot No-Pragma (det är samma header som din webbläsare skickar när du trycker på Ctrl-F5 eller Option+R).

curl -s -o /dev/null -w "%{time_total}\n" -H "Pragma: no-cache" https://example.com/

Ibland kan PHP-körningen variera mellan olika sidladdningar. Det kan finnas oregelbundenheter i servermiljön. För att göra flera mätningar och ta fram den genomsnittliga svarstiden kan du använda ett skript med kommandona for och awk:

export LC_NUMERIC=C
for i in {1..20}
do 
 curl -so /dev/null -w "%{time_total}\n" https://example.com/
done | awk '{ sum += $1; n++; print $1 } END { if (n > 0) print "AVG: " sum / n; }'

0.209
0.107
0.152
AVG: 0.1378

Slutligen, om du har SSH-åtkomst till servern och WP-CLI finns installerat kan du inaktivera ett inlägg i taget med denna smidiga kodsnutt i bash för att se om något enstaka tillägg har stor inverkan på hur lång tid PHP-miljön behöver för att ladda en sida:

for p in $(wp plugin list --fields=name --status=active)
do
  echo $p
  wp plugin deactivate --skip-plugins $p
  for i in {1..5}
  do
    curl -so /dev/null -w "%{time_total}\n" \
    -H "Pragma: no-cache" https://example.com/
  done
  wp plugin activate $p 
done

Vi gillar att predika om WordPress-prestanda. Om man gör webbplatser snabbare blir resultatet inte bara att allt går smidigare. Dessutom sparar det processorkraft och el, och bidrar därmed till att rädda vår planet!

Om du vill läsa mer om ämnet, börja gärna med den här presentationen som vår VD Otto höll på WordCamp Athens i 2017.