Ga naar hoofdinhoud
Case · Marketing30 juli 20266 min lezen

CleverKeywords: keyword-research-SaaS op DataForSEO-data

SaaS
eigen product, live op cleverkeywords.nl
1.000
Tot 1.000 gerelateerde zoekwoorden per zoekopdracht, met intent-classificatie en 6-maands trend
1.507
Circa 1.507 commits sinds december 2025 na een volledige herbouw van het low-code prototype
2routes
Twee ingestroutes voor zoekdata: de DataForSEO-API plus een Playwright/Chromium SERP-scraper
Screenshot van CleverKeywords, de keyword-research-SaaS van CleverTech AI voor de Nederlandse en Belgische markt
Uitdaging

De uitdaging

Wie keyword-research doet voor een Nederlandse opdrachtgever, werkt met tooling die primair voor de Engelstalige markt is gebouwd.

Dat merkten we in ons eigen werk vaak genoeg om er een eigen product van te maken: CleverKeywords (cleverkeywords.nl), een keyword-research-SaaS van CleverTech AI voor de Nederlandse en Belgische markt. Het verschil met Engelstalige tooling is op drie punten merkbaar.

  • Nederlands wordt behandeld als een variant van Engels. Onze taal maakt samenstellingen (boekhoudsoftware, voorraadbeheersysteem), kent verkleinwoorden op -je, -tje en -pje, en meervoudsvormen op -en, -s en -eren. Een stemmer die daar geen rekening mee houdt, splitst zoekwoorden die bij elkaar horen en klontert zoekwoorden samen die inhoudelijk uit elkaar liggen. Het gevolg is een keywordlijst die er compleet uitziet maar de verkeerde clusters bevat.
  • Vlaams-Nederlands verdwijnt in het Nederlandse gemiddelde. Wie ook op de Belgische markt zit, wil weten waar de terminologie en het zoekgedrag uiteenlopen — niet één samengevoegd volume voor het hele taalgebied.
  • Onderzoek en opvolging zitten in losse systemen. Zoekvolume en concurrentie in de ene tool, posities in de tweede, Search Console en analytics in de derde. Precies de versnippering die maakt dat er wel gemeten wordt, maar zelden opgevolgd.

Daar kwam een praktische randvoorwaarde bij: de zoekdata zelf — zoekvolume, CPC en difficulty — moet uit een externe bron komen. Die bouw je niet zelf; die haal je op, cachet je verstandig en verwerk je in de achtergrond, zonder dat een gebruiker naar een laadscherm zit te kijken.

De eerste versie was, eerlijk gezegd, geen productie-software. In november en december 2025 bouwden we een prototype in een low-code-omgeving om de aanname te toetsen.

Dat prototype deed zijn werk als validatie en liep vervolgens tegen zijn grenzen aan: geen grip op de datalaag, geen ruimte voor eigen taalverwerking, geen fatsoenlijke jobverwerking. De keuze was daarna binair — het prototype oprekken, of het product opnieuw en goed bouwen.

Aanpak & oplossing

De aanpak en oplossing

We kozen voor het tweede: CleverKeywords is vanaf december 2025 volledig opnieuw opgebouwd als productie-SaaS. Inmiddels staat de teller op ongeveer 1.507 commits en draait het product live op cleverkeywords.nl.

1. Eén monorepo in plaats van losse frontend- en backend-projecten

Het platform draait als een Turborepo-monorepo waarin frontend en backend één versiegeschiedenis en één typecontract delen.

De frontend is Next.js met React, TypeScript en Tailwind CSS; de backend is een Fastify-API op Node. Data zit in PostgreSQL met Prisma als datalaag, met Redis ernaast voor caching en als drager van de jobqueues.

Die monorepo-keuze is geen smaakkwestie: een keyword-tool verandert voortdurend van datavorm — een nieuw veld op een keyword raakt de ingest, het datamodel, de API en het scherm tegelijk.

In één repository is dat één wijziging met één typecontrole; in gescheiden repositories is het een migratie met afstemmingsoverleg.

2. Een API-koppeling laten maken die de datalaag afschermt

DataForSEO levert de externe zoekdata: zoekvolume, CPC en difficulty. Die koppeling zit bewust achter een eigen laag in plaats van rechtstreeks in de schermen.

Aanvragen lopen via BullMQ-jobqueues op Redis: een gebruiker start een zoekopdracht, de queue haalt de data op en verwerkt die in de achtergrond, en het resultaat landt in PostgreSQL. Zo bepaalt de leverancier niet de responstijd van het product, en blijven kosten en volume beheersbaar.

Naast DataForSEO staat een tweede route: een Playwright/Chromium-scraper die SERP-gegevens ophaalt waar de API-bron niet in voorziet. Twee ingestroutes achter één interne datavorm — hetzelfde patroon dat we bij klantprojecten gebruiken wanneer één externe partij te veel single point of failure is.

Zoeken binnen de eigen dataset gebeurt in PostgreSQL zelf, met pg_trgm voor fuzzy matching en unaccent voor diakrieten. Zoeken op "café" moet ook op "cafe" werken, en een typefout mag geen leeg scherm opleveren.

3. Nederlandse taalverwerking als het eigenlijke onderscheid

Dit is waar het product zich van een generieke tool onderscheidt. CleverKeywords bevat eigen taalverwerking voor het Nederlands: stemming, herkenning van samengestelde woorden, verkleinwoorden (-je, -tje, -pje) en meervoudsvormen (-en, -s, -eren).

Daarbovenop zit een expliciete vergelijking tussen Nederlands en Vlaams/Belgisch-Nederlands, zodat verschil in terminologie zichtbaar blijft in plaats van weg te middelen.

Ontwerpuitgangspunt: de taalverwerking bepaalt hoe zoekwoorden geclusterd en ontdubbeld worden. Dat is het ontwerp van het product, geen gemeten uitkomst — we publiceren hier geen nauwkeurigheidscijfers omdat we die niet extern hebben gevalideerd.

4. Het dashboard laten bouwen: van onderzoek naar opvolging

Rond de datalaag zit de functionaliteit die onderzoek en opvolging in één scherm brengt: tot 1.000 gerelateerde zoekwoorden per zoekopdracht, automatische intent-classificatie, een trendlijn over zes maanden, dagelijkse rank-checks op Google.nl voor desktop én mobiel, tracking van SERP-features en positie-alerts wanneer een pagina beweegt.

Voor een realtime dashboard is het jobmodel bepalend. Rank-checks zijn periodiek werk voor duizenden zoekwoorden; dat hoort in een wachtrij met retries en spreiding, niet in een request-cyclus. BullMQ verzorgt die planning, PostgreSQL bewaart de historie waar de trends en alerts op draaien.

5. Koppelingen, betalen en dogfooding

Het platform koppelt met Google Search Console en GA4 — zodat werkelijke vertoningen en posities naast de onderzoeksdata staan — en met Slack voor alerts. Er is daarnaast een WordPress-plugin voor gebruikers die hun content in WordPress beheren.

Aan de commerciële kant draait het op een freemium-model met betaalde tiers. Betalingen lopen via Stripe én Mollie, die laatste specifiek voor iDEAL: voor de Nederlandse markt is een creditcard-only checkout een conversielek. Authenticatie via Auth.js, transactionele e-mail via SendGrid.

Tot slot: we gebruiken het product zelf. De keyword-research voor clevertech.nl draait op de CleverKeywords-API via een interne skill. Dat is de scherpste kwaliteitscontrole die er is — elk gebrek in de data komt binnen een week terug in ons eigen werk.

Resultaat

Wat het opleverde

SaaS

Eigen product, live op cleverkeywords.nl

Keyword-research-SaaS gebouwd op een DataForSEO-datalaag, met eigen Nederlandse taalverwerking (stemming, samenstellingen, verkleinwoorden) en een Vlaams/Nederlandse vergelijking

1.000
Tot 1.000 gerelateerde zoekwoorden per zoekopdracht, met intent-classificatie en 6-maands trend
1.507
Circa 1.507 commits sinds december 2025 na een volledige herbouw van het low-code prototype
2routes
Twee ingestroutes voor zoekdata: de DataForSEO-API plus een Playwright/Chromium SERP-scraper
dagelijks
Dagelijkse rank-checks op Google.nl voor desktop en mobiel, met SERP-feature-tracking en positie-alerts
GSC + GA4
Koppelingen met Google Search Console, GA4 en Slack, plus een eigen WordPress-plugin
2PSP
Betalingen via Stripe en Mollie (iDEAL) op een freemium-model met betaalde tiers
Meer in Marketing

Vergelijkbare cases

Word de volgende case

Klaar voor zulke resultaten?

Gratis AI-scan: binnen 48 uur een rapport met de AI-kansen met de hoogste ROI voor jouw bedrijf — concreet, geen verkooppraatje.