Enkle trin til hastighedsoptimering af din Magento webshop

En webshop bør loade så hurtigt som muligt på alle enheder, både af hensyn til din synlighed, men især på grund af dine kunders tålmodighed – eller mangel på samme. I dette indlæg kigger vi på de lavthængende frugter i forhold til Magento hastighedsoptimering.

Denne guide er senest opdateret d. 17-05-2017.

Indholdsfortegnelse

Hvorfor er det godt at have en hurtig webshop?

Arbejder du med Magento hastighedsoptimering, slipper du måske for irriterede brugere

Dine brugere forlader nemt din shop i frustration, hvis dine loadtider er for lange.

Du kender sikkert den irriterende følelse når du surfer på nettet og du af den ene eller anden grund rammer en side der er langsom. Tålmodigheden bliver sat på en prøve, og de fleste holder ikke meget længere end nogle få sekunder før de har lukket siden ned eller klikket på tilbageknappen for at vende tilbage til deres Google søgning.

Så du skal først og fremmest have en hurtig webshop for brugernes skyld. De forlader din hjemmeside eller webshop, hvis de møder en langsom side. Eller risikoen for det er i hvert fald kæmpe stor.

I den seneste tid er Google, som er den suverænt mest brugte søgemaskine i Danmark, begyndt at rangere deres søgeresultater baseret på deres data om brugeradfærd mere end nogensinde før. Det vil sige, at hvis dine brugere forlader dig hurtigt på grund af dårlige loadtider, så kan det også nemt betyde at dine placeringer bliver dårligere. Det er måske ikke en rankingfaktor i sig selv, men hastigheden har allerede betydning for din synlighed, og det vil fortsætte i den retning i fremtiden.

Så ved hastighedsoptimering af din webshop kan du slå to fluer med et smæk. Du kan både tilgodese din synlighed og holde på brugerne.

Mål hastigheden på din webshop før du laver ændringer

Det er vigtigere end nogensinde før at have en hurtig hjemmeside eller webshop, men hvor hurtig skal den egentlig være?

Der er ikke noget der kan være for hurtigt i denne sammenhæng, men teknikken sætter sine begrænsninger for hvor hurtigt det kan blive. En rigtig god loadtid på en hjemmeside eller en webshop er 500 ms, men det er de færreste der er i stand til at optimere deres løsning så godt. En loadtid på c.a 1 sekund er også tilfredsstillende, og det er også ca. denne tid de fleste mindre Magento Webshop ejere kan/bør gå efter.

Inden du kontakter dit webbureau eller selv går i gang med at optimere, så mål din hastighed på dit site ved at bruge tools.pingdom.com eller få nogle optimeringsforslag på Google PageSpeed Insights.

Du kan se i videoen herunder hvordan du gør:

Tips til Magento hastighedsoptimering

Inden du haster ind i din Magento webshop, og forsøger dig med nogle af de forslag vi giver dig, så sørg altid for at lave en backup af din shop først. Der er nemlig altid er en risiko forbundet med at lave ændringer i en live shop.

Derudover er de ændringerne du laver 100% på eget ansvar. Ønsker du hjælp til  Magento hastighedsoptimering, så kontakt os gerne.

Med lad os nu kigge på de forbedringsmuligheder der er nemmest at udføre i din Magento shop.

Vælg den rigtige hostingpartner

De første milisekunder af din webshops loadtid står webserveren for at levere, og derfor har valg af hostingpartner og webhotel stor betydning for at din samlede loadtid er så lav som mulig.

Magento er krævende og avanceret software, som har brug for en kraftig server og folk der har forstand på at sætte den op. Det betaler sig at vælge en hosting partner der har forstand på Magento for at kunne opnå optimal ydelse. Det betyder samtidig at du er bedre hjulpet hvis din shop skulle blive hacket eller lignende.

Det bør ikke tage meget mere end 500 milisekunder at få adgang til de første downloadede Kb for en Magento shop (på en billig hostingløsning). Og totalt bør du ikke have en langsommere loadtid end 1 – 1,5 sekund. Og det skal naturligvis helst være hurtigere end det.

En god hostingpartner sørger også for – i samspil med dig – at informere om og udføre lukning af sikkerhedsbrister og optimering af performance. Et godt eksempel på dette er f.eks. skiftet til en nyere PHP version, som er programeringssproget Magento er lavet i.

Opgraderingen fra PHP6 til PHP7, som mange fik foretaget i 2016 eller 2017 giver f.eks. i sig selv mulighed for at performance boost, da der er arbejdes meget med hastighedsforbedringer i PHP7.

Vælg det rigtige webhotel

Èn ting er at vælge den rigtige webhost, men noget andet er selve webhotellet. Det er nemlig ikke nok at vælge den rigtige webhost. Du bør også tage stilling til om du har den rigtige hostingløsning hos dem.

Det kommer helt an på trafikmængde og dit databehov hvor stor en løsning du har behov for. De billigste hostingløsninger til Magento (selv hos en god webhost) kan for mange webshops være en for dårlig og ustabil løsning.

De billigste hostingløsninger er som regel én server, hvor du deler resurser med mange andre kunder (shared hosting). Det er en fin og billig måde at starte op på for en ny shop, men  i takt med at du får flere besøgende (eller din hastighed falder) bør du kigge efter en bedre løsning.

Når du deler dine hosting resurser med MANGE andre, så kan din server nemt være ustabil, da den også skal håndtere mange andre shops end din. Derudover kan alle disse shops pludselig modtage ekstra trafik eller deres trafik kan løbende sige, så serveren gradvist bliver mere langsom.

Skal du være mere sikker på at du altid har adgang til resurser nok, bør du kigge efter en hosting løsning til Magento, hvor du deler resurser ganske få webshops eller får din helt egen server. Det er naturligvis en dyrere løsning, men har du trafik og kunder nok til det, så er det et dumt sted at spare for meget. Du må ikke undervurdere hvor vigtig hastigheden af din shop er, i forhold til dit salg på webshoppen.

Endnu værre bliver det hvis du har valgt at drive din Magento shop fra et billigt webhotel, som også huser mange andre slags løsninger. Det kan selvfølgelig lade sig gøre, men resultaterne, sikkerheden og hjælpen til dig hvis lokummet brænder vil ofte være minimal. Det er ikke noget vi anbefaler.

Tjek indstillingerne i din Magento backend

De første ca. 500 milisekunder af loadtiden er altså allerede gået, så herfra gælder det om at være så hurtig som mulig. Det kan du bl.a. være ved at sætte en række indstillinger i Magento korrekt i forhold til at få en så god hastighed som muligt.

Nedenstående ændringer anbefales ikke at gøre på en live shop. Gør det på en test shop først, eller sørg i den mindste for at lave en frisk backup inden du går i gang.

Husk caching
Måske den mest åbenlyse, men jeg har set Magento shops hvor Magento’s egen cache system ikke var slået til. De bør du gøre med det samme, hvis det ikke er slået til.

Det gør du her: System -> Cache-styring -> Vælg alle –> Vælg aktiver under handlinger -> tryk på gennemfør.

Brug IKKE Magento’s compiler
På vores shops er Magento’s compiler aldrig aktiveret, og det skyldes at det fra version 1.5.x af Magento ikke kan betale sig mere. I dag er det bedre at undlade det, og så bruge en php accelerator i stedet.

Det sidste skal din webhost have styr på, og det er der tænkt på hvis du vælger en webhost med forstand på Magento. Så er det også konfigureret specielt med formål at optimere til Magento.

Aktiver flade kategorier og produkter
I en standard Magento opsætning skal bliver der lavet en del databasekald som er unødvendige, da info om kategorier og produkter gemmes i flere forskellige tabeller i databasen. Hvis du aktiverer flade kategorier og produkter gemmes disse data kun i én tabel, og det gør noget godt for loadtiden på især store produkt og kategori kataloger.

Hvis du har tusindvis af produkter, så bør du aktivere dette, og du vil med stor sandsynlighed også kunne mærke en forskel i hastighed. Har du få produkter, sker der ikke noget ved at gøre det, men du kan nok næppe mærke den store forskel.

Du aktiver det her: System -> Konfiguration -> Katalog -> Katalog -> Frontend -> Sæt “Brug flade kategorier” og “Brug flade produkter” til ja.

Bemærk: Du skal lave reindexere dit katalog hver gang du laver ændringer når dette er aktiveret.

Vis ikke for mange produkter på én gang
På dine produktlister (kategorier) må du ikke vise alt for mange produkter på én gang, da det tager for lang tid at loade. Det er bedst hvis du viser så få produkter af gangen, og lader dine brugere bruge bladre funktionen hvis de vil se flere produkter.

Vi anbefaler at du max viser 50 produkter af gangen. Og gerne mindre. Jo flere produkter du viser, des langsommere bliver din shop.

Du ændrer det her: System -> Konfiguration -> Katalog -> Katalog -> Frontend -> Sæt “Standardværdi for produkter pr. side ved tabelvisning” og “Standardværdi for produkter pr. side ved listevisning” til et lavt tal (f.eks. 24).

Undgå configurable swatches på listevisning
I Magento version 1.9.x er der kommet en ny smart feature, hvor du kan vise varianter på en smart måde på liste og detaljevisning. Funktionaliteten er sej, men den kan også give en langsom shop.

Loader du mange produkter i dine kategorier, og har mange af dem varianter, så anbefaler vi dig at du KUN viser dem på detaljevisningen, da loadtiden ellers bliver for lang.

Du kan slå det helt fra ellerkun gøre det for listevisningen her: System -> Konfiguration -> Katalog -> Configurable Swatches.

Sammenlægning af javascript og css filer
Det er måske ikke noget der giver den helt store hastighedsforbedring, men det er en ændring der kun tager 1 minut at slå til, så den er værd at tage med.

Magento themes har ofte rigtig mange javascript og css filer, og de kan med få klik i backenden slås sammen til én fil. På den måde kan du mindske mængden af http kald, og dermed teoretisk gøre dit site hurtigere. Det er ganske få Kb det drejer sig om, men da det er så hurtigt, så kan du lige så godt gøre det.

Du kan gøre der her: System -> Konfiguration -> Avanceret -> Udvikler -> Sæt “Sammenflet JavaScript-filer” og “Sammenflet CSS-filer” til ja. (Du bør dog teste om din shop kører som den skal efterfølgende. Et godt tema vil virke fint.

Tjek log indstillingere
Magento giver dig mulighed for at logge beskeder i de såkaldte “system log” og “exceptions log” filer, og dem bør de af og til holde øje med. Er der fejl i disse filer, så bør du se om du kan få dem rettet.

Hvis ikke fejlene kan rettes og din shop ellers kører fint, så kan du også overveje at deaktivere loggen. Hver gang en fejl skal logges (skrives ind i logfilen) tager det både tid og kræver resurser og plads på serveren. Hvis ikke du kan få fejlene rettet, så bør du måske teste og det kan betale sig for din hastighed at logging deaktiveres.

Du kan deaktivere det her: System -> Konfiguration -> Avanceret -> Udvikler -> Logindstillinger.

Bemærk: Du gør det potentielt svært for dine udviklere at fejlfinde hvis du deaktiverer logging.

Ryd op i databasen
Sørg for at databasen ikke bliver fyldt med unødig data i log tabellerne.

Tjek indstillingerne her: System -> Konfiguration -> Avanceret -> System -> Log -> Sæt “aktiver logrensning” til ja og “gem log, dage” til max 14 dage.

Optimer dine billeder

Størstedelen af det en bruger skal downloade fra en webshop er typisk billederne. I kategorier og på produktsider er der ofte mange billeder, og de fylder meget mere end tekst og kode.

Derfor er størrelsen på dine billeder noget du bør fokusere på når du uploader dem. Her kommer nogle regler du med fordel kan følge:

  • Brug JPG formatet hvis du ikke har brug for transparens (gennemsigtighed) og PNG når du har brug for transparens.
  • Sørg for at skære billedet til, så opløsningen på det ikke er unødvendig høj. Til en produktbillede kan en størrelse på 800*800 px i de fleste tilfælde være rigeligt. Jo større opløsningen er des mere fylder billedet og loadtiden skydes i vejret.
  • Når du gemmer dine billeder, så sænk kvaliteten så meget som muligt uden at det går mærkbart ud over kvaliteten. Eller brug et program som compressor.io.

Du kan hurtigt spare vigtige milisekunder i din samlede loadtid ved at optimere dine billeder. Er skaden sket eller har du tusindvis af produkter, så kan processen også automatiseres. Mere om det senere i indlægget.

Tjek dine moduler

Vi har flere gange oplevet at en Magento webshop er blevet langsom af at have mange moduler installeret. Ikke nødvendigvis på grund af mængden af moduler, men nærmere på grund af dårlige moduler, moduler der ikke er blevet vedligeholdt eller moduler der konflikter med hinanden.

Hvis din shop er langsom, kan der nemt være en del at hente her. For at teste det hurtigt kan du prøve at deaktivere alle de moduler du anvender og se hvad det gør for hastigheden på din shop. Giver det en stor hastighedsforbedring, så kan du prøve at aktivere dem en efter en og se hvilke moduler der er skyld i det.

Det kan jo være at du kan undvære nogle moduler eller at de findes i nyere versioner, eller at de måske kan erstattes af bedre moduler som ikke får din shop til at blive langsom.

Dette er som meget andet i dette indlæg IKKE noget du må teste på en live installation.

Generelt er vores filosofi, at du kommer enormt langt med Magento standard funktionalitet. Hvis du skal bruge ekstra funktionalitet, så er det en god ide at betale for modulerne hos anerkendte og udviklingsfirmaer i branchen.

Overvej også om du har behov for alt det du har på din shop. Det hele tager tid at indlæse. Det gælder også simple ting som:

  • Google Analytics tracking script
  • Chat scripts
  • Scripts til popup vinduer
  • Scripts til konverteringssoftware
  • Og meget andet

Fjern alt det du ikke bruger, og overvej om du med fordel kan undvære nogle af de ting du bruger.

Tjek din version af Magento

I de senere udgivelser af Magento har udviklerne arbejdet en del på at forbedre hastigheden i Magento kernen, så hvis du har en gammel version af Magento, så bør du overveje at få den opgraderet til seneste version.

Det kan både gøre noget godt for din hastighed og du kan også få omlagt til et mobilvenligt webdesign, hvis du ikke allerede har fået det gjort.

Tilpass din .htaccess fil

I din .htaccess fil er der også en række ting der bør undersøges. Her kan der indstilles en række tekniske ting, som kan forbedre din hastighed eller i hvert fald den loadtid som brugeren oplever på din side.

Nogle af de indstillinger der kan leges med i en .htaccess fil er f.eks.:

  • Komprimering af filer før de leveres til brugeren
  • Caching af indhold
  • Expire headers for billeder, css og javascript

Snak med din udvikler om disse er opsat korrekt eller aktiveret.

Yderligere muligheder for bedre Magento speed

Alle ovenstående muligheder er ting du kan afprøve uden at skulle bruge andet end din egen eller din udviklers tid på det. Den tid kan være rigtig godt givet ud, hvis det ender med at du kan få en hurtigere Magento shop ud af  det.

Optimalt set bør din shop loade på ca. 1-1,5 sekunder, og gerne hurtigere.

Der er dog yderligere tiltag du kan gøre for at optimere din hastighed. Fælles for de muligheder nedenfor er dog at de koster ekstra penge. Enten som en engangsinvestering eller som månedlig betaling. Derudover kræver det også udviklingstid at få sat op.

Det kan dog også være godt givet ud, alt efter hvilken shoptype og trafikmængde du har. Nogle af de muligheder du kan prøve er f.eks.:

Kraftigere webhotel eller dedikeret server

Jo mere trafik din shop får, des mere serverkraft har den også brug for. Det kan også være at de webshops du deler server med er vokset så meget at de optager for mange resurser.

Så det kan jævnligt være fornuftigt at kigge på serversituationen. Det kan være på tide at skifte til en større løsning eller måske din helt egen server.

CDN (Content Delivery Network)

Med et CDN kan du hoste alle dine billeder, javascript og css filer på eksterne servere, hos en af de populære udbydere af den slags. Det kan f.eks. være MaxCDN, Amazon’s CloutFront og Cloudflare.

Det koster penge, men kan være en god ide da det spreder de elementer brugeren skal downloade på din shop ud på flere servere, og de kan derved blive downloaded synkront af moderne browsere. Derudover har mange CDN services også bedre mulighed for caching end du har på dit webhotel.

CDN giver især mening for webshops der har mange sproglag.

Eksempel: Du har din shop liggende på en server, som er placeret i Danmark. Du har følgende sproglag: engelsk, tysk, spansk, fransk. Hvis en engelsktalende person fra USA, England eller Australien besøger din webshop, så vil deres loadtid være en del højere end en danskers, da deres elektroniske forespørgsel skal rejse længere.

Med CDN bliver dit indhold serveret til brugeren der hvor han eller hun befinder sig. Siden indhold indlæses fra den CDN server der er tættest på brugeren. Se det f.eks. illustreret med et overblik over Cloudflares server netværk her – sammenlignet med placeringen af din egen webserver.

CDN kan altså gøre en kæmpe forskel på hastigheden på en webshop. Især hvis det er en webshop der har mange sproglag.

Vil du høre mere om mulighederne med CDN, så kontakt os gerne.

Varnish Cache

For nogle webshops kan det være en god ide med Varnish Cache som er cashing der foregår mellem serveren og brugeren. Denne cache type kan således nedbringe ventetiden for hvornår brugeren kan downloade de første Kb fra din shop.

Det kan være værd at undersøge om Varnish Cache er noget der kan øge hastigheden for din webshop.

Automatisk billedoptimering

Hvis du har oploadet tunge og store billeder på din shop, så kan det isoleret set betale sig at nedbringe størrelsen på dem for at få en hurtigere loadtid. Har du tusindvis af produkter, så er det dog en enorm arbejdsproces du skal igennem, og derfor kan det måske betale sig at automatisere processen.

Det er muligt at opsætte og bruge en ekstern service der automatisk kan komprimere dine billeder i din Magento shop. Sådan en service koster penge hver gang du får et billede komprimeret, men den kan samtidig spare dig for en MASSE tid, og selvfølgelig give dig en hurtigere webshop.

Ulempen ved disse løsninger er at det kan blive dyrt i længden. Især hvis du har mange billeder. Af og til har du behov for at tømme cachen i Magento, og herefter kan det blive nødvendigt at komprimere (og betale for det) igen.

Komprimering af billeder er dog altid at foretrække. Så kan du selv vælge om du vil gøre det til en rutine og gøre det manuelt eller om du vil have en automatisk løsning sat op.

Har du brug for hjælp?

Har du brug for hjælp til Magento hastighedsoptimering, så kontakt os gerne, og lad os kigge på din shop. Vi starter altid med de lavthængende frugter, samt en vurdering af om vi overhovedet kan hjælp dig.

0 replies

Skriv en kommentar

Want to join the discussion?
Feel free to contribute!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *