WordPressin perushaku on tunnetusti ominaisuuksiltaan rajoittunut. Haku kohdistuu ainoastaan otsikkoon ja sisältöön ja tulokset järjestetään julkaisuajan eikä vastaavuuden perusteella.
Perushaun rajoitusten vuoksi sitä tyypillisesti laajennetaan lisäosalla, kuten Relevanssilla tai SearchWP:llä. Kyseiset lisäosat rakentavat WordPressin tietokantaan erillisen hakuindeksin WordPressin tietokantataulujen pohjalta ja haun piiriin voidaan lisätä myös lisäkenttiä ja säätää niiden painotuksia.
Verrattuna WordPressin perushakuun, lisäosilla saadaan huomattava parannus tulosten tarkkuuteen, koska hakutulokset saadaan järjestettyä vastaavuuden perusteella ja epärelevantit tulokset saadaan pudotettua tulosten hännille tai kokonaan pois.
Perushakua laajentavissa lisäosissa on myös rajoituksia. Mikäli lisäosalla toteutetun haun piiriin halutaan sisältöä muista järjestelmistä, ne on luettava sisään WordPressiin esimerkiksi omaan sisältötyyppiin, jotta haku voidaan kohdistaa niihin.
Koska haku pohjautuu WordPressin tietokantaan eikä sivustolla näkyvään sisältöön, uusien sisältökenttien lisääminen haun piiriin vaatii konfigurointityötä. Myös esimerkiksi sivulle nostetun yhteystiedon tiedot voidaan joutua erikseen koodilla ”avaamaan” hakuindeksiin, jotta ne olisivat haettavissa, koska tietokantaan tallentuu viittauksesta vain ID-numero.
Periaatteessa haun piiriin voidaan myös sisällyttää kaikki lisäkentät, mutta tämä tekee indeksoinnista raskaan. Tämä näkyy erityisesti suurten sisältömäärien sivustoilla sekä sivustoilla, joissa erinimisiä lisäkenttiä voi muodostua esimerkiksi ACF Flexible Content -kentän sisään käytännössä rajaton määrä. Myös muut raskaat operaatiot, kuten PDF-tiedostojen käsittely, tapahtuu julkaisujärjestelmän kanssa samalla palvelimella, mikä voi myös aiheuttaa suorituskykyhaasteita.
Esimerkkikuva: lisäosat mahdollistavat haun sisällön ja painotusten konfiguroinnin, mutta suurilla sivustoilla indeksoinnista tulee helposti liian raskas operaatio
Lisäksi lisäosalla toteutettu hakuratkaisu rajoittaa haun kontekstin koskemaan vain kyseistä WordPress-asennusta. Haun piiriin ei ole mahdollista sisällyttää tuloksia muilta sivustoilta, poikkeuksena samassa multisitessä olevat sivustot.
Suorituskykymielessä haasteeksi voi tulla indeksoinnin raskauden lisäksi myös hakukyselyiden raskaus, jolloin hakua pommittamalla koko sivuston ylläpito ja julkinen puoli hidastuvat.
Ulkoisella hakuratkaisulla uudelle tasolle
Kun haulta tarvitaan korkeaa suorituskykyä ja sen piiriin halutaan liittää useita eri järjestelmillä toteutettuja sivustoja pienellä vaivalla ilman jatkuvaa konfigurointia, lisäosista kannattaa siirtyä ulkoiseen hakuratkaisuun.
Kun tiedot kerätään sivuston julkisesta käyttöliittymästä, tiedon lähteellä tai käytetyllä julkaisujärjestelmällä ei ole väliä. Tieto voi olla muodostunut integraation kautta tai tulla sivuston julkaisujärjestelmästä. Osa haun piiriin liitettävistä sivustoista voi olla tehty Drupalilla, osa WordPressillä ja osa räätälöidyllä järjestelmällä ja kaikkien sisällöt saadaan saman haun piiriin. Eri järjestelmien kirjo onkin melko tyypillistä asiakkailla, joilla on useampi kuin yksi sivusto.
Myös konfigurointityö vähenee, kun kaikki sisältö on valmiiksi avattuna sivuston käyttöliittymään. Jos lisäät julkaisujärjestelmään sisältökentän, se on automaattisesti haun piirissä, kun tieto tulostetaan käyttöliittymään tai se löytyy sivun lähdekoodista. Tämä koskee tietysti myös sitä yhteystietonostoa, jonka lisäosaa käytettäessä jouduit erikseen ”avaamaan” hakuindeksiin.
Tietojen kerääminen käyttöliittymästä on kokemuksiemme mukaan vähemmän kuormittavaa kuin indeksin rakentaminen tietokannan pohjalta, koska esimerkiksi PDF-tiedostoja ei tarvitse käsitellä julkaisujärjestelmän palvelimella ja tietokantaoperaatioita tarvitaan vähemmän, koska tietoa ainoastaan luetaan.
Kun tietojen kerääminen hakuindeksiin tehdään vielä esimerkiksi yöaikaan, jolloin sivuston muu käyttö ja kuormitus on vähäistä, tietojen keräyksestä ei aiheudu haittaa sivuston käyttäjille. Indeksointien välissä tapahtuvat muutokset voidaan viedä indeksiin rajapinnan kautta lähes reaaliaikaisesti, kun tietoja muutetaan.
Kun tiedot tallennetaan erilliseen hakuindeksiin, WordPressin oma haku voidaan poistaa käytöstä, mikä parantaa suorituskykyä ja tietoturvaa. Kun haut eivät kohdistu sivuston tietokantaan vaan erilliseen tehokkaaseen hakuindeksiin, hakua pommittamalla ei voi hidastaa sivuston ylläpidon tai julkisen puolen toimintaa.
Kokemukseni mukaan WordPressin perushakua laajentavilla lisäosilla päästään pitkälle, mikäli halutaan hakuratkaisu yksittäiselle pienelle tai keskisuurelle WP-sivustolle. Mikäli tarpeena on suorituskykyinen ja usean sivuston sisällöt koostava hakuratkaisu, Valu Searchin tyyppinen ulkoinen haku vastaa tarpeeseen parhaiten.