Få 20% bedre load-tider med HTTP/2 protokollen

Der er ingen tvivl om, at load-tiden på en hjemmeside er en ekstrem vigtig faktor for den samlede brugeroplevelse. Der er mange undersøgelser som viser, at load-tiden har direkte indflydelse på din konverteringsrate, bounce rate og den samlede brugertilfredshed. Hastighed har derfor også været en del af Googles algoritme siden april 2010.

En anden ranking-faktor, der blev introduceret i 2014, er brugen af HTTPS. Når du bruger HTTPS frem for HTTP bliver dataene mellem din hjemmeside og den browser der besøger den krypteret. Dataene kan heller ikke manipuleres og brugerne kan samtidig være sikker på, at de kommunikerer med den rigtige hjemmeside.

Kører din hjemmeside stadig med HTTP er det måske nu du skal overveje at skifte til HTTPS. Der er nemlig kommet en ny protokol HTTP/2. De fleste browsere vil kun understøtte HTTP/2 via TLS, så et sikkerhedscertifikat (også kendt som SSL-certifikat) er påkrævet.

Indlægget her er skrevet af Steen Christensen fra Katoni.dk. Steen har netop foretaget skiftet fra HTTP til HTTPS og bruger HTTP/2 protokollen.

katoni

HTTP/2 er efterfølgeren til HTTP/1.1 der blev udarbejdet tilbage i 1999. Protokollen har store fremskridt inden for effektivitet, sikkerhed og hastighed. Den er baseret på Googles SPDY protokol og har mange af de samme funktioner.

Protokollen er understøttet af cirka 68% af alle browsere globalt, men det tal er meget større i Danmark. Hvis den browser, der besøger din hjemmeside, ikke understøtter HTTP/2, bruger den HTTP/1.1. Dermed er der altså ingen risiko for at miste brugere.

HTTP/2 er understøttet i Apache fra version 2.4.17, som en eksperimental funktion, hvilket betyder, at der kan forekomme ændringer ved nyere udgivelser. NGINX understøttes af version 1.9.5, men kræver ngx_http_v2_module manuelt kompileres indtil version 1.10.0, hvor modulet automatisk følger med.

Google meddelte i 2015, at de snart er klar til at bruge HTTP/2 når de crawler hjemmesider og det burde give et ekstra ranking-boost i forhold til hastighed.

Du kan læse meget mere om HTTP/2 protokollen her.

Test af HTTP/2 protokollen

I testen hos Akamai henter de 100 billeder og her er HTTP/2 protokollen cirka dobbelt så hurtig som HTTP/1.1. Jeg har kørt testen i Google Chrome og hastigheden svinger alt efter hvilken browser man bruger.

Normalt får man en lidt langsommere hjemmeside ved at skifte til HTTPS. Det skyldes, at browseren skal lave et ”handshake” med serveren før den kan oprette forbindelse til den og hente indholdet. Men ved at bruge HTTP/2 protokollen blev vores hjemmeside faktisk 20% hurtigere med HTTPS end den var med HTTP. Så der er ingen tvivl om at det virker.

Hos Katoni.dk har vi længe haft planer om at skifte til HTTPS og det var faktisk HTTP/2 protokollen der ligesom gav det sidste til ”at nu gør vi det!”. Hvis man har en stor og kompleks løsning med flere servere kræver det alligevel lidt arbejde at skifte. Men har du muligheden, så ville jeg helt klart gøre det nu.

Det er dog ekstrem vigtigt, at du får lavet overgangen korrekt. Vi lavede derfor en masse research og en to-do-liste før vi skiftede. Du skal dog være opmærksom på, at ikke alle punkterne nødvendigvis er relevante for dig, da det afhænger af hvordan din løsning er sat op.

Herunder kan du se listen:

Testserver
Opsæt en testserver der viser en nøjagtig kopi af hjemmesiden.

Sikkerhedscertifikat

Installer et sikkerhedscertifikat på din server. Du kan få et gratis SSL-certifikat hos Let’s Encrypt. De skal dog fornys inden for 90 dage. Bestil ikke SHA-1, da Google viser dem som usikre fra 2017. Brug helst en 2048-bit nøgle til certifikatet, da det bidrager til en bedre sikkerhed. Test din sikkerhedsscore hos Ssllabs.com.

Opdater dine interne links
Alle dine interne links skal pege på HTTPS i stedet for HTTP versionen af din URL. Hvis du har brugt relative stier, sker det automatisk.

Resurser
Alle interne resurser, så som dit stylecheet, billeder osv. skal hentes med HTTPS i stedet for HTTP. Som tidligere nævnt, så sker dette automatisk, hvis du har brugt relative stier. Det gælder ligeledes for dine eksterne resurser. De skal kaldes og fungerer over HTTPS.

Hvis ikke alle resurser hentes via HTTPS, vil browseren indikere det over for brugeren. Dette kaldes ’mixed content ’ og betyder, at nogle resurser kan være usikre, fordi de ikke krypteres.

Det er ikke det samme som et udløbet eller usikkert certifikat, hvor browseren giver en advarsel før man kan fortsætte, men det skal stadig fikses, da det kan ødelægge funktionalitet på hjemmesiden.

Redirects

Alle URL’er på din hjemmeside skal redirectes fra HTTP til samme URL med HTTPS – og helst kun en redirect, altså ingen kæder. Kører din hjemmeside med ”www” foran, så skal http://ditdomæne.dk redirecte til https://www.ditdomæne.dk og http://www.ditdomæne.dk til https://www.ditdomæne.dk.

Ifølge Google betyder det ikke noget om du bruger 301, 302 eller 307 redirects, men personligt vil jeg altid vælge en 301.

Vil du være sikker på at dine brugere får din HTTPS-version, kan du aktivere HSTS. Det gør du ved at ændre i konfigurationen, så webserveren sender en ”Strict-Transport-Security” header. Den kan fortælle browseren, at alle HTTP forespørgsler til dette domæne automatisk skal opgraderes til HTTPS – både for den pågældende forespørgsel, men også de fremtidige. Derved laver browseren automatisk et 307 redirect.

Det er stadig meget vigtigt at konfigurere et almindeligt 301 eller 302 redirect, da kun browsere kigger på HSTS headeren. Uanset om du bruger Apache, NGINX eller noget helt tredje er princippet det samme: Tjek hvilken protokol forespørgslen anvender. Hvis det ikke er HTTPS, så lav et redirect.

Du kan læse mere om HSTS her.

Sitemaps
Bruger du sitemaps, så opdater dem til HTTPS, og husk også at ændre din robots.txt fil, hvis du har lokationen stående der (Sitemap: https://www.example.com/sitemap.xml).

HTTP/2 Protokollen
Konfigurer din server til at bruge HTTP/2 protokollen.

Canonical og Hreflang tags
Alle dine Canonical og Hreflang tags skal ændres til HTTPS.

Crawl din hjemmeside
Når du har ændret de forskellige ting på din testserver, så crawl din hjemmeside med et program som Screamingfrog. Her kan du eksempelvis se om der er interne redirects, interne links til http, om dine canonical tags ser rigtige ud osv.

Hvis du får alle dine HTTP-URL’er skrevet ud, kan du importere dem som en tekstfil og crawle dem. På den måde kan du se om de alle laver en korrekt redirect til HTTPS udgaven. Har du en stor hjemmeside, så tag eksempelvis 1.000 URL’er og test dem.

Webmaster tools
Opret din hjemmeside med HTTPS-versionen i webmaster tools. Derved vil du kunne se at flere og flere af dine besøgende kommer ind på din HTTPS-version. Og vigtigst af alt, så kan du se om Google kommer rigtigt rundt på din hjemmeside og ikke oplever fejl.

Eksterne værktøjer
Nogle af dine eksterne værktøjer, så som Adwords, Google Analytics, A/B split test programmer osv., skal også informeres om, at du nu bruger HTTPS.

Hos Katoni.dk fulgte vi denne liste og havde en fin overgang til HTTPS.

Har du tilføjelser til listen, så er du meget velkommen til at smide en kommentar.

 

Kommenter post