Tilbud på hastighedsoptimering lige nu

Htaccess indflydelse på performance

De fleste hjemmesider i dag benytter sig af htaccess filer, hvilket der på sin vis ikke er noget i vejen for, så længe man holder det på et minimum og kun bruger det til at løse de specifikke ting, som man ikke kan løse på andre måder.

Jeg har skrevet det før, men skriver det lige igen: htaccess filen har indflydelse på, hvor god en performance man har på sin hjemmeside. Jo mere man skriver i sin htaccess, jo større indflydelse har det. I dette indlæg vil jeg vise, hvor stor indflydelse det rent faktisk har, når man vil løse forskellige problematikker.

Data er taget fra såvel eksempler som irl-hjemmesider, jeg efterfølgende har været inde over for at optimere.

Hvordan er der testet?

Jeg har lavet en AB test på en almindelig html fil på en webserver. Testen er lavet på et helt nyt domæne uden besøg, crawling eller andet, som kan have indflydelse på testen. Jeg har først lavet tests uden htaccess fil for at have noget at sammenligne med og for at få et udgangspunkt.

Alle tests bliver lavet 5 gange med 10 minutter mellem hver test – det er gennemsnittet, der bliver resultatet af testen. Html filen indeholder kun normal html kode med teksten: Hej dette er en test af htaccess.

Udgangspunktet for html filen uden nogen htaccess fil er

5567

forespørgsler i sekundet

WordPress Permalinks aktiveret

Rigtig mange bruger wordpress som deres foretrukne system. Dette er der intet i vejen med. WordPress har som udgangspunkt nogle grimme og ikke helt så brugervenlige url adresser, medmindre man slår permalinks til, hvilket de fleste også gør. Når man gør dette, skrives der nogle linjer kode (rewrites) i en htaccess fil i roden. Stort set samme metode, som rigtig mange andre systemer håndterer brugervenlige url adresser.

Denne lille kode performer rent faktisk 15,74 % dårligere end udgangspunktet, altså kan html filen nu klare 4691 forespørgsler i sekundet

Standard www to non-www redirect

Vi kender det alle sammen: vi vil gerne omdirigere brugere og robotter til det rette domæne frem for et subdomæne eller måske et andet domæne som peger på hoveddomænet. Til dette bruger mange en ret simpel rewrite, som sørger for, at alt der ikke er det rette domæne, bliver omdirigeret til det rette domæne.

Denne proces gør, at html filen performer 7,81 % dårligere end udgangspunktet, og ja, også selvom jeg har testet det på hoveddomænet.

Redirects af forskellig art via PHP

Redirect alt der ikke er hoveddomænet til hoveddomænet

$hoveddomain = 'domæne.dk';
if($_SERVER['HTTP_HOST'] != $hoveddomain){
 header( 'HTTP/1.1 301 Moved Permanently' ); 
 header( 'Location: http://'.$hoveddomain.$_SERVER['REQUEST_URI'] );
 exit; 
}

Redirect specifik side til ny destination

// statisk 301 redirect via PHP
if($_SERVER['REQUEST_URI'] == '/sti/til/gammel/url.html'){
 header( 'HTTP/1.1 301 Moved Permanently' ); 
 header( 'Location: http://domæne.dk/sti/til/ny/url.html' );
 exit; 
}

Redirect alt der er i en bestemt mappe

// Redirect alt der er i mappen "/sti/til/gammel/"
if(strpos($_SERVER['REQUEST_URI'],'/sti/til/gammel/')){
 header( 'HTTP/1.1 301 Moved Permanently' ); 
 header( 'Location: http://domæne.dk/sti/til/ny/url.html' );
 exit; 
}

WordPress permalinks & www til non-www

Det er på ingen måder unormalt, at man løser begge disse i sin htaccess fil, og har man det, vil html filen, der er testet på, performe 22,23 % dårligere end udgangspunktet.

Hvorfor har htaccess indflydelse på performance?

Den har indflydelse på sitets performance, fordi den skal læses ved hver forespørgsel. Det vil sige, at i denne test er der kun 1 forespørgsel, hvilket er unormalt, men godt for denne test. Under normale omstændigheder er der mellem 30 og 150 forespørgsler, og for nogle hjemmesider endda 300+. Og det er altså ved hver forespørgsel, at filen læses, linje for linje.

Prøv at forestille dig, at hver gang du vil have en kop kaffe, skal du lige læse manualen til kaffemaskinen igennem, og det samme når du skal have sukker i, og ja sågar også når du skal have mælk i kaffen, og er du en af dem der også putter en sirup i, ja så skal du læse manualen igen. Også selvom du jo ikke behøver at læse manualen for at putte sukker, mælk eller sirup i.

Det vil uden tvivl gøre din kaffe klar langsommere, end hvis du slet ikke skulle læse den (aka ingen htaccess), eller hvis du kun skulle læse den 1 gang (aka vHost / eller PHP).

BPS, Better WP Security, W3TC, Permalinks og www til non-www

Ja disse plugins, eller tilsvarende er meget normale i en wordpress installation, og indflydelsen de har, varierer selvfølgelig fra plugin til plugin, men de nævnte er ikke de værste.

Men alligevel bliver performance 71,35 % dårligere end udgangspunktet, nemlig til kun 1595 forespørgsler i sekundet.

Det paradoksale er nok, at selv et hastighedsoptimeringsplugin som W3 Total Cache også gør performance dårligere end udgangspunktet, men tester man denne kode alene, ser det nu ikke så slemt ud – performance bliver 25,31 % dårligere end udgangspunktet. Men samtidig skal vi huske på, hvad det rent faktisk er, W3 Total cache optimerer, nemlig at PHP bliver undgået i de fleste tilfælde, når en bruger besøger siden. Så reelt bliver performance jo forbedret en helt del på den front: op imod 300-400 gange, så det er værd at tage med.

Derfor skal du tænke over det, før du gør noget

Ovenstående beskriver, hvorfor du skal tænke dig om, før du beslutter at bruge htaccess til at løse netop det, du ønsker, for der findes typisk bedre alternativer til det meste. Dog med undtagelse af permalinks / brugervenlige url adresser.

Fx hvis du flytter det, du har skrevet i din htaccess, over i din vHost, vil performance komme næsten helt op til udgangspunktet. Det samme gælder, hvis du flytter så meget, du kan, over i PHP i stedet for, så vil det stort set ikke belaste.

Min anbefaling er typisk at man kun skal ty til htaccess, hvis det er sidste udvej og eneste måde hvorpå man kan løse problematikken.

4 kommentarer til “Htaccess indflydelse på performance”

  1. Hej Kim
    Tak, det var noget af en op vågner. Jeg troede at .htacces var “Guds gave” til blandt andet løsning af 301 redirect. Da man jo bare kan udfylde linie for linie, efterhånden som man finder 404 fejl i webmaster tools.

    Nå jeg må finde en anden måde.
    mvh.
    Søren Hansen

Skriv en kommentar

Målet er kvalitet

Det er mit mål at levere kvalitetsløsninger med høj fokus på hastighed og teknisk seo. Uanset om der er tale om små eller store løsninger, vil fokus altid være på hastighed og teknisk seo.