WordPress-sivuston nopeus – 20 erilaista nopeusoptimointikeinoa

Joonas Vanhatapio

Onko sinulla WordPress-julkaisujärjestelmälle rakennetut sivut, joiden nopeutta haluaisit parantaa? Sivuston nopeus vaikuttaa tutkitusti esimerkiksi sivuston konversioon, välittömään poistumisprosenttiin ja hakukonesijoituksiin, kukapa ei siis haluaisi nopeaa sivustoa.

Tämän takia kokosimmekin kattavan 20 kohteen oppaan, jossa on sekä helppoja että hieman edistyneempiä tapoja oman WordPress-sivuston nopeuttamiseen.

Miksi WordPress-sivuston nopeus on tärkeä?

WordPress-kotisivut tulisi aina olla mahdollisimman nopeat parhaiden tulosten saavuttamiseksi. Sivuston latausnopeus vaikuttaa esimerkiksi suoraan seuraaviin asioihin:

  • Hakukoneoptimointi eli SEO: Google on avoimesti kertonut, että nopeus on yksi monista tekijöistä, jotka vaikuttavat sivuston hakukonesijoitukseen.
  • Konversioprosentti: nopeampi sivusto tekee tutkitusti enemmän konversioita. Olipa toivottu konversio sitten lomakkeen täyttäminen tai ostoksen tekeminen, vaikuttaa sivuston nopeus molempiin. Jos kaikki sujuu helposti ja nopeasti, todennäköisesti yhä useampi asiakas vie tapahtuman loppuun asti.
  • Välitön poistumisprosentti: nykyaikana kävijät ovat kärsimättömiä, jos sivuston lataus kestää pitkään, he todennäköisesti poistuvat sivustolta ja pahimmillaan klikkaavat kilpailijan sivustolle.

Sivustotyyppi vaikuttaa nopeuteen

WordPress-sivustotyypit voidaan jakaa karkeasti kahteen ryhmään: staattisiin ja dynaamisiin sivuihin. Sivuston tyyppi vaikuttaa sivuston nopeuteen ja erilaiset sivustot tarvitsevat myös erilaisia optimointitoimenpiteitä.

Staattiset sivustot

Staattiset sivustot eivät muutu usein – osa kerran kuukaudessa, osa muutaman kerran viikossa ja jotkut muutamia kertoja päivässä. Tällaisia sivustoja ovat esimerkiksi monet kotisivut ja blogit. Staattiset sivut voidaan välimuistittaa helposti, jolloin sivuston sisältö saadaan kävijälle haettua helposti välimuistista. Palataan tarkemmin välimuistiin myöhemmin.

Dynaamiset sivustot

Dynaamisten sivustojen tiedot muuttuvat puolestaan lähes jatkuvasti. Näillä sivustoilla on yleensä myös enemmän yhtäaikaisia käyttäjiä. Tällaisia sivustoja ovat esimerkiksi verkkokurssisivustot, erilaiset jäsenyyssivustot ja verkkokaupat.

Koska sivuston tiedot muuttuvat usein, niiden välimuistittaminen ei toimi staattisten sivujen tapaan, vaan ne voidaan välimuistittaa vain osittain tai vain muutaman sekunnin ajaksi. Esimerkiksi verkkokaupat voidaan tarjota välimuistista vain silloin, kun käyttäjällä ei ole tuotteita ostoskorissa. Tällainen sivusto vaatiikin yleensä enemmän resursseja kotisivutilalta.

Optimoi aina mobiililaite edellä

Koko ajan kasvava osa sivustojen kävijäliikenteestä tulee mobiililaiteilta ja esimerkiksi hakukonejätti Google on kertonut suosivansa erityisesti mobiililla hyvin toimivia sivustoja. WordPress-sivut kannattaakin siis optimoida ensisijaisesti mobiililaitteille ja mobiiliyhteyksille.

Kannattaa tietenkin tarkistaa myös oman sivuston mobiililiikennemäärät. Se onnistuu helposti Google Analyticsin avulla. Valitse yleisö -> mobiili -> yleiskatsaus.

Miten löytää sivustoa hidastavia asioita?

Sivuston nopeuden parantaminen kannattaa aloittaa nopeuden mittaamisella sekä mahdollisten hitauden aiheuttajien etsimisellä.

Hyödynnä erillisiä testityökaluja

Erilaisia testityökaluja sivuston nopeuden testaamiseen on monia, ja ne tarjoavat usein jo valmiita kehitysehdotuksia sivuston nopeuden parantamiseen. Tuloksiin kannatta kuitenkin aina suhtautua pienellä varauksella, sillä ne voivat vaihdella eri työkalujen välillä suuresti. Yksi hyvä työkalu sivuston testaamiseen on Google Lighthouse.

Google Lighthouse antaa myös vinkkejä esimerkiksi käytetyn teeman tai lisäosan nopeuttamiseen. Sen avulla ei kuitenkaan välttämättä huomata, jos jokin lisäosa tai teema olisi kannattavampaa vaihtaa kokonaan uuteen.

Query Monitor auttaa sivuston analysoimisessa

Query Monitor on avoimen lähdekoodin maksuton lisäosa. Sen avulla WordPress-sivuston hitauden syitä voidaan tehokkaasti etsiä ja havaita esimerkiksi sivustoa hidastavat lisäosat, tietokannan aiheuttama kuormitus sekä muualle kuin sivuston palvelimelle tehtävät pyynnöt.

Jos sivustolla on testiympäristö, voit hyödyntää myös sitä sivustoa hidastavien lisäosien tunnistamiseen. Testiympäristössä voidaan aluksi ottaa kaikki lisäosat pois käytöstä ja sen jälkeen lisätä niitä yksi kerrallaan. Samalla on tietenkin tärkeää seurata Query Monitoria, jotta mahdolliset yhden lisäosan aiheuttamat muutokset sivuston nopeuteen havaitaan.

Tarkista error-log

On hyvä käydä varalta läpi myös sivuston virheilmoitukset eli error-log, sillä sieltä voi saada arvokasta tietoa sivuston toiminnasta. Voit tarkistaa omalta palveluntarjoajaltasi, mistä virheilmoitukset löytyvät.

Esimerkiksi Zonerin WP.one-palvelussa näet virheilmoitukset suoraan WordPress-hallinnasta WP-Cloud-lisäosasta. Zonerin webhotellissa virheilmoitukset löytyvät hallintapaneelista kohdasta: Site summary/Statistics/Logs.

Ongelmakohtien löytäminen HTTP-statuskoodien avulla

Sivuton hitauden syytä voi etsiä myös HTTP-statuskoodien avulla. Esimerkiksi ei olemassa olevat kuvat, joita sivusto yrittää ladata, löytyvät HTTP-statuskoodien avulla. Tähän tarkoitukseen voi käyttää esimerkiksi Pingdom tai GTmetrix -nopeustestityökaluja, joista saadaan vesiputouskaavio (waterfall). Epäonnistuneet HTTP-pyynnöt näkyvät vesiputouskaavioissa punaisella.

Joonas Vanhatapio tietokoneen ääressä.

WordPress-sivuston nopeusoptimointi

Itsessään mikään julkaisujärjestelmä ei ole yleensä hidas tai nopea, vaan siihen vaikuttaa enemmänkin muut asiat, kuten esimerkiksi sivuston toteutustapa ja sivuston käyttämä kotisivutila. Tässä käydäänkin läpi 20 erilaista nopeusoptimointi keinoa, joista 1-8 onnistuu keneltä tahansa ja 9-20 vaativat hieman edistyneempää osaamista.

Optimoi aina mobiililaite edellä

Koko ajan kasvava osa sivustojen kävijäliikenteestä tulee mobiililaiteilta ja esimerkiksi hakukonejätti Google on kertonut suosivansa erityisesti mobiililla hyvin toimivia sivustoja. WordPress-sivut kannattaakin siis optimoida ensisijaisesti mobiililaitteille ja mobiiliyhteyksille.

Kannattaa tietenkin tarkistaa myös oman sivuston mobiililiikennemäärät. Se onnistuu helposti Google Analyticsin avulla. Valitse yleisö -> mobiili -> yleiskatsaus.

1. Palveluntarjoajan valinta

WordPress-sivustot tarvitsevat toimiakseen kotisivutilan. Kotisivutilan valinta on yksi keskeisimmistä sivuston nopeuteen vaikuttavista tekijöistä. Hidas tai heikkotasoinen hosting hidastaa kotisivua varmasti, sillä palveluntarjoajan käyttämät palvelimet ja niiden nopeus vaikuttaa myös sivuston nopeuteen. Kolme mahdollista vaihtoehtoa WordPress-sivustolla:

  1. Jaettu hosting eli webhotelli
  2. Oma virtuaalipalvelin
  3. Hallinnoitu WordPress-hosting

Jaettu ylläpitopalvelu

Webhotellissa eli jaetussa ylläpitopalvelussa (engl. shared hosting) samalla palvelimella voi olla useita satoja tai jopa tuhansia eri asiakkaiden sivustoja. Käytännössä myös palvelimen tarjoamat resurssit jaetaan sivustojen kesken.

Muiden sivustojen toiminta voi siis vaikuttaa oman sivustosi toimintaan ja toisaalta, jos oma sivustosi käyttää liikaa palvelimen resursseja se saatetaan sulkea. Lisäksi webhotellien tulee pyörittää useita erilaisia käyttö- ja julkaisujärjestelmiä, joten niitä voidaan harvoin optimoida puhtaasti WordPressin ehdoilla.

Oma palvelin

Oma virtuaalipalvelin on huono ratkaisu monestakin syystä: siihen palaa arvokasta aikaa ja palvelintekniikka voi olla vanhentunutta, jos siitä on säästetty. Palvelinrauta vaikuttaa kuitenkin suoraan sivuston nopeuteen, ja on siksi väärä paikka säästää.

Oman palvelimen käyttö vaikuttaa myös siihen, miten sivusto kestää kävijäpiikkejä tai miten sitä voi skaalata kävijämäärien kasvaessa. Palvelimen tehot ovat aina rajalliset ja niiden lisääminen esimerkiksi yhtäkkisen kävijäpiikin aikana voi olla mahdotonta. Toisaalta, jos kävijäpiikkeihin varaudutaan isoilla palvelintehoilla, voi normaalitilanteessa palvelintehot olla hukkakäytössä.

Hallinnoitu WordPress-hosting

Paras ratkaisu WordPress-sivustolle on erityisesti kyseiselle julkaisujärjestelmälle tarkoitettu hosting, jossa on tehty palvelintason WordPress-optimointeja. WP.one on WordPress-hosting, jossa jokainen sivusto saa oman virtuaalipalvelimen, siihen on valittu parhaan suorituskyvyn tarjoavat teknologiat ja tehty palvelintason optimointeja.

Palvelussa asennetaan WordPress valmiiksi ja päivityksetkin hoidetaan toimivuustestauksineen asiakkaan puolesta. Seuraamme ja osallistumme myös aktiivisesti WordPressin kehitykseen sponsoroimalla esimerkiksi Helsingin WordPress meetup -tapahtumia, joihin osallistuu alan osaajia, koodareita ja sivuston rakentajia.

2. Datakeskus ja palvelin

Erilaisten datakeskusten ja palvelinratkaisujen välillä voi olla merkittäviä eroja, jotka voivat vaikuttaa myös suoraan sivustosi toimintaan.

Datakeskuksen valinta

Moni ei tule ajatelleeksi, että myös palveluntarjoajan käyttämä datakeskus voi vaikuttaa sivuston nopeuteen, joten siihen kannattaa ehdottomasti paneutua. Käytännössä etenkin datakeskuksen yhteydet ja fyysisten palvelinlaitteiden käyttö vaikuttavat sivuston nopeuteen.

Kannattaa kiinnittää huomiota siihen, että datakeskuksen verkko on kahdennettu, eli jos toiselle verkkoyhteydelle tapahtuu jotain, toinen on edelleen käytettävissä. Tietenkin myös datakeskuksen verkon nopeus on oleellinen tekijä, mitä nopeampi verkko on, sitä nopeammin myös sivusto toimii.

Valitse NGINX-palvelin

Yleensä palvelinkoneet käyttävät palvelinohjelmistona joko Apachea tai NGINX:iä. Moni varmasti ajattelee, että tuskinpa palvelinohjelmistolla on mitään merkitystä sivuston nopeuden kannalta.

NGINX on kuitenkin erikoistunut suorituskyvyn parantamiseen ja siinä on sisäänrakennettuna palvelintason sivuvälimuistijärjestelmä. Sen onkin havaittu päihittävän muut palvelimet, etenkin staattisen sisällön tai ison yhtäaikaisen kävijämäärän kanssa. Kannattaakin valita siis ensisijaisesti NGINX-palvelinohjelmisto, jos sellainen on saatavilla omalta palveluntarjoajaltasi.

Sivuston käyttämä palvelin vaikuttaa nopeuteen.

Palvelimen sijainti

Palvelimen sijainti vaikuttaa myös sivuston nopeuteen. Mitä lähempänä palvelin on kävijöitä, sitä nopeammin sivusto yleensä latautuu. Suomalaisille kävijöille tarkoitetun sivuston kannattaakin sijaita suomalaisella palvelimella.

Jos et tiedä varmuudella, mistä suurin osa sivustosi kävijöistä tulee. Kannattaa se tarkistaa esimerkiksi analytiikkatyökalun avulla ja sen jälkeen valita palvelin mahdollisimman läheltä sivuston kävijöitä.

Käytetty tietokanta

WordPress-julkaisujärjestelmä tarvitsee aina yhden vapaan tietokannan toimiakseen. WordPressin kanssa yhteensopivia tietokantoja ovat MySQL ja MariaDB. Monet hostingpalveluita tarjoavat yritykset käyttävät joko jompaakumpaa tai molempia näistä.

MySQL on selvästi MariaDB:tä käytetympi tietokanta, vaikka olemme omissa testeissämme havainneet, että MariaDB on paras tietokanta WordPress-sivustolle. Se tarjoaa selvästi parhaan suorituskyvyn ja ero on sitä isompi, mitä suurempi määrä kyselyjä tietokantaan kohdistuu yhtäaikaisesti.

3. Välimuisti

Kotisivujen välimuisti eli cache nopeuttaa sivustoa merkittävästi. Ilman välimuistia sivuston tiedot haetaan aina palvelimelta, mikä kestää väkisinkin hetken.

Välimuistituksen avulla puolestaan voidaan säilöä tilapäisesti sivuston sivuja, tiedostoja ja muita tietoja. Nämä tiedot voidaan hakea suoraan välimuistista sivuston kävijälle. Toimivan välimuistituksen avulla sivusto latautuukin nopeammin, eikä kuormita palvelinta samalla tavalla kuin ilman välimuistia toimiva sivusto.

WordPress-sivustolla käytettäviä välimuisteja on olemassa erilaisia:

  • palvelintason sivuvälimuisti
  • lisäosana asennettava välimuisti
  • tietokannan objektivälimuisti
  • sisällönjakoverkoston eli CDN:n välimuisti

Välimuisti kannattaakin ehdottomasti ottaa käyttöön sivustolle, sillä se on yksi helpoimmista tavoista nopeuttaa sivuston toimintaa. Tehokkainta on, jos välimuisti on hoidettu jo palvelintasolla, mutta jos sellaista ei ole mahdollista käyttää, kannattaa käytössä olla vähintään lisäosana asennettava välimuisti esimerkiksi WP Rocket.

Käytä kuvien ja videoiden lazy load -toimintoa WordPress-sivuston nopeuttamiseen

4. Kuvat, videot ja muut tiedostot

Erilaiset kuvat, videot ja muut tiedostot voivat hidastaa WordPress-sivustoa merkittäväksi. Yleensä nimenomaan kuvat ovat yksittäisten sivustojen raskaimpia elementtejä, jos sivustolla ei ole merkittävässä määrin videoita tai ne on upotettu sivustolle toisen palvelun avulla.

Kuvien optimointi

Kuvien optimointi on jokaisen helposti toteutettavissa jo ihan ilmaisohjelmien avulla. Kuvat kannattaa pienentää aina valmiiksi sivustolle käytettävään kokoon. Jos sivustolla käytetään esimerkiksi 800 px leveitä kuvia, ei tätä leveämpiä kuvia kannata lisätä lainkaan sivustolle. Katso ohjeestamme, miten kuvan pienentäminen onnistuu ilmaisohjelmien avulla.

Tärkeintä on löytää oikea tasapaino laadun ja tiedostokoon välillä. On olemassa niin kutsuttua häviötöntä ja häviöllistä pakkaamista. Häviötöntä pakkaamista on esimerkiksi kuvien metatiedostojen poistaminen eli esimerkiksi päivämäärä- ja käytetyn kameran tietojen poistaminen.

Häviöllistä pakkaamista on, kun esimerkiksi kuvassa käytettyjen värien määrää vähennetään yhdistelemällä läheisiä värejä toisiinsa. Yleensä muutokset ovat niin huomaamattomia, ettei niitä ihmissilmällä edes erota.

Tämän lisäksi on suositeltavaa ottaa käyttöön .webp-kuvaformaatti, joka voi pienentää olemassa olevia .png- ja .jpg-kuvia huomattavasti. WordPressille tätä tarkoitusta varten löytyy esimerkiksi lisäosa Imagify, joka muuttaa kuvat .webp-formaatiin, jos se on tiedostokooltaan alkuperäistä pienempi.

Toinen hyvä lisäosa kuvien pienentämiseen on Smush, joka ei kuitenkaan muunna kuvia .webp-formaatiin. Molemmat lisäosat hoitavat kuitenkin kuvien kompressoinnin ja metatietojen poiston.

Kuvien, videoiden ja iframe-elementtien lazy load

Jos yhdelle sivulle tulee paljon kuvia eikä niitä voida karsia, kannattaa hyödyntää lazy load -tekniikkaa. Käytännössä se lataa kaiken näkyvillä olevan sisällön heti, mutta paljastaa esimerkiksi alaspäin skrollaamista vaativat sisällön vasta tarvittaessa. Näin ylempänä olevat sisällöt saadaan nopeammin näkyviin kävijälle.

Tekniikasta on hyötyä myös esimerkiksi YouTube-videoiden kanssa, sillä niiden tilalla voidaan näyttää staattista kuvaa ja video aktivoituu vasta klikkaamalla sitä. Lazy load on helppoa toteuttaa esimerkiksi WP Rocket -lisäosan avulla.

Kuvakarusellit

Kuvakaruselli voi tuntua kivalta idealta omalle sivustolle, mutta valitettavasti ne vaikuttavat yleensä negatiivisesti sivuston suorituskykyyn. Harkitse siis hyvin tarkkaan, onko kuvakaruselli sen arvoinen, että jopa kauppoja voi sen takia mennä sivusuun.

Videot

Videoita ei kannata ikinä ladata suoraan WordPress-sivustolle, vaan ne tulisi aina ensin ladata johonkin ulkoiseen palveluun, kuten YouTubeen tai Vimeoon. Videot lisätään kotisivuille palvelusta saatavan upotuskoodin avulla.

Muut tiedostot

Omia kotisivuja ei kannata ensisijaisesti käyttää erilaisten tiedostojen säilytyspaikkana, vaan ladattavat tiedostot ja asiakirjat kannattaa tallentaa siihen tarkoitettuun palveluun. Tällaisia palveluita ovat esimerkiksi Google Drive ja Dropbox. Molemmista palveluista saa tarvittaessa jakolinkin, jonka voi puolestaan upottaa helposti omalle sivustolle.

5. Ulkoasuteema

Suurin osa WordPress-sivustoista rakennetaan jonkin ulkoasuteeman avulla. Käytetty teema vaikuttaa merkittävästi sivuston ulkoasun lisäksi myös sen nopeuteen. Jos teema on raskas tai huonosti koodattu, se voi hidastaa sivustoa merkittävästi. Valmiita ulkoasuteemoja on olemassa todella paljon, joten sekaan mahtuu väkisinkin monenlaatuisia teemoja.

Usein ihmiset kiinnittävät eniten huomiota teemaa valitessa sen ulkonäköön ja ominaisuuksien määrään, vaikka huomio tulisi ensisijaisesti kiinnittää teeman nopeuteen. Teeman valinnassa on olemassa sivuston nopeuden kannalta kaksi hyvää vaihtoehtoa: 1) nopea ja kevyt teema, joka sisältää vain tarpeelliset ominaisuudet tai 2) ominaisuuksiltaan monipuolisempi teema, josta voi kuitenkin kytkeä ominaisuuksia tarpeen mukaan pois käytöstä.

Lue asiantuntijoiden vinkit parhaista WordPress-teemoista.

6. Lisäosat

WordPress-sivujen toiminnallisuudet on usein järkevää toteuttaa koodaamisen sijaan erilaisten lisäosien avulla. Lisäosien runsas käyttö voi hidastaa sivustoa, etenkin, jos käytetyt lisäosat ovat huonolaatuisia. Lisäosien laatu merkitsee kuitenkin selvästi määrää enemmän ja yksi huono lisäosa voi hidastaa enemmän kuin 10 hyvää.

Lisäosia on tarjolla pelkästään WordPressin lisäosakirjastossa yli 54 000 kappaletta, joten laatu on hyvinkin vaihtelevaa. Osa lisäosien kehittäjistä ei ole kiinnittänyt lainkaan huomiota sivuston nopeuteen tai lisäosan raskauteen. Tällaiset lisäosat kannattaakin suosiolla jättää käyttämättä.

Miten voi tietää, mikä lisäosa hidastaa sivustoa ja mikä ei? Asia ei ole kovinkaan yksinkertainen, eikä siihen ole valitettavasti olemassa helppoa ratkaisua. Kannattaa kuitenkin aina kiinnittää huomiota muun muassa lisäosan käyttömääriin, käyttäjäarvioihin sekä siihen kehitettäänkö lisäosaa jatkuvasti.

Tarpeettomat ja käyttämättömät lisäosat kannattaa poistaa ihan tietoturvasyistä, vaikkei niillä todennäköisesti olisi merkittävää vaikutusta sivuston nopeuteen.

Heikkolaatuiset lisäosat voivat vaikuttaa WordPress-sivuston nopeuteen

Lisäosien ongelma

On myös hyvä huomata, että kaikki lisäosat eivät poista tallentamiaan tietoja sivuston tietokannasta automaattisesti, itse lisäosan poiston yhteydessä. Lisäosia kannattaakin ottaa käyttöön harkiten ja välttää esimerkiksi lisäosien tiheää vaihtelua. WordPress-sivuston nopeuttaminen onnistuu myös poistamalla lisäosien tallentamat tiedot tietokannasta käsin.

Miksi sitten lisäosat eivät poista myös tietoja, kun ne poistetaan? Syitä on useita, mutta se voi johtua esimerkiksi siitä, että lisäosan kehittäjät haluavat säilyttää käyttäjiensä asetuksen sen tilanteen varalle, että lisäosa asennetaankin uudelleen. Toinen syy voi olla, ettei lisäosan kehittäjä ole välittänyt siitä, mitä lisäosa tekee suorituskyvylle. Tämä voi tapahtua niin tahallaan kuin vahingossakin.

10. Vältä kolmannen osapuolen somefeedien asentamista

Erilaiset sosiaalisen median syötteet ovat suosittuja myös WordPress-sivustoilla: ne tuovat mukavasti visuaalista lisää ilman, että kuvia tarvitsee lisätä verkkosivuille.

Käytännössä ne lataavat aina tietoa myös sivuston ulkopuoliselta palvelimelta. Tällöin myös kyseisen erillisen palvelimen nopeus vaikuttaa sivuston kokonaislatausaikaan. Niiden käyttöä kannattaakin harkita tarkkaan, koska ne usein nimenomaan pidentävät kokonaislatausaikaa.

Suosittelemmekin, ettet ota lainkaan tällaisia sosiaalisen median syötteitä käyttöön tai jos sinulla on sellainen jo käytössä, poistat sen käytöstä.

8. Sisällönjako­verkosto eli CDN

Palvelimen sijainti suhteessa sivuston kävijään vaikuttaa sivuston nopeuteen, kuten jo aiemmin tässä kirjoituksessa käytiin läpi. Jos sivustolla on käyttäjiä ympäri maailmaa, palvelin ei voi sijaita mitenkään lähellä kaikkia käyttäjiä.

Tällöin voidaan hyödyntää sisällönjakoverkostoa eli CDN (lyhenne englanninkielen sanoista Content Delivery Network), joka on maantieteellisesti hajautettu välittäjäpalvelimista koostuva verkko. Se nopeuttaa sivuston tarjoamista kävijöille, koska se voi tarjota sivuston tiedostoja kävijöille usein suoraan välityspalvelimen välimuistista.

Sisällönjakoverkosto toimii myös tehokkaasti haitallisen liikenteen estäjänä, eli siitä on hyötyä myös sivuston tietoturvan kannalta.

9. Käytä uusinta PHP-versiota

PHP on ohjelmointikieli, jolla myös WordPress on ohjelmoitu. PHP-koodia hyödyntävä kotisivu tarvitsee palvelimelta aina PHP-tuen toimiakseen oikein. PHP:tä kehitetään jatkuvasti ja uudet versiot ovat yleensä entisiä kehittyneempiä ja siksi myös nopeampia.

Kannattaakin valita aina mahdollisimman uusi PHP-versio, sillä mitä uudempaa versiota sivusto käyttää, sitä nopeammin se yleensä toimii. Esimerkiksi PHP 7 on testiemme mukaan huomattavasti nopeampi kuin aiemmin käytetty 5.6-versio. Jos sivuston ohjelmistot pidetään ajan tasalla, se on yleensä myös yhteensopiva uusimpien PHP-versioiden kanssa. Lue lisää uusimmasta PHP-versiosta.

10. Käytä vähintään HTTP/2:ta

HTTP-protokollaa käytetään tietojen siirtämiseen selainten ja www-palvelinten välillä. Yleisesti käytetty versio on tällä hetkellä HTTP/2, mutta joillain palveluntarjoajilla voi olla vielä vanhentunut ja hitaampi 1.1-versio käytössä.

WordPress-sivuston nopean toiminnan kannalta käytössä kannattaisi olla vähintään HTTP/2. Kannattaa siis tarkistaa, mikä versio omalla sivustollasi on käytössä. Uusin versio HTTP/3 takaa vielä HTTP/2 nopeamman ja turvallisemman tiedon siirron, joten käytä sitä, jos se on vain mahdollista. Huomaathan, että sekä HTTP/2 että HTTP/3-yhteydet toimivat vain, jos sivustolla on SSL-suojaus käytössä.

11. Rajoita näkyvien artikkeleiden ja kommenttien määrää

Yhdellä sivulla olevien elementtien määrä vaikuttaa aina sivun latausnopeuteen. Mitä enemmän kyseisellä sivulla on ladattavia elementtejä, sitä hitaampi se pääsääntöisesti on.

Kannattaakin miettiä, mitä kaikkea yhdelle sivulle tarvitaan. Jos etusivulla on esimerkiksi blogikirjoituksia, tuskin niitä tarvitsee olla näkyvillä 30, vaan esimerkiksi 10 riittäisi loistavasti. Yhdellä sivulla kannattaa olla näkyvissä kerralla korkeintaan 8-12 artikkelia. Esimerkiksi omassa blogissamme on 10 artikkelia näkyvissä kerrallaan.

Yhden sivun näkyvien kommenttien määrää kannattaa myös rajoittaa. Näkyvissä voi olla vaikkapa viisi ensimmäistä kommenttia, jonka jälkeen lisäkommentit pitää ladata erillisestä painikkeesta.

Rajoita näkyvien artikkeleiden määrä kotisivun nopeuttamiseksi

12. Ota paluuviitteet pois käytöstä

Paluuviite eli pingback on automaattinen kommentti, joka luodaan, kun toiselta sivustolta tehdään linkki sivustollesi. Kun luot itse linkin omaan artikkeliisi oma sivustosi sisällä, tätä kutsutaan self-pingbackiksi.

Molemmat kannattaa ottaa pois käytöstä, koska ne luovat turhaan kyselyn aina, kun viittaus tehdään. Mitä vähemmän kutsuja WordPress-sivustosi joutuu tekemään, sitä parempi ja sitä nopeammin sivusto myös toimii, tällä on merkitystä erityisesti suurilla sivustoilla. Alla ohjeet, joiden avulla saat paluuviitteet pois käytöstä.

Ota pingbackit pois käytöstä

Kirjaudu sivustollesi ja valitse WordPress-hallintapaneelista asetukset -> keskustelut. Ota pois merkintä kohdasta ”Salli linkki-ilmoitukset muista blogeista (pingback ja trackback) uusiin artikkeleihin.”

13. Tietokannan optimointi

WordPress-sivuston tietokanta vaikuttaa myös sivuston nopeuteen. Sitä voi optimoida monin eri tavoin ja tietokantaa olisi myös hyvä siivota aika ajoin, jotta sieltä saadaan poistettua esimerkiksi poistettujen lisäosien jättämät tiedot. Siivouksen yhteydessä sieltä siis poistetaan kaikki tarpeeton.

Poista vanhat sivuversiot

Oletuksen WordPress tallentaa sekä sivuista että artikkeleista versioita. Tämä tapahtuu sekä luonnoksien että jo julkaistujen sivujen kanssa. Näistä vanhoista versioista voi tietenkin olla hyötyä, jos jostain syystä vanhempaa versiota tarvitaankin, mutta versioiden suuri määrä voi vaikuttaa tietokannan suorituskykyyn.

Sivustosta kannattaa ottaa varalta varmuuskopiot ennen sivuversioiden poistamista. Vanhat sivuversiot voi poistaa esimerkiksi WP-Sweep-lisäosan tai WP-CLI:n avulla.

Jos käytät poistamiseen WP-CLI:tä, kirjaudu ensin palvelimellesi sisään SSH:n avulla ja aja seuraava komento nähdäksesi, paljonko vanhoja versioita on:

wp revisions list

Voit tyhjentää sivuversiot seuraavalla komennolla:

wp revisions clean

Rajoita sivuversioiden määrää

Voit rajoittaa myös versioiden määrää lisäämällä alla olevan määrityksen wp-config.php-tiedostoon. Tämä muuttaa automaattisen tallennuksen oletuksena olevasta 60 sekunnista viiteen minuuttiin ja tallennettavien versioiden lukumäärän voit valita oman mielesi mukaan, alla olevan määrityksen mukaisesti niitä olisi käytössä viisi.

define(’AUTOSAVE_INTERVAL’, 300); // seconds
define(‘WP_POST_REVISIONS’, 5);

Siivoa myös wp_options-taulukko

Erityisesti vanhemmilla ja suuremmilla sivustoilla wp_options-taulukko voi olla syy hitaisiin kyselyihin. Kyseinen taulukko sisältää automaattisesti latautuvaa dataa ja siihen tallennetaan etenkin asetuksia.

wp_options-taulukossa on autoload-niminen kenttä, jossa on joko valinta kyllä tai ei. Käytännössä kyseinen kenttä hallinnoi sitä, lataako wp_load_alloptions-funktio kyseisen sivun. Jos autoload-kentässä on kyllä, ladataan se jokaisella WordPress-sivuston sivulla. Oletuksena kentässä on kyllä, vaikka kaikkien lisäosien ei tarvitsisi tuoda dataansa jokaiselle sivulle.

Saat taulukon kaikki kyllä-vastaukset näkyviin kirjautumalla phpMyAdminiin. Paina sen jälkeen tietokantaasi vasemmalta ja sen jälkeen vielä SQL-välilehteä. Lisää alla oleva määritys ja paina sitten go.

SELECT * FROM `wp_options` WHERE `autoload` = 'yes'

Wp-options-taulukon siivoamiseen voi käyttää myös WP CLI:tä, komento: wp db cli.

Ongelmia syntyy yleensä vasta, kun sivustolla on paljon automaattisesti latautuvaa dataa kyseisessä taulukossa. Kannattaa tarkistaa wp_options-taulukon osalta ainakin seuraavat asiat:

  • Dataa tuo lisäosa, jonka ei tarvitse latautua jokaiselle sivustolle, esimerkiksi yhteydenottolomake. Tällaiselle lisäosalle voi vaihtaa autoload-kenttään ei-vastauksen.
  • Poistettu lisäosa tai teema on jättänyt asetuksensa kyseiseen taulukkoon. Tällaisen sisällön voi poistaa kokonaan taulukosta tai ainakin vaihtaa ei-vastauksen autoload-kenttään.

14. Sivuston pakkaaminen

GZIP ja Brotli ovat pakkaamisen muotoja, joilla pakataan verkkosivuston HTML, CSS ja JavaScript-koodit palvelimen puolella ennen kuin ne lähetetään käyttäjän selaimelle, mikä nopeuttaa sivuston latautumista.

Usein pakkaus on jo oletuksena käytössä, joten kannattaa ennen toimenpiteitä tarkistaa, onko pakkaus jo käytössä. Esimerkiksi erilaiset nopeustestityökalut osaavat kertoa, onko pakkaus jo käytössä vai ei.

Tavallisessa Apache-palvelimella toimivassa webhotellissa voit ottaa GZIP-pakkauksen käyttöön lisäämällä alla olevan määritys .htaccess-tiedostoon:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Jos sinulla on käytössäsi NGINX-palvelin, saat pakkauksen käyttöön lisäämällä alla olevan määrityksen nginx.conf-tiedostoon:

gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css text/javascript text/xml application/json application/javascript application/x-font-ttf application/xml application/xml+rss image/x-icon image/svg+xml;

Javascript tiedostot ja CSS:n saa minifoitua nykyään myös WP Rocketin avulla.

15. PHP-prosessien määrä

PHP-prosessien määrä vaikuttaa suoraan siihen, montako samanaikaista pyyntöä sivustosi pystyy prosessoimaan. Käytännössä siis jokainen pyyntö, jota ei voida hakea välimuistista suoraan, haetaan PHP-prosessin avulla.

Jos pyyntöjä tulee enemmän kuin PHP-prosesseja on, jää osa pyynnöistä odottamaan vuoroaan jonoon, mikä näkyy sivuston hitautena. Jos PHP-prosessit ovat koko ajan ylikuormitettuja, alkaa jono työntämään vanhimpia kyselyjä pois, mikä johtaa 502, 503 ja 504 -virheilmoituksiin.

Useimmat palveluntarjoajat käyttävät PHP-prosesseja palvelinpyyntöjen rajoittamiseen. Jos jokaisella sivustolla olisi käytettävissä rajattomasti PHP-prosesseja, voisi se vaikuttaa jaetussa palvelussa, kuten webhotellissa, kaikkien sivustojen toimintaan.

Jos sivustolla alkaa toistuvasti olla hitautta tai virheilmoituksia, kannattaa selvittää johtuuko syy PHP-prosessien rajallisesta määrästä. Tällöin kannattaa ottaa yhteyttä omaan palveluntarjoajaan ja tarkistaa, onko määrää mahdollista nostaa.

16. Uudelleenohjaukset

Uudelleenohjaukset voivat hidastaa sivustoa, vaikkakin yksittäisen palvelintason uudelleenohjaukset eivät tätä tee. Ongelmia tulee yleensä vasta, kun uudelleenohjauksia aletaan pinoamaan toisensa päälle tai niitä käytetään sivustolla todella runsaasti. Ongelmat uudelleenohjauksissa koskevat sekä sivuja että artikkeleita.

WordPress-sivuston nopeuttamisen kannalta uudelleenohjauksien määrä kannattaakin minimoida ja lisätä tarpeelliset uudelleenohjaukset suoraan palvelintasolle. Yksinkertaiset uudelleenohjaukset toimivat kyllä ongelmitta ja ovat usein ihan perusteltujakin, eli ei ole tarpeen alkaa välttämään uudelleenohjauksia kokonaan.

17. WordPress CRON

WordPressissä on sisäänrakennettu ajastettujen tehtävien järjestelmä. Tätä käytetään esimerkiksi artikkeleiden ajastettuihin julkaisuihin ja päivitysten automaattisiin taustatarkistuksiin. Oletuksena WP-CRON kuitenkin suoritetaan aina silloin, kun sivustolla on kävijäliikennettä, joka voi aiheuttaa turhaa rasitusta sivustolle. Tämän vuoksi onkin suositeltavaa määrittää WordPress suorittamaan WP-CRON palvelimen puolelta.

Tämä onnistuu lisäämällä seuraava konfiguraation wp-config.php-tiedostoon, joka poistaa käytöstä WordPressin sisäänrakennetun CRON-toiminnon:

define( ‘DISABLE_WP_CRON’, true );

Tämän lisäksi palvelimen asetuksiin tulee määrittää WP-CRON:in suorittava komento. Mikäli sinulla on pääsy ajastettujen tehtävien lisäykseen tai SSH-yhteys palvelimelle (komento: crontab -e), voit lisätä seuraavan tehtävän. Alla oleva komento suorittaa WP:n ajastetut tehtävät viiden minuutin välein täsmällisesti palvelimen puolelta.

*/5 * * * * wget -q -O - https://sivusto.fi/wp-cron.php?doing_wp_cron

18. Ota XML-RPC pois käytöstä

XML-RCP on yksi mahdollinen hyökkäyskanava sivustolle. Sivustolle kohdistuva hyökkäys voi puolestaan hidastaa myös sivuston toimintaa.

Se kannattaakin ottaa pois käytöstä, jos sitä ei tarvitse. On hyvä huomata, että se estää XML-RCP:tä tarvitsevien lisäosien ja ohjelmien käyttämisen. Tällaisia ovat esimerkiksi Jetpack ja WordPressin mobiilisovellus.

Apache-palvelimella saat sen pois käytöstä lisäämällä seuraavan määrityksen .htaccess-tiedostoon:

order deny,allow
deny from all

Jos käytössäsi on käytössäsi NGINX-palvelin, saat XML-RCP:n pois käytöstä lisäämällä alla olevan määrityksen nginx.conf-tiedostoon (/data/sivusto.fi/nginx/nginx.conf):

location ~* ^/xmlrpc.php$ {
return 403;
}

19. CSS ja JavaScript-tiedostojen optimointi

Oletuksena teeman ja lisäosien tyyli- ja skriptitiedostot ladataan sivuston ulkoasun renderöinnin estävällä tavalla, jolloin selaimen täytyy suorittaa kaikki nämä koodit ennen kuin sivuston ulkoasua voidaan näyttää.
Sivusto saadaan näkymään nopeammin, kun nämä tiedostot merkitään ei-renderöinnin estäviksi resursseiksi käyttämällä async- ja defer-attribuutteja kooditasolla tai lisäämällä tämän tekevä lisäosa.

Sivusto ei siis suoranaisesti nopeudu, mutta se saadaan näkyviin käyttäjälle nopeammin, mikä on usein varsinaista nopeutta tärkeämpää. Yksi suosituimmista maksuttomista WordPress-lisäosista tämän hoitamiseen on Autoptimize, joka osaa pienentää ja määrittää koodit ei-renderöinnin estäviksi resursseiksi.

20. Poista turhat WordPressin suorituspyynnöt

Turhat WordPressin suorituspyynnöt kannatta aina selvittää ja tarpeen mukaan myös poistaa, koska ne voivat hidastaa sivuston toimintaa.

A) Taustakoodissa

Jotkin lisäosat tekevät ulkoisia HTTP-pyyntöjä esimerkiksi ulkoisiin rajapintoihin tietojen hakemiseksi. Hyvä esimerkki on sosiaalisen median syötetoiminto, joka täytyy päivittää tietyn ajan välein.

Huonolaatuinen lisäosa lataa sosiaalisen median tiedot WordPressin suorituksen aikana hakemalla tiedot suoraan sosiaalisen median palvelun rajapinnasta, joka näkyy selkeästi sivuston latausajassa ja voi jopa kaataa sivuston, jos sosiaalisen median palvelun rajapinta ei jostain syystä toimisi tai verkkoyhteydessä olisi viivettä.

Sen sijaan hyvälaatuinen lisäosa hakee ja välimuistittaa nämä tiedot taustalla ajettavana WP-CRON -tehtävänä, jolloin tämä on täysin näkymätön operaatio sivustolla vierailijoille sivuston nopeuden kannalta.

B) Sivuston frontendissä (vierailija)

Jotkin lisäosat voivat lisätä ylimääräisiä HTTP-pyyntöjä erilaisiin käyttötarkoituksiin.
WordPressiä kutsutaan esimerkiksi /wp-admin/admin-ajax.php-osoitteen kautta, jota käytetään yhteydenottolomakkeiden lähettämiseen. Tätä kuitenkin voidaan myös käyttää muihin tarkoituksiin, jolloin olisi aina hyvä selvittää, mikä lisäosa pyynnön tekee ja miksi kyseinen pyyntö tehdään.

Tarvitsetko apua WordPress-sivuston nopeuttamiseen?

Tuntuuko WordPress-sivuston nopeuttaminen haastavalta vai etkö tiedä, mistä kannattaisi lähteä liikkeelle? Kumppanimme auttavat mielellään WordPress-sivustojen nopeusoptimoinnissa. Etsi sopiva kumppani suoraan kumppanihakemistomme kautta.

Etsi kumppani