Julkaistu
Päivitetty

Seravon asiantuntijat ovat olleet useasti esillä puhumassa WordPressin nopeusoptimoinnista, joten moni WordPress-sivuston kehittäjä kysyy meiltä vinkkejä sivustonsa nopeusoptimointiin. Meiltä kysytään aina silloin tällöin mielipidettä Cloudflaresta. Kysyjät yllättyvät kun kerromme, että useimmilla sivustoilla Cloudflaren käyttö hidastaa sivuston latautumisnopeutta ja lisäksi siihen sisältyy tietoturvariski. Päätimme avata aihetta blogikirjoituksella.

Cloudflare myy palveluaan ajatuksella, että verkkosivuston ei kannattaisi suoraan vastaanottaa liikennettä kävijöiltään, vaan kierrättää liikenne Cloudflaren kautta. Tämä lisää Cloudflaren mukaan sivuston suorituskykyä, tietoturvaa, luotettavuutta ja heidän tilastojensa avulla auttaa kehittäjää ymmärtämään paremmin mitä sivustolla tapahtuu. Nämä kaikki ovat osittain totta, mutta yleensä Cloudflaren hyödyt jäävät niin pieneksi, ettei se kannata. Lisäksi se tuo mukanaan myös kääntöpuolen, josta Cloudflaren markkinointimateriaalit eivät mielellään kerro.

Suorituskyky paranee vain jos sivustolla ei entuudestaan ole HTTP-tason välimuistia

Cloudflaren suorituskykyä parantava väite perustuu siihen, että heillä on palvelimia ympäri maailman. Kun sivusto liitetään Cloudflareen, ohjataan kävijät Cloudflaren palvelimelle eikä suoraan varsinaiselle sivustolle. Cloudflare tarjoaa HTTP-tason välimuistin omilta palvelimiltaan, jotta kävijä saa ladattua verkkosivun Cloudflaren kävijää lähellä sijaitsevalta palvelimelta sen sijaan, että se tulisi sivustolta itseltään.

Tämän hyöty riippuu muutamasta seikasta:

  • Onko sivustolla HTTP-tason välimuistia entuudestaan lainkaan?
  • Onko Cloudflaren palvelin olennaisesti lähempänä kävijää ja onko Cloudflaren palvelin ja verkko nopeampi kuin muut HTTP-välimuistit?
  • Kuinka iso osa liikenteestä tallentuu HTTP-välimuistiin?

Seravon WP-palvelussa on kaikilla asiakkailla ollut vakiona automaattisesti HTTP-tason välimuisti jo vuodesta 2014. Tätä nykyä sellainen alkaa löytyä useimmista muistakin palvelinympäristöistä, joissa on ollut vähänkään yritystä tehdä asiat modernien käytäntöjen mukaisesti (avainsanoina mm. Nginx ja Varnish). Jos sivuston palvelinympäristössä ei ole HTTP-tason välimuistia, on palvelinympäristössä varmaan muutakin vikaa, jolloin kannattaa ehkä harkita palveluntarjoajan vaihtoa kokonaan sen sijaan, että vaihtaisi Cloudflareen.

Jos WordPress-sivu on tallentunut HTTP-tason välimuistiin, pystyy HTTP-välimuistipalvelin tarjoilemaan sen sieltä salamannopeasti noin 1-5 millisekunnin latausajalla. Sivuston vierailijalle kyseisen sisällön saapuminen riippuu sivun tiedostokoosta, verkkoyhteyden nopeudesta ja latenssista. Cloudflaren keskeinen argumentti on, että koska sillä on palvelimia ympäri maailman, on latenssi aina pieni.  Alla oleva taulukko kuvaa latenssin muodostumista Seravon Tampereen toimistosta läppärillä mitattuna.

Palvelimen sijaintiLatenssi
Tampere11 ms
Helsinki7 ms
Tukholma15 ms
Saksa32 ms
USA:n keskiosa126 ms

Kuten tästä näkee, latenssilla on merkitystä vasta kun mennään toiseen maanosaan. Tästä syystä Seravon WP-palvelussa asiakas voi valita useista eri palvelinsalivaihtoehdoista. Esimerkiksi, jos asiakkaan päämarkkina on USA:ssa, voi asiakkaamme halutessaan valita sivuston sijoituspaikaksi Seravon USA:n palvelinklusterin, olettaen että esimerkiksi GDPR-asiat tai muut prioriteetit ei ole esteenä.

Etäisyydestä johtuva latenssi ei kuitenkaan ole suoraviivaisesti koko totuus. Latenssiin vaikuttaa etäisyyden lisäksi myös palvelimen verkkoasetukset, TCP/IP-yhteyden ”kädenpuristuksen” nopeus yhteyden muodostamisessa sekä tietysti se, minkälainen verkko vierailijalla on (nopea yritysverkko vai vaihteleva wifi-yhteys tai hidas mobiiliyhteys jne). Pelkällä etäisyydellä ei välttämättä ole olennaista merkitystä kokonaisuudessa. Tärkeintä on huolehtia, ettei latenssi kertaannu siten, että jokaisen sivunlatauksen jokainen HTML-, CSS-, JavaScript- ja kuvatiedosto ladataan omalla yhteydellään, vaan ne käyttävät samaa yhteyttä ja tiedonsiirto on pakattu. Tästä syystä tärkeämpää on varmistaa, että sivustolla on käytössä HTTP/2-protokolla tiedostonsiirrossa. Seravolla HTTP/2 on ollut vakiona kaikilla asiakkailla vuodesta 2016 lähtien, ja sitä ennenkin käytössä oli vastaava toteutus SDPY-tekniikalla.

Lisäksi mittauksissamme on käynyt ilmi, vaikka Cloudflare ohjaa liikenteen kävijästä katsottuna lähimmälle Cloudflaren palvelimelle, niin taustalla tapahtuvien asioiden takia kokonaisnopeus oli silti suhteessa loppukäyttäjän etäisyyteen oikeasta palvelimesta vaikka sivu tuli HTTP-välimuistista. Mittauksissa havaitsimme, että Cloudflarea käyttävän sivuston latausaika Suomesta mitattuna oli 10 millisekuntia ja USA:sta mitattuna 160 millisekuntia. Jos Cloudflarea käyttää, kannattaa ainakin varmistaa mittauksilla itse, että latenssi eri puolilta maailmaa todella on tasaisen pieni, koska se on ainoa edes teoreettinen hyöty Cloudflaresta.

Viimeisenä, mutta ehkä tärkeimpänä on kysymys kuinka osa sivuston HTTP-pyynnöistä ylipäänsä tallentuu HTTP-välimuistiin? Esimerkiksi WooCommerce-verkkokauppasivustoilla on tyypillistä, ettei HTTP-välimuistia itse asiassa käytetä lainkaan, koska jokaiselle vierailijalle asetetaan eväste ja sen avulla kullekin vierailijalle näytetään räätälöityä sisältöä. Jos Cloudflare on käytössä tällaisessa tapauksessa, johtaa se latenssin kaksinkertaistumiseen: vierailijan selain hakee sivun Cloudflaresta ja Cloudflaren palvelin hakee sen alkuperäiseltä palvelimelta. Vierailija joutuu odottamaan ylimääräisen ajan, kun Cloudflaren palvelin ja sivun varsinainen palvelin keskustelevat keskenään sen sijaan, että sisältö latautuisi mahdollisimman nopeasti suoraan sivun omalta palvelimelta.

Webpagetest-mittaustuloksia

Webpagetest.org on Seravon suosima riippumaton mittauspalvelu, joka mittaa monipuolisesti verkkosivuston latausnopeutta. Alla on kahdet mittaustulokset nopeasta ja hitaasta sivustosta, Cloudflaren kautta ja suoraan. Mittaukset on tehty Webpagetest.org:n Amsterdamin palvelimilta käsin, jonka pitäisi tuottaa varmasti Cloudflaren puolesta hyvät tulokset, sillä sivustot sijaitsevat Suomessa ja suoraan Suomesta mitattuna suomalainen palvelin on lähtökohtaisesti aina nopein.

Näistä tuloksista kuitenkin näkyy, että Cloudflaren vaikutus sivun kokonaislatautumisnopeuteen on olematon tai jopa negatiivinen. Erityisesti, jos sivusto on hitaanpuoleinen WooCommerce-sivusto eikä HTTP-tason välimuistia käytetä, aiheuttaa liikenteen kierrättäminen Cloudflaren kautta selkeää lisähidastumista. Tällaisessa sivustossa tulisi nopeusoptimoinnissa keskittyä tietokantaan ja koodiin – pelkästä Cloudflaresta ei ole hyötyä.

Nopea sivusto Cloudflaren kanssa mitattuna
Nopea sivusto ilman Cloudflarea mitattuna
Hidas sivusto Cloudflaren kanssa mitattuna
Hidas sivusto ilman Cloudflarea mitattuna

Välimies heikentää tietoturvaa

Cloudflaren ollessa käytössä vierailijan kirjoittaessa selaimeen https://example.com/ ottaa hänen selaimensa yhteyttä Cloudflareen, jolloin yhteys on salattu Cloudflaren HTTPS-varmenteella. Cloudflaren palvelin purkaa salauksen ja ottaa toisen yhteyden sivuston varsinaiselle palvelimelle. Loppukäyttäjä ei pysty mitenkään varmistumaan, siirtyvätkö hänen tietonsa salattuna oikealle palvelimelle asti. Sivuston omistaja joutuu luottamaan siihen, ettei Cloudflarella tapahdu mitään epäilyttävää, eikä Cloudflaren kautta kulkevat tiedot joudu väärin käsiin. Toistaiseksi näin onkin käynyt vain kerran (ks. Cloudbleed-tapaus).

Joissain organisaatioissa voi olla jopa kiellettyä viedä salaamatonta tietoa Suomen ulkopuolelle. Silloin ei ehdottomasti pidä käyttää Cloudflarea. Se saattaa valita HTTPS-yhteyden miltä palvelimeltaan tahansa ja siten pitää tietoja salaamattomassa muodossa Suomen ulkopuolellakin.

Välimiehenä Cloudflare saattaa peittää myös piileviä vikoja. Loppukäyttäjän näkökulmasta liikenne voi olla salattua ja HTTP/2 käytössä, mutta näin ei välttämättä enää ole Cloudflaren ja oikean palvelimen yhteyden osalta. Tätä on vaikea havaita. Koska kaikki sivustolle tuleva liikenne kiertää Cloudflaren kautta, voi esimerkiksi tietomurron tutkiminen jälkikäteen lokeista olla hankalampaa, koska kaikkiin lokeihin ei jää oikeaa liikenteen lähteen IP-osoitetta, vaan vain Cloudflaren välimiespalvelimen IP-osoite.

Markkinointimateriaaleissaan Cloudflare kertoo suodattavansa liikennettä ja suojelevansa sivustoja tietoturvauhilta ja palvelunestohyökkäyksiltä. Emme ole löytäneet tietoa, että Cloudflaren suodatuksessa olisi mitään erityistä WordPressiin liittyvää, joten se tuskin suojaa sovellustason tietoturvahyökkäyksiä vastaan. Verkkotasolla suojaus varmasti toimii, mutta verkkotason suojaukset ovat vakiona lähes kaikissa verkkolaitteissa ja konesalioperaattoreilla joka tapauksessa.

Kuka käyttää Cloudflarea?

Seravon parista tuhannesta asiakkaasta tällä hetkellä vain viisi käyttää Cloudflarea. Jos Cloudflarea haluaa käyttää, ei toki ole mitään teknistä estettä laittaa liikenne kiertämään Cloudflaren kautta siinäkään tapauksessa, jos sivusto sijaitsee Seravon WP-palvelussa. Joissain tapauksissa siitä voi olla hyötyä, mutta hyöty kannattaa todentaa mittausten kautta, eikä luottaa vain markkinointimateriaaleihin, kuten olemme yllä osoittaneet.

Jos katsotaan kesällä 2018 julkaistua Vierityspalkki.fi:n mittausta suomalaisten WordPress-digitoimistojen omista sivuista, nähdään ettei yhdenkään top-10:ssä olevista sivustoista liikenne kierrä Cloudflaren kautta. Jos tavoitteena on mahdollisimman nopea sivusto, kannattaa huomio mieluummin kiinnittää muihin seikkoihin kuin Cloudflareen.

Mihin kannattaa keskittyä: nopea tietokanta ja hyvää koodia

Yleensä sivuston nopeuden pullonkaula on tietokanta tai huonosti toteutettu koodi. Kumpikaan ei ole ongelma, mikäli WordPress-sivusto on ylläpidossa WP-palvelussa ja sen on koodannut esimerkiksi jokin edellä mainitun listan digitoimistoista.

Seravon WP-palvelussa on alusta alkaen kaikki, Linux-kernelistä lähtien, optimoitu WordPressin suorituskykyä varten. Lisäksi tarjoamme paljon muitakin tärkeitä asioita tietoturvaan ja kehittäjäystävällisyyteen liittyen. Palvelua kehitetään aina asiakkaiden todelliset tarpeet edellä, faktoihin perustuen ja ilman turhaa markkinointihömppää. WordPress ei ole täysin ongelmaton, mutta Seravon kanssa siitä saa eniten hyötyä irti.

Olemalla Seravon asiakas voi lisäksi olla hyvillä mielin siitä, että samalla tukee WordPressin ja muiden avoimen lähdekoodin ohjelmistojen kehitystä sekä WordPress-yhteisöä. Hyvä keino saada neuvoja onkin kääntyä aktiivisen yhteisön puoleen ja keskustella vertaistensa kanssa. Tule moikkaamaan kun näet meidät WordCamp- tai open-source -tapahtumissa ja keskustellaan lisää tekniikasta!

Kommentoi

Lue lisää

Kategoriassa: Suorituskyky

WooCommerce 8.2 ja HPOS – Parempaa suorituskykyä

Tee WooCommercesta tehokkaampi ottamalla käyttöön HPOS!

22 marraskuun, 2023

Nopeuta sivustoasi välimuistin fragmentoinnilla

Saat WordPress-sivustostasi entistä nopeamman tallentamalla sivuston osia transienteiksi. Vieläkin nopeammin toimivan sivuston saat objektivälimuistin avulla. Näin se tapahtuu!

17 kesäkuun, 2022

Black Friday – Varmista, että verkkokauppasi toimii

Kuinka varmistaa, että verkkokaupan toiminta ei lamaannu ostoryntäyksen keskellä?

25 marraskuun, 2021

WordPressin haku nopeaksi MariaDB:llä

WordPressin sisäänrakennettua hakutoimintoa ei voi aina kehua nopeaksi. Se hidastelee helposti varsinkin suurilla sivustoilla, kun tietokannassa on paljon sisältöä. Tätä […]

24 maaliskuun, 2020

Tehosta WordPressiä komentoriviltä

Verkosta löytyy lukemattomia artikkeleita, jotka käsittelevät WordPressin suorituskyvyn tehostamista. Useimmat niistä kuitenkin neuvovat asentamaan lisäosia, vaikka ne usein pikemminkin pahentavat […]

28 helmikuun, 2020

Lataa kuvat laiskasti

Lazy loading on tekniikka, jonka avulla on mahdollista nopeuttaa verkkosivun latautumista. Tekniikan ideana on kaikessa yksinkertaisuudessaan, että kuvia jotka eivät […]

3 lokakuun, 2019