Keskiviikkona 17.2.2021

Näin toteutetaan nopea ja käyttäjiä palveleva haku WordPress-sivustolle

WordPressin oletushaku ei toimi kovin hyvin, mutta haku on kuitenkin yksi tärkeimmistä ominaisuuksista laajoilla sivustoilla. Miten ongelma ratkaistaan ja WordPress-sivustolle rakennetaan toimiva haku jonka avulla käyttäjä löytää etsimänsä?

Tämä kirjoitus saattaa sisältää vanhentunutta tietoa, sillä se on julkaistu yli 3 vuotta sitten.

WordPressin oma haku on varsin rajoittunut, eikä siitä ole iloa monellakaan verkkosivulla. Verkon hakukoneillakin löytyy todennäköisesti kaivattu sisältö paremmin kuin WordPressin haulla jota ei ole paranneltu.

Verkkosivun sisäinen haku on kuitenkin erityisen tärkeä ominaisuus. Etenkin jos sisältöä on paljon tai sitä on ripoteltu monelle alasivulle. Myös tuotteita, henkilöstöä tai usein päivittyvää sisältöä listaavilla sivustoilla hausta on käyttäjälle suuri ilo, kun kaikkea sisältöä ei tarvitse rullailla läpi vaan haulla löytyy nopeasti juuri se mitä ollaan etsimässä.

Miten tälläisillä sivustoilla sitten toimitaan, kerran haku on tärkeä ja WordPressin oman haun toiminta vähintäänkin heikkoa? Potentiaalisia ratkaisuja on monia. WordPressin omaa hakua parantavia lisäosia löytyy tusina, sivustolle voi lisätä täysin ulkoistetun hakupalvelun kuten Valu Search tai sitten kehittäjä voi koittaa kikkailla koodissa itse.

Meillä luotetaan WordPressin omaa hakua parantavaan kotimaiseen Relevanssiin. Lisäosamarkkinassa Relevanssin kanssa ehkä vahvin kilpailija on jenkkilästä ponnistava SearchWP, jonka ominaisuuskattaus on hieman rajatumpi ja sitä on höystetty markkinalle tyypillisesti muutamalla turhalla ominaisuudella. Relevanssin valintaan vaikutti aikoinaan suuresti myös se, että kehittäjä on suomalainen Mikko Saari joka vastaa (harvoin tarvittuihin) tukipyyntöihin todella nopeasti ja lisäosa on erittäin kattavasti dokumentoitu.

Ulkoistetuissa hakupalveluissa hinta taas kasvaa usein suureksi pitkässä juoksussa. Esimerkiksi yllä mainitun Valu Searchin hinta on halvimmillaan 99 euroa kuukaudessa – ja tällä saat kolmen päivän välein päivittyvän indeksin josta hakutuloksia etsitään. Tuorein sisältö ei siis ole sivuston oman haun löydettävissä välittömästi. Toinen suosittu ulkoistettu hakupalvelu, Swiftype, on hieman halvempi vaikka senkin kuukausikustannus kasvaa satoihin euroihin.

Ei toki toimiva haku täysin ilmainen ole, varsinkaan jos siitä halutaan mahdollisimman hyvä myöhemmin kirjoituksessa kertomillani tavoilla. Tyypillisesti toteuttamamme haut kasvattavat projektin hintaa kuitenkin vain 1 000 – 4 000 euroa, mikä on suhteessa uudistusprojektin kokonaishintaan hyvin vähän. Lisenssikustannuksen katamme ylläpitopaketin hinnalla, joka on vuodessa jokaiselle asiakkaalle jyvitettynä joitain kymmeniä senttejä. Laadukkaan haun ei tarvitse siis olla kallis, jatkuva kuluerä.

Miten niitä laadukkaita hakuja sitten tehdään?

Jo heti Relevanssin asennuksen ja ensimmäisen indeksoinnin jälkeen WordPressin haku muuttuu oletusasetuksilla huomattavasti paremmaksi. Toimintaa on kuitenkin usein syytä säätää, varsinkin laajemmilla sivustoilla. Tätä varten hallintapaneelissa on tarjolla lukuisia asetuksia ja koodissa on kehittäjiä varten enemmän kuin tarpeeksi koukkuja sekä filttereitä.

Asetusten avulla pystytään mm. määrittämään erilaisten sisältötyyppien painotukset hakutuloksissa ja määrittämään jopa yksittäisen hakutuloksen sijoittumiseen vaikuttavia painoarvoja sen mukaan millä tapaa sisältö linkittyy haettuun sanaan.

Kuvakaappaus pienestä osasta Relevassin asetuksia, jossa voit säätää erityyppisen sisällön painotuksia ja haun tyyppiä.

Uusimpana lisäyksenä työkalupakissamme on Relevanssin kanssa toimiva Snowball Stemmer, jonka ansiosta haku osaa ottaa huomioon myös sanojen taivutusmuodot. Haulla löytyy siis tuloksia vaikka hakusana ja sisällöissä esiintyvä sana ei olisi aivan yksi yhteen. Kun aiemmin hakusana ”edeltäjä” ei olisi palauttanut tuloksia, nyt se palauttaa hakutuloksia sisällöstä jossa esiintyy esimerkiksi sana ”edeltäjien”. Taikuutta!

Voisi kuvitella, että tälläinen kattava haku olisi hidas varsinkin laajoilla sivustoilla. Itseasiassa moni ulkoinen hakupalvelu käyttää juuri nopeutta markkinoinnissa myyntivalttinaan. Relevanssilla toteutettu haku on kuitenkin varsin nopea sen muodostaman hakuindeksin ansiosta. Tietokantaa ei suinkaan lähdetä kahlaamaan joka kerta läpi, kun käyttäjä tekee haun. Sen sijaan Relevanssi kurkottaa omaan indeksiinsä jota rakentaessa on otettu huomioon kaikki sisältö, aina otsikosta kategorioihin ja näkyvään metasisältöön asti. Tuo hakuindeksi myös päivittyy välittömästi aina, kun sisältöä muokataan. Tuorein sisältö on siis aina sivuston oman haun löydettävissä.

Usein juuri näkyvän metasisällön indeksointi unohdetaan, vaikka se on erityisen tärkeä asia. Näkyvällä metasisällöllä tarkoitetaan siis esimerkiksi henkilön titteliä, tuotteen väriä tai vaikkapa jollain sivulla haitarista avautuvaa sisältöä.

Kuvittele ison yrityksen sivusto, josta haluat löytää myyntijohtajan yhteystiedot etkä tiedä hänen nimeä. Tai kustantamon sivusto, jonka hausta ei löytyisi oikeaa kirjaa sen ISBN-standarditunnuksella. Mielestäni sellainen ei ole kovin hyödyllinen haku. Kun hakuindeksiin otetaan mukaan näkyvä metatieto, henkilöstön tittelit sekä kirjojen ISBN-tunnukset huomioidaan hakutuloksia muodostaessa.

Hakuindeksissä voidaan huomioida myös esimerkiksi blogausten kirjoittaja, jolloin henkilöä haettaessa käyttäjälle on mahdollista näyttää yhteystietojen lisäksi haetun henkilön kirjoittamat blogitekstit. Tälläisillä pienillä kikoilla käyttäjälle saadaan syötettyä mielenkiintoista sisältöä myös suoranaisesti haetun asian ohi. Parhaimmillaan käyttäjä päätyy lukemaan blogausta ja jatkaa sivuston selailua, nimittäin kukapa voisi välttyä houkutukselta kurkata mielenkiintoisen otsikon taakse.

Suomen kustannusyhdistykselle toteutettu hieman perinteisempi hakunäkymä, jossa haettu sana korostuu osumia esittäessä.

Hakutulosten rikastaminen luo hyötyä käyttäjälle

Osuva hakutulos menettää merkitystään, jos se esitetään huonosti. Haet sitten sitä myyntijohtajaa tai kirjaa ISBN-tunnuksella, nimi ja linkki itse sisältöön lämmittää mieltä ainoastaan hieman.

Mitäpä jos käyttäjälle tarjottaisiin kuitenkin suoraan hakutuloksen yhteydessä kaikki olennainen tieto? Myyntijohtajan nimen lisäksi kaikki yhteystiedot. Kirjan nimen lisäksi sen kansi, kirjoittaja ja formaatit joissa kyseinen kirja on saatavilla. Kurssin aiheen lisäksi ajankohta, opetuspaikka, hinta sekä ilmoittautumistilanne. Listaa voisi jatkaa loputtomiin, sillä lähes kaikkia hakutuloksia voi rikastaa käyttäjää hyödyttävällä lisätiedolla.

Tätä ajattelua käyttäjäystävällisestä hakutulosten esittämisestä voidaan viedä vielä pidemmälle. Etenkin laajoilla sivustoilla on syytä pohtia, voisiko erilaisia hakutuloksia ryhmittää ja esittää vierekkäin? Hakutuloksia löytyy kuitenkin todennäköisesti useista eri sisältötyypeistä, joten lista voi venyä pitkäksi sekä kaoottiseksi jos jokaista tulosta samassa pötkössä rikastetaan erilaisella tiedolla.

Yhden pitkän hakutuloslistauksen sijaan tulokset voidaan jakaa sisältötyypeittäin, jolloin kaivatun sisällön löytää vielä nopeammin kaikkien tulosten joukosta. Myyntijohtajan yhteystietoja etsivälle on tärkeintä löytää yhteystiedot. Nimitysuutiset ja muut blogaukset joissa myyntijohtaja mainitaan, ovat tällöin toisarvoista sisältöä – mielenkiintoista sekä kontekstia antavaa, vaan ei käyttäjän kysymykseen vastaavaa.

Juuri julkaistulla Tavastian uudella sivustolla hakutuloksia on rikastettu tuloksiin liittyvillä olennaisilla tiedoilla.

Reaaliaikainen haku

Kaikki tämä kuulostaa hienolta, mutta et halua perinteistä hakua jossa käyttäjä joutuu klikkaamaan sitä ärsyttävää ”Hae” nappia? Nyky-yhteiskunnassa on kiire, jokainen sekunti maksaa ja niinpäinpois. Haunkin tulee olla siis nopea ja mahdollisimman suoraviivainen.

Ei hätää, kyllä onnistuu! Relevantit, hyödyllisellä tietolla rikastetut ja sisältötyypeittäin ryhmittelyt tulokset on kaikki rakennettavissa reaaliaikaiseen hakuun joka esittää tuloksia melkeinpä samaan tahtiin kuin käyttäjä nakuttelee hakusanaa sisään.

Toteutimme Atenan sivustolle reaaliaikaisen haun jossa tulokset on ryhmitelty sisältötyypeittäin.

Bonus tip: liittyvät sisällöt

Monella sivustolla halutaan näyttää blogausten lopussa muita suositeltuja blogauksia, jotka mielellään liittyvät jollain tapaa juuri luettuun tekstiin. Aina voi hakea blogauksia samasta kategoriasta. Tai käyttää jotain lukuisista lisäosista jotka tunnistavat jokainen omalla tavallaan samankaltaiset kirjoitukset.

Joitain vuosia sitten tuskailimme kaverini Teemu Suorannan kanssa WordPress Finlandin -slack yhteisössä kuinka kaikki tuota tekevät lisäosat ovat enemmän tai vähemmän puutteellisia. Taisi olla Teemu joka alunperin heitti ilmoille kysymyksen, voisiko Relevanssin hakuindeksin valjastaa myös tähän tarkoitukseen. Relevanssin kehittäjä Mikko Saari tarttui ajatukseen ja näin premium -versiosta 2.2.4 lähtien Relevanssi on tukenut liittyvien sisältöjen esittämistä.

Ark.fi sivustolla esitetään Relevanssin avulla muita artikkeleita jotka liittyvät juuri luettuun sisältöön.

Sivustouudistus alkamassa? Älä unohda yhtä tärkeimmistä ominaisuuksista, kiinnitä huomiota hakuun jo suunnitteluvaiheessa. Jos kunnon laadukas ja moderni sivusto käyttäjää palvelevalla haulla kiinnostaa, kilauta tai ota yhteyttä perinteisempään malliin.