Programmatische SEO

Programmatische SEO

Tag chaos automatiseren: hoe we 140 variaties koppelden aan 27 onderwerpen

Contentteams maken honderden variaties van tags. 'AI strategie', 'AI consulting', 'AI development'—allemaal met dezelfde betekenis: 'AI'. We bouwden een systeem dat automatisch vergelijkbare tags groepeert op betekenis in plaats van exacte matching. 140 variaties worden zo in seconden gekoppeld aan 27 kernonderwerpen, en hiaten in je content komen vanzelf aan het licht.

Vraag

Programmatische SEO werkt met vaste onderwerppagina's, maar contentteams gebruiken uiteenlopende benamingen. Exacte matching faalt: 'AI strategie' wordt niet gekoppeld aan 'AI', en 'React development' niet aan 'React'. Gevolg: content wordt niet gebundeld.

Methode

We gebruikten AI embeddings om tags om te zetten in numerieke representaties van betekenis, en groepeerden vergelijkbare items automatisch—waarbij elke groep aan precies één kernonderwerp wordt gekoppeld.

Ontdekking

Het systeem koppelde automatisch 140 tag variaties aan 27 kernonderwerpen en markeerde outliers die hiaten onthulden—alles in 30 seconden, zonder handwerk.

Het probleem met tags in programmatische SEO

Programmatische SEO maakt aparte pagina’s voor zoektermen—onderwerppagina’s die relevante content bundelen. De theorie is simpel: bepaal 27 kernonderwerpen (React, AI, Backend), en laat automatisch alle artikelen, cases en teamprofielen op de juiste pagina verschijnen.

De praktijk werkt anders. Contentteams schrijven niet “React”—ze schrijven “React development”, “React consulting”, “React architecture”. Exacte matching faalt. Onderwerppagina’s blijven leeg terwijl er wel relevante content is.

Handmatig beheer schaalt niet. “AI implementation” → “AI” koppelen werkt tot je 140 verschillende tags hebt. Dan besteedt iemand 8 uur per maand aan het bijwerken van een mappingbestand. Eén typfout en alles breekt.

We wilden weten: kunnen we betekenismatching gebruiken in plaats van exacte matching?

Anders naar het probleem kijken

De doorbraak: stop met denken in exacte matching. Zie het als een clustering probleem waarbij vergelijkbare termen vanzelf bij elkaar komen.

Wat we hebben:

  • 27 kernonderwerpen (React, AI, Backend, etc.)—de vaste categorieën
  • 140 tag variaties—alle benamingen die je team gebruikt
  • Doel: Elke variatie automatisch koppelen aan het meest passende onderwerp
  • Regel: Past iets nergens bij? Laat het dan los

Door tags te zien als clustering in plaats van matching, automatiseren we wat eerst uren handwerk kostte.

Hoe het werkt

De aanpak heeft drie stappen:

Stap 1: Van tekst naar betekenis

Gebruik OpenAI embeddings om elke tag en categorie om te zetten in een numerieke representatie. Vergelijkbare betekenissen krijgen vergelijkbare getallen—dus “AI strategie” ligt wiskundig dicht bij “AI”, ook al verschillen de woorden.

Zie het als GPS-coördinaten voor betekenissen. Verwante termen worden neighbors.

Stap 2: Bouw een stamboom van verwante termen

Gebruik hierarchical clustering om vergelijkbare termen te groeperen. Dit bouwt een boom die laat zien welke termen het meest verwant zijn—startend met losse termen onderaan, steeds verder samenvoegend, tot alles bovenaan verbonden is.

Stap 3: Vind de juiste afkapgrens

Snijd de boom af op een hoogte waarbij elke groep maximaal één kernonderwerp bevat:

  • Eén kernonderwerp per groep → Alle tags in die groep horen daarbij
  • Geen kernonderwerp → Dit zijn outliers die nergens passen
  • Meerdere kernonderwerpen → Snijd hoger af om ze te scheiden

Zo wordt elke tag aan precies één categorie gekoppeld, en items die nergens bij horen worden gemarkeerd.

De dendrogramvisualisatie

Zo ziet de clustering eruit voor onze data:

Hiërarchisch clustering dendrogram met 140 tags gegroepeerd in 27 onderwerpen

Hoe dit te lezen:

  • X-as: Elk blad is een tag of onderwerp. Kernonderwerpen zijn vetgedrukt.
  • Y-as: Afstand (hoe verschillend items zijn bij samenvoeging)
  • Takken: Laten zien welke items samengevoegd werden
  • De afkapgrens: Waar we de boom scheiden in groepen

Tags die onder de afkapgrens verbonden zijn, horen bij dezelfde groep—en worden allemaal gekoppeld aan het kernonderwerp van die groep.

Resultaten

We testten dit op echte data: 27 kernonderwerpen en 140 tags.

Sterke matches: 128 van de 140 tags werden netjes gekoppeld. Het algoritme draaide in ongeveer 30 seconden.

Hiaten vinden: 12 tags pasten nergens—“Blockchain,” “Rust,” “Flutter.” Geen fouten—ze laten zien over welke onderwerpen je schrijft maar waar je geen aparte pagina’s voor hebt. Automatisch contentstrategie-inzicht.

Consistent: Draai het meerdere keren, krijg steeds hetzelfde resultaat. Daardoor geschikt voor automatisering.

Waar dit nog meer werkt

Dezelfde aanpak werkt overal waar je wilde benamingen wilt bundelen in vaste categorieën:

Webshops: “Sneakers,” “trainers,” “hardloopschoenen” worden allemaal “Atletische Schoenen.”

Vacatureplatforms: “React.js,” “ReactJS,” “React developer” worden allemaal “React.”

Kennisbanken: Koppel vragen aan het juiste helpartikel, ook als ze het anders formuleren.

Content management: Houd tags consistent over schrijvers heen, zonder handwerk.

Het patroon: wilde benamingen bundelen in vaste categorieën door betekenis te begrijpen, niet alleen exacte matching.

Implementatie

We hebben de implementatie open-sourced als Google Colab notebook. Het notebook neemt:

  • Een lijst kernonderwerpen (jouw vaste categorieën)
  • Een lijst tags (de variaties die je wilt bundelen)

Het geeft terug:

  • Koppelingen van tags naar categorieën met betrouwbaarheidsscores
  • Dendrogram visualisatie die de hiërarchie laat zien
  • Lijst outliers (losse tags)
  • Exporteerbare JSON en CSV bestanden

Nodig: OpenAI API key voor embeddings. Het notebook bevat voorbeelddata om mee te testen.

Open notebook

Het belangrijkste inzicht: Anders naar het probleem kijken maakte de oplossing duidelijk. Zodra we stopten met denken “hoe matchen we woorden?” en begonnen met “hoe clusteren we op betekenis?”, werd de weg helder.

Heb je vergelijkbare vraagstukken rond tags en taxonomie? Neem contact op.

Wat zijn jouw technische uitdagingen?

We beginnen graag met een goed gesprek over jouw uitdaging en kijken samen naar de beste oplossing.

010 Coding Collective hackathon
t.w.v. € 3.750

Hackathon zonder risico

Doe mee aan een eendaagse hackathon waarin we jouw idee snel toetsen en uitwerken. Ben je niet van plan het resultaat te gebruiken? Dan betaal je niets – no questions asked.

Binnen één dag inzicht in technische haalbaarheid
Directe validatie bij gebruikers of investeerders
Voorkom dure technische misstappen