Välimuisti, ja tässä kohtaa paremminkin sanottuna välimuistitus, tarkoittaa prosessia, jossa tiedostoja kerätään välimuistiin tai tilapäiseen varastointilokaatioon.
Teknisesti välimuisti tarkoittaa siis mitä tahansa tilapäistä varastointipaikkaa tiedostokopioille ja datalle. Mutta pääsääntöisesti sillä viitataan internetiin liittyvään teknologiaan.
Esimerkiksi verkkoselain ottaa välimuistiin talteen muun muassa HTML-tiedostoja, JavaScriptejä ja kuvatiedostoja lyhentääkseen verkkosivuston latausaikaa. DNS-serverit tallentavat puolestaan tilapäisesti DNS-tietueita ja CDN-serverit sisältöä viiveen vähentämiseksi. Ja sitten on vielä palvelinvälimuisti.
Mutta niistä enemmän tuonnempana.
Lyhyesti ja ytimekkäästi todettuna: välimuistin tehtävänä on tehdä internetin käytöstä nopeampaa verkon käyttäjille, sillä sen sijaan, että kaikki ladattaisiin yhtäaikaisesti verkkosivustolle mentäessä, välimuistiin on tallennettu jo kopio sivustosta edellisellä vierailukerralla.
Välimuistin merkityksen konkreettinen ymmärtäminen saattaa olla kuitenkin haastavaa, joten otetaanpa esimerkki valaisemaan asiaa.
Miellä välimuisti esimerkiksi ruokavarastona.
Kun tutkimusmatkailija Roald Amundsen oli vuonna 1912 palaamassa etelänavalle suuntautuneelta reissultaan eli matkaamassa samaa reittiä takaisin, hän ja hänen joukkonsa elivät ruoalla, jonka he olivat mennessään varastoineet matkan varrelle. Tämä oli huomattavasti tehokkaampi tapa kuin odottaa, että joku toimittaa heille ruokaa perusleiriltä matkan varrelle.
Internetissä olevat välimuistit toimivat samalla tavoin, ajaen saman tarkoitusperän. Ne varastoivat esimerkiksi verkkosivustolla olevia sisältöjä ja tekevät selaamisesta huomattavasti jouhevampaa, tehokkaampaa ja nopeampaa, helpottaen ”matkantekoa” ja siten parantaen käyttäjäkokemusta.
Eri välimuistityypit
Mainitsin edellä lyhyesti, millaisia erilaisia välimuisteja on olemassa. Merkittävät välimuistityypit ovat selaimen välimuisti, palvelinvälimuisti (server side caching) ja CDN:n välimuisti (Content Delivery Network caching).
Mutta, mitä nämä varmasti monille lähinnä nimihirviöiltä kuulostavat termit, ja tarkemmin sanottuna välimuistityypit, sitten oikein tarkoittavat?
Selaimen välimuisti (browser caching)
Kun puhutaan selaimen välimuistista, liittyy se silloin käyttämääsi selaimen. Esimerkkejä selaimista ovat muun muassa Google Chrome, Safari, Opera ja Mozilla Firefox.
Selaimen välimuisti tarkoittaa pientä tietokantaa, johon tallennetaan tilapäisesti erilaisia verkkosivustojen tiedostoja, kuten logoja, värejä, fontteja sekä myös koodia. Toisin sanoen, verkkosivuja tallennetaan selaimen välimuistiin tilapäisesti.
Selaimet toimivat siten, että ne pyytävät sisältöjä verkkopalvelimilta, mikäli sisältö ei ole jo tallennettuna selaimen välimuistiin, ja sisältö haetaan suoraan verkkopalvelimelta; näin on esimerkiksi, jos menet verkkosivustolle, jossa et ole kyseisellä selaimella aiemmin käynyt. Jos sisältö on kuitenkin jo välimuistitettu, selain ohittaa verkkopalvelimen ja lataa sisällön suoraan välimuististaan.
Ehkä konkreettinen esimerkki avaa selaimen välimuistin roolia parhaiten.
Kuvitellaan, että olet verkkosivustolla A. Tämän jälkeen kirjoitat osoiteriville verkkosivuston B osoitteen. Haluat kuitenkin palata takaisin verkkosivustolle A. Koska olit jo käynyt verkkosivustolla A, ja se on tallennettuna selaimesi välimuistiin, sivusto latautuu silmänräpäyksessä eli siellä olevaa sisältöä ei tarvitse ladata uudelleen.
Joissain tilanteissa sisältö kuitenkin joudutaan lataamaan uudelleen. Kun palaat aiemmin vierailemallesi verkkosivustolle, selain vertailee päivämääriä välimuistiin tallennetun sivun ja itsessään kyseisen verkkosivuston välillä. Mikäli verkkosivustolla ei ole tapahtunut muutoksia, sivu esitetään välimuistista välittömästi. Mutta, jos verkkosivustolla on edellisen vierailun ja nyt tapahtuvan vierailun välillä tapahtunut muutoksia, tällöin sivusto ladataan uudelleen ja samalla se korvaa välimuistissa vanhentuneen version sivustosta.
Selaimen välimuistin tarkoituksena on nopeuttaa käyttäjän latausnopeuksia, kun hän vierailee verkkosivustoilla, ja se sijaitsee käyttäjän tietokoneella.
Palvelinvälimuisti (server-side caching)
Kun puhutaan palvelimista, niistä käytetään puhekielessä myös termejä ”serveri” ja ”servu”.
Palvelimen välimuisti toimii samalla tavalla kuin selaimen välimuisti eli sinne tallennetaan tietoja ja sisältöä verkkosivustoilta, kuten esimerkiksi HTML-koodia, mutta myös kuvia, muita tiedostoja ja valmiiksi ”renderöityjä” sivuja.
Merkittävin ero selaimen ja palvelimen välimuistin välillä tulee siinä, että palvelimen välimuisti ei sijaitse käyttäjän tietokoneella, vaan konkreettisesti serverissä, ja siten se palvelee kaikkia verkkosivuston käyttäjiä. Se siis näin ollen vähentää itsessään palvelimen kuormitusta ja nopeuttaa erilaisten pyyntöjen käsittelyä.
Otetaan jälleen esimerkki.
Kun käyttäjä A saapuu verkkosivustolle, tallentuu palvelimen välimuistiin sen hetken versio verkkosivustosta. Kun puolestaan käyttäjä B saapuu samalle sivustolle, hänelle näytetään palvelimen välimuistiin edellisen käyttäjän istunnon aikana tallennettu versio sivustosta – ellei sinne ole tullut muutoksia. Tällä tavoin palvelimen kuormitusta vähennetään ja siten nopeutetaan pyyntöjen käsittelyä, jolloin sivusto latautuu käyttäjälle B salamannopeasti.
CDN:n välimuisti (Content Delivery Network caching)
CDN:n välimuisti toimii aivan samalla tavalla kuin palvelimen välimuisti, mutta niiden välillä on yksi merkittävä ero, joka pääsääntöisesti tekee CDN:ää käyttävästä verkkosivustosta nopeamman: CDN koostuu useista palvelimista, jotka sijaitsevat ympäri maailmaa eli verkkosivuston kuormitusta voidaan jakaa useille eri servereille ja tietoja tallentaa useiden eri palvelimien välimuistiin.
Edellä mainittu vaikuttaa merkittävästi käyttäjäkokemukseen niissä tilanteissa, joissa verkkosivustolla on paljon yhtäaikaista liikennettä eli eri käyttäjiä.
Mennään jälleen esimerkin kautta.
Kun käytössä on vain yksi palvelin, verkkosivusto latautuu eri puolilta maailmaa tuleville käyttäjille yhdestä ja samasta fyysisestä lokaatiosta. Mutta, kun käytössä on CDN, ladataan verkkosivusto käyttäjää lähimpänä maantieteellisesti sijaitsevasta palvelimesta, jolloin latausaika lyhenee.
Kyse on siis konkreettisesta matka-ajasta: esimerkiksi Helsingistä kestää pidempään ajaa Ouluun kuin Tampereelta, ja ikään kuin tällä tavoin myös palvelimet toimivat.
Välimuistin hallinta ja optimointi
Välimuistin hallinta ja optimointi on itse asiassa hyvinkin tärkeä asia, kun puhutaan verkkosivuston latausnopeudesta eli siitä, miten nopeasti se latautuu käyttäjälle hänen saapuessa sivustolle.
Välimuistin optimointiin kuuluu muun muassa niin sanotun parasta ennen -päivän säätäminen (expiration date). Tämä tarkoittaa käytännössä ottaen sitä, että verkkosivuston omistaja määrittää asetusten kautta, milloin välimuistiin tallennetut tiedot nollautuvat.
Jos esimerkiksi verkkosivuston omistaja tietää, että sivustoa päivitetään eli uutta sisältöä tulee korkeintaan kolmen päivän välein, tällöin välimuistin nollautumisajaksi voidaan määrittää kolme päivää.
Tämä on hyödyllistä, sillä välimuistin oletusasetuksissa nollautumisväli voi olla esimerkiksi yksi päivä. Tällöin välimuisti nollautuu turhaan päivän välein ja siten verkkosivusto latautuu aivan turhaan, joka päivä, käyttäjälle hitaammin kuin olisi tarve.
Välimuistin optimointi voidaan viedä vielä tätäkin pidemmälle säätämällä erilaiset nollautumisajat keskenään erilaisille tiedostoille. Mikäli esimerkiksi HTML-koodiin tehdään muutoksia korkeintaan kuukauden välein, mutta verkkosivustolle ladataan uusia viikoittain, tällöin niille kannattaa säätää eri nollautumisaika; näin saadaan jälleen optimoitua verkkosivustoa käyttäjälle nopeammaksi, kun HTML-koodi ei lataudu turhaan yhtä tiheästi kuin kuvatiedostot.
On siis äärimmäisen tärkeää välimuistittaa oikeanlaisia tiedostoja, joita ovat esimerkiksi CSS-koodi, kuvat ja videot, sekä JavaScript.
Työkalut välimuistin optimointiin
Välimuistin optimointiin kuuluu myös niin sanottu ennakoiva työ. Tällä tarkoitan sitä, että ennen kuin esimerkiksi parasta ennen -päivää säädetään, optimointi on jo käynnistynyt.
Mennään jälleen esimerkin kautta.
Jos sinulla on esimerkiksi sivusto, joka pitää sisällään kuvia ja uusia kuvia tulee lisää säännöllisesti, tällöin kuvatiedostojen koon optimointiin kannattaa käyttää siihen suunniteltua työkalua. Tämä nimittäin johtaa siihen, että välimuistiin latautuvat kuvatiedostot ovat kooltaan huomattavasti pienempiä, mikä johtaa jälleen lyhyempiin latausaikoihin ja parempaan käyttäjäkokemukseen.
Edellä mainitussa ei ole kyse suoraan välimuistin optimoimisesta ja hallinnasta, vaan välillisesti. Tähän käyttötarkoitukseen erinomainen työkalu on WordPress-sivustoja käyttävien kohdalla esimerkiksi Imagify. Se ei siis ole varsinainen välimuistin optimointiin tarkoitettu työkalu, mutta se auttaa välimuistin optimoinnissa ja toimii erinomaisesti esimerkiksi seuraavaksi esiteltävän WP Rocketin kanssa.
Eli, mitä sitten tulee itsessään välimuistin optimointiin, WP Rocket on WordPress-käyttäjien keskuudessa huippusuosittu työkalu. Se on huomattavasti Imagifyta laaja-alaisempi, sillä se optimoi verkkosivustoa kaikin mahdollisin tavoin saavuttamaan lyhyemmät latausajat, keventäen välimuistin taakkaa entisestään.
Koska puhuin edellä kuvien optimointiin tarkoitetusta työkalusta, jatkan asian ymmärtämistä helpottaakseni edelleen kuvatiedostojen parissa.
WP Rocketin ominaisuuksiin kuuluu esimerkiksi valokuvien kohdalla niin sanottu lazy loading. Tämä tarkoittaa sitä, että verkkosivuston käyttäjän saapuessa sivustolle välimuistista ei tule kaikki sivustolla olevat kuvat, vaan ainoastaan käyttäjälle näkyvät kuvat. Se siis toisin sanoen viivyttää kuvatiedostojen latautumista, lyhentäen näin latausaikoja, ja lataa kuvia sitä mukaa, kun ne tulevat käyttäjän silmien eteen.
WP Rocket hoitaa ennen kaikkea välimuistin optimointia puolestasi, jolloin sinulla säästyy aikaa esimerkiksi ydinliiketoimintasi kehittämiseen. Ja sen käyttö on varsin helppoa, sillä sinun tulee vain määrittää tässä lisäosassa haluamasi välimuistioptimointiasetukset ja WP Rocket hoitaa tästä eteenpäin homman puolestasi.
Muita vastaavan kaltaisia välimuistin optimointiin liittyviä erinomaisia WordPress-lisäosia eli työkaluja ovat muun muassa:
- WP Super Cache
- W3 Total Cache
- Sucuri
- Cache Enabler
Välimuistin optimoinnin hyödyt
Aivan, kuten itsessään välimuistin käytössä, myös välimuistin optimoinnissa on kyse ennen kaikkea yhdestä asiasta: lyhyemmistä latautumisajoista.
Kun selaimilla ja palvelimilla on vähemmän työtä tehtävänään, tällöin verkkosivusto toimii nopeammin. Tästä ovat mielissään paitsi paremman käyttäjäkokemuksen saavat käyttäjät, myös hakukoneet.
Lyhyemmillä latausajoilla voikin olla järisyttäviä vaikutuksia koko yrityksen liiketoimintaan.
Lyhyet latausajat johtavat ensinnäkin kasvavaan asiakastyytyväisyyteen ja toisekseen korkeampiin sijoituksiin hakukoneiden hakutuloksissa.
Nopeasti latautuvalla ja toimivalla verkkosivustolla on siis huomattavasti suurempi todennäköisyys synnyttää pitkäaikaisia asiakassuhteita ja ylipäätään asiakassuhteita. Samaan aikaan korkeammat sijoitukset hakukoneiden hakutulossivuilla (SERP) johtavat puolestaan siihen, että huomattavasti suurempi joukko hakukoneiden käyttäjiä tulee törmäämään brändiisi kuin alemmaksi hakutuloksissa sijoittuvilla kilpailijoilla.
Ja, kuten ehkä jokainen osaa päätellä, korkeammat asiakasmäärät johtavat pääsääntöisesti myös parempaan liikevaihtoon ja siten yrityksen kasvuun. Välimuistin optimointia ei siis kannata todellakaan vähätellä.
Johtopäätös
Jos olet esimerkiksi juuri laittanut pystyyn uuden verkkosivuston, korkeiden vierailijamäärien ja hakukonesijoitusten saavuttaminen tulee ottamaan eittämättä oman aikansa.
Alkuun välimuistin rooli ei välttämättä ole niin merkittävä kuin se on myöhemmässä vaiheessa, mutta työt sen optimoimiseksi kannattaa aloittaa aikaisessa vaiheessa.
Kannattaa siis ottaa jo ensimetreillä käyttöön muun muassa WP Rocketin kaltaisia lisäosia, mikäli sivustosi on WordPress-pohjainen. Ja, mikäli ei ole, tällöin kannattaa tutustua muihin vastaavanlaisiin työkaluihin.
Tällöin verkkosivustosi on valmis ottamaan vastaan kovalla työllä ansaitsemasi liikenteen, sillä sen saavuttamiseen voi riittää jo esimerkiksi yksi viraaliksi menevä blogikirjoitus.
Aivan siis kuin vaikkapa kivijalkamyymälän kohdalla, haluat verkkokauppasi olevan kaikin puolin valmis, kun asiakkaat astelevat sisään ja päättävät, ansaitseeko juuri sinun verkkokauppa- tai sivusto heidän aikansa ja vaivansa.
Välimuistiin liittyvä optimointityö ei myöskään lopu koskaan, vaan sitä tulee tehdä pitkäjänteisesti muuttuvien tarpeiden mukaan. Näin takaat sen, että niin käyttäjät kuin myös hakukoneet ovat mielissään verkkosivustostasi, mikä puolestaan on omiaan johtamaan parempaan viivan alle jäävään tulokseen.
Ota siis välimuistin rooli tosissaan, sillä se vaikuttaa ennen kaikkea latausnopeuteen, mikä on tietyllä tapaa kaiken A ja O, mitä tulee verkkosivustosi menestysmahdollisuuksiin.