Perjantaina 10.10.2025

Näin paransimme rex.fi verkkokaupan latausnopeuksia wp-adminissa 30 sekunnista 200 millisekuntiin

Rex.fi‑verkkokaupan nopeus parani 50 s → 0,2 s puhtaasti palvelinoptimoinnilla. Laaja WooCommerce toimii nyt salamannopeasti. Kuinka sen teimme? Lue lisää!

WooCommerce-verkkokauppoja rakennetaan monenlaisista lähtökohdista – ja usein vuosien myötä niihin kertyy lisää ominaisuuksia, päivityksiä, integraatioita ja käyttäjiä. Lopputulemana sivusto alkaa hidastella, hallintapaneeli takkuaa ja niin asiakkaan kuin kehittäjänkin pinna alkaa kiristyä. Emme häpeile myöntää, että näin kävi myös muunmuassa suksivoiteita ja voitelutarvikkeita myyvälle Rex.fi-verkkokaupalle, joka oli ehtinyt vuosien varrella paisua melkoisen monimutkaiseksi. Samaan aikaan verkkokaupaa käytettiin päivittäin ja kaupassa pyörivät isot rahat.

Useimmiten etenkin WordPress laitetaan pyörimään milloin minnekin ja toivotaan, että se performoi riittävän hyvin. Myös kehittäjäpiireissä näkee joskus toimintaa, jossa panostetaan puhtaasti koodaamiseen, mutta unohdetaan että kone ja koodi kulkevat käsi kädessä. Sillä on väliä millaisella kokoonpanolla koodi pyörii.

Apple optimoi käyttöjärjestelmänsä laitteen rautaan nähden, jolloin softa ja rauta toimivat käsi kädessä toisensa huomioon ottaen. Näin pitäisi tapahtua myös verkkosivujen maailmassa, mutta tämä harvoin toteutuu, kun pyöritettävä softa (esim. WordPress) ja palvelinkomponentit eivät ota toisiaan huomioon.

Onko palvelimesi optimoitu WordPressille?

Aloittaessamme Rexin projektia, WooCommerce oli juuri julkaissut version 6.5. Tällä hetkellä mennään versiossa 10.2.2. Välissä on tullut monta suorituskykyä parantavaa uudistusta, kuten High-Performance Order Storage (HPOS) ja WooCommerce 9.9 suorituskykyparannukset (tietyillä benchmarkeilla jopa 95% nopeampi). Nämä eivät kuitenkaan tuo merkittäviä muutoksia, jos kokonaisuudessa on kriittistä pullonkaulaa. Rexin tapauksessa tietyt toiminnallisuudet kuten tilauslistauksen hakeminen, tilauslistojen vieminen ja monet muut alkoivat kestää sen verran pitkään, että välissä ehtii keittää kahvit. Verkkopalvelu ei ole enää kovinkaan käytettävä, jos myyntiä edistävät toiminnallisuudet kestävät jopa 30 sekuntia ladata ja odotella joka ikinen kerta.

Tiesimme mitä tehdä, joten sovittiin työ ja tartuimme Dudella haasteeseen. Lopputulos oli kirjaimellisesti mitattavissa sekunneissa.

Haaste: raskas WooCommerce ja elintärkeä wp-admin hallintapaneeli

Rex.fi on iso WooCommerce-pohjainen verkkokauppa, jota käyttää useampi myyjä päivittäin sekä yrityksen oma henkilökunta. Kaupassa on mittava määrä tärkeitä, auditoituja ja itse koodattuja lisäosia, mm. kattava Procountor-integraatio, ja verkkokauppa-alustan kautta hoidetaan mm. Excel-tuonti ja vienti sekä monimutkaiset, mutta helppokäyttöiset jälleenmyyntitoiminnot.

Aikoinaan verkkokauppa-alustaa pystyttäessämme emme varautuneet tulevaisuuteen tarpeeksi ennakoiden palvelin- ja optimointitasolla. Sivuston laajentuneen toiminnallisuuden ja palvelinresurssien rajallisuuden myötä hallintapaneelin latausajat karkasivat käsistä – pahimmillaan yksi wp-admin-näkymä kesti avautua jopa 50 sekuntia. Tämä teki arjen työnteosta asiakkaalle melko kivuliasta.

Ratkaisu: palvelininfran skaalaaminen ja optimointi WordPressille

Usein verkkokaupan nopeuden optimointi keskittyy välimuisteihin ja latausaikoihin julkisella puolella, eli asioille, jotka näkyvät käyttäjälle. Tätä puolta on helpohko optimomida yksinkertaisimmillaan WordPress-lisäosalla kuten Surge, WP Super Cache tai Cache Enabler. Palvelintasolla sivuista saa nopeasti latautuvat raaka-HTML-versiot suoraan PHP:n FPM:n omalla tehokkaalla välimuistilla kokonaan ilman lisäosia. Mutta tällä kertaa haaste oli kuitenkin nimenomaan WordPressin hallintapuolella, joka ei hyödy samasta välimuistikerroksesta kuin julkinen sivusto. WP-adminia ei voi myöskään muuntaa HTML-välimuistikopioksi, koska sitten mikään ei toimisi oikein. Admin vaatii dynaamista sisältöä, eikä sitä voi niinsanotusti “kakuttaa”, eli välimuistittaa, koska tiedon on oltava aina tuoretta.

Toteutimme Rexille kokonaisvaltaisen palvelinoptimoinnin, jossa käytiin läpi:

  • Kokonaan uusi palvelininfrastruktuuri uusimmilla tekniikoilla UpCloudin Helsingin datasaliin, prosessorit ja keskusmuisti hilattuna mahdollisimman ylös, jotta saamme todella väkevän koneen Rexiä varten
  • PHP-FPM:n asetusten ja poolin hienosäätö, kuinka paljon prosessimanagereita käytössä ja mikä vaikutus on esim staattisilla prosesseilla dynaamisiin verrattuna – testaus, benchmarkkaus, hienosäätö ja sama uudelleen (iterointi)
  • Kävimme läpi uusimmat ja hienoimmat OPcache– ja APCu-variantit)
  • Redis (Valkey)-objektivälimuistin tarkka konfigurointi
  • MySQL:n (MariaDB) buffer-, query– ja cache-asetusten hienosäätö todellisen käytön perusteella, latenssitestit tietokannalle
  • FastCGI- ja HTTP-välimuistit hallitusti eriytetyksi
  • Staattiset ja sivuvälimuistit, cache-headerit ja hienosäädöt
  • Serverin resurssien ja prosessien priorisointi
  • Web-palvelimen Nginxin workerien optimointi uudelle tehokkaammalle raudalle
  • Pientenkin kivien kääntäminen, eli yksittäisten objektien ja avainten määrärajojen vaikutus kokonaisuuteen
  • 90% muistista varattu puhtaasti koodin ja kannan suorituskykyyn palvelimella, optimoimme poolin tappiin asti resursseihin nähden niin, ettei vahingossakaan jää suboptimaalinen PHP pool

Käytännössä kyse oli siitä, että WordPressin ja WooCommercen raskainkin osa saatiin ajettua tehokkaasti siten, ettei mikään pullonkaula hidasta latauksia. Kun palvelin on pystyväinen ja löpöä on tarpeeksi tankissa ei hitainkaan koodi hidasta toimintaa.

Tulokset ennen ja jälkeen, merkittävä.
Tulokset ennen ja jälkeen ovat merkittävät.

Lopputulos: 50 sekuntia → 0,2 sekuntia

Kun serverit oli viritetty uuteen uskoon, tulokset olivat suorastaan hätkähdyttäviä.
WP-admin-lataukset putosivat 50 sekunnista 200 millisekuntiin – eli nopeus parani keskimäärin 250-kertaiseksi.

Reaaliaikaisessa käytössä sivu latautuu nyt ennen kuin käyttäjä ehtii kissaa sanoa. Hallintatyöskentely on jälleen sujuvaa, vaikka taustalla toimii edelleen kymmeniä lisäosia ja raskaita integraatioita.

Tätä giffiä ei ole nopeutettu.

Johtopäätös: Äärimmäisen nopea WooCommerce on mahdollista, kun tietää mitä optimoida

Tämä projekti osoittaa, että palvelintason optimointi on aliarvostettu mutta kriittinen osa modernia WordPress-kehitystä. Pelkän koodin optimointi ei ratkaise ongelmia ja pullonkauloja, jos perusteet ovat pielessä.

Vaikka Rexin verkkokauppa on kokonaisuudeltaan laaja ja raskas koodipohjaltaan (monipuolinen WooCommerce, lisäosaviidakko ja useita ulkoisia integraatioita) – se toimii nyt salamannopeasti.
Kun tietää, mitä säätää, ja tekee sen systemaattisesti, melkein minkä tahansa WordPress-sivuston saa toimimaan kuin ajatus.

Kiinnostaako salamannopea WordPress tai WooCommerce Dudelta? Ota yhteyttä (puhelin 0400 443 221, sähköposti: moro@dude.fi)! Joitakin referenssejämme tällä saralla, katso itse:

  • Rex.fi: Latausnopeus (EU): 181.7ms
  • Vierityspalkki: Latausnopeus (EU): 183.8ms
  • ⚡ Dude.fi: Latausnopeus (EU): 261.1ms