MijnOisterwijk.nl

Hoe ik mijn eigen zoekmachine heb gebouwd…en hoe jij dat ook kunt

Ondertitel: Het ontstaan van MijnOisterwijk.nl
Door Danny van Duikeren

Wat doet een internetprofessional (ik dus) die verhuist van Utrecht naar Brabant? Die kan niet wachten om daar iets nieuws te beginnen. Iets lokaals. Iets dat er nog niet is. Het resultaat is geworden, de slimme zoekmachine MijnOisterwijk.nl.

MijnOisterwijk.nl homepage

Als je nu nog leest, dan ben je waarschijnlijk een nerd zoals ik. Hopelijk heb je er iets aan en deel je deze post met anderen.

Ready? Daar gaan we.

Een paar jaar terug trok een aantal bedrijven-verzamelwebsites in de regio Utrecht mijn aandacht. Ze begonnen klein en overzichtelijk, maar veranderden door hun businessmodel al snel tot banner-verkooppunten. Begrijpelijk, maar wel jammer. De gebruiker stond niet meer centraal. Ik wilde dat anders doen.

WordPress

Ik ben een fan van WordPress, maar geen hardcore programmeur. Dus maak ik mooie dingen door slim om te gaan met de middelen die er zijn. ‘Themes’, ‘plugins’, etc. Op het internet vond ik een oude lijst van bedrijven in Oisterwijk. Die lijst heb ik zo lang gestript en ‘schoon’ gemaakt in Excel, tot ik een csv-bestand had. Ik tuigde een lege WordPress-site op en m.b.v. de ‘Advanced Custom Fields’-plugin (ACF) bepaalde ik vooraf welke ‘custom fields’ ik wilde toevoegen aan de standaard ‘Post-posttype’: adres, telefoonnummer, enz. Nu kon ik een csv-template exporteren, waarin ik mijn ‘schoongemaakte’ data kon plakken. Daarna importeren en bam! ik had ineens een website met vele honderden bedrijfsvermeldingen.

Ik heb wel een ‘custom post type’ overwogen, maar er zijn zo veel gave plugins die ik nu of in de toekomst misschien ga inzetten. En wat blijkt: het merendeel van de plugins werkt (nog) niet goed met ‘custom post types’ en (natuurlijk) wel met de standaard ‘Post-posttype’.

Handwerk

Ik heb veel van de data-opschoning in Excel kunnen automatiseren, maar toen kwam toch het saaie handwerk: ik heb alle gegevens van elk bedrijf in mijn website gecontroleerd, verbeterd en soms zelfs verwijderd. Vele dagen tijd heeft me dat gekost…in de pijnlijke wetenschap, dat die bedrijfsdata elke dag kan wijzigen. Ik had kunnen kiezen voor ‘user generated content’, maar dan had ik moeten starten met niks, een lege website en dat leek me geen goed idee.

Zoekfunctie

Het hart (technisch en visueel) van de website is natuurlijk de zoekfunctie. Geen afleiding door teksten, afbeeldingen en banners, maar één prominent zoekveld. Net als bij Google. Voor de zoekfunctie heb ik de ‘SearchWP-plugin’ aangeschaft. Een gerenommeerde plugin die de info van alle WordPress-posts indexeert. En het mooie is, hij indexeert ook ‘custom fields’, i.t.t. andere ‘search-plugins’. Bij elke zoekactie op de website bouwt SearchWP voor elke post razendsnel een score op, op basis van de plek waar de zoekterm voorkomt in de post. Zo krijgt een post bijv. 50 punten als de zoekterm in de bedrijfsnaam staat en 20 extra punten als er ook een gedeeltelijke match is met een categorie of tag. Zo ontstaat een ranking van de bedrijven die vanwege de index supersnel kan worden getoond. En helemaal gaaf is de extra ‘Ajax-plugin’ voor SearchWP die al tijdens het typen van de zoekterm de eerste resultaten laat zien.

Ik heb de zoekfunctie zelfs voorbereid op typefouten door de gebruiker. Heel simpel: gewoon een ‘custom taxonomy’ gemaakt met ACF (net als ‘tags’) en die ook een bepaalde score toegekend in de scoretabel. Zo kan ik per ‘post’ (bedrijf) een setje bijnehorende typefouten toevoegen.

Ik had trouwens ook de ‘Relevanssi-plugin’ getest, maar die had minder search-mogelijkheden dan SearchWP. Ik miste vooral de vrijheid om deelscores in te stellen.

Theme

Mijn basis was het ‘Enfold-theme’ van ontwerper Kriesi. Te koop via Themeforest. Dat ‘WordPress-theme’ ken ik al jaren en de mogelijkheden, SEO-voorbereiding en updates blijven me verbazen. Natuurlijk eerst een ‘child-theme’ gemaakt en daarna al snel het zoekveld geplaatst. Dat is eigenlijk het standaard zoekveld van WordPress, maar dan overgenomen door SearchWP. Daarna heb ik min mijn ‘child-theme’ de templates voor ‘single’ (‘post’), ‘category’ en ‘tag’ gestript en ‘custom made’ gemaakt met mijn ‘custom fields’.

O ja, ‘Enfold’ doet het ook goed op mobiel. Met wat tweaks en ‘css media-queries’ kun je de zoekmachine ook wandelend door Oisterwijk op je smartphone goed gebruiken.

SEO

SEO is al jaren één van mijn specialiteiten. Zoals ik al schreef is ‘Enfold’ als ‘theme’ een goede basis. En natuurlijk aangevuld met de ‘Yoast SEO-plugin’ met slimme ‘html-titles’ en automatisch gegenereerde -‘descriptions’. Kun je allemaal instellen binnen de ‘Yoast-plugin’. Daarin zit een set van ‘template-tags’ die je kunt gebruiken. Bijv. de titel van de ‘post’, de categorie, etc.

Aangezien mijn ‘WordPress-posts’ op zich niet veel ‘content’ bevatten moet ik slim zijn. De meest recente aanpassing die ik heb gedaan is een ‘microdata-structuur’ van schema.org in mijn ‘html’ gezet. In de hoop dat Google makkelijker de bedrijfsdata herkent en waardeert.

Het resultaat tot nu toe

De website is 5 maanden stilletjes live gegaan en nog steeds zie ik dat Google nog niet alle ‘posts’, ‘tags’ en categorieën heeft geïndexeerd. Af en toe geef ik de verschillende ‘sitemaps’ (via Yoast) een zetje, in de hoop dat Google wakker wordt.

Zonder noemenswaardige promotie van de website landen er dagelijks ca. 5 bezoekers, allemaal ‘organisch’ via Google. Ik vond dat eerst weinig, tot ik me besefte dat er nog geen 20.000 mensen in Oisterwijk wonen. Maar voordat je moet lachen: vergis je niet, het is een buitengewoon ondernemende locatie.

Waar ik nu al zeer content mee ben, is dat MijnOisterwijk.nl dagelijks al bij ca. 300 mensen ergens in de zoekresultaten van Google wordt getoond. Meestal laag, maar rustig aan klimmen ze omhoog. Wie weet.

Ondertussen heb ik via de KvK een nieuwe lijst met ontbrekende bedrijven geïmporteerd en die als ‘concept’ klaar staan in WordPress. Voor controle, verrijking en lancering. Dus handwerk blijft een belangrijk deel van het werk.