De filterbare catalogus die scoort in Google

De situatie

Stel: je bouwt voor een uitzendbureau een vacaturebank met tweehonderd vacatures. (Hetzelfde patroon geldt voor woningen bij een makelaar, producten in een webshop of projecten in een portfolio.) Je wilt drie dingen tegelijk, en ze moeten elkaar versterken:

  1. Bezoekers moeten snel filteren — op plaats, dienstverband, vakgebied.
  2. Elke vacature krijgt een eigen, deelbare detailpagina met een nette URL die blijft werken.
  3. Google moet elke vacature als vacature herkennen (een rich result met logo, plaats en salaris), niet als "zomaar een pagina".

De valkuil is dit als drie losse klussen aanpakken: een lijstje bouwen, losse pagina's maken, en achteraf "iets met SEO doen". In Mach3Blocks is het juist één samenhangende opzet rond een collectie — goed opgezet verzorgt die opzet alle drie tegelijk, of je nu 10 of 1000 items hebt.

Het principe: één collectie, vier opbrengsten

Een collectie is je databron. Uit die ene bron rolt automatisch:

  • de overzichtspagina (de lijst),
  • de detailpagina (één template die zich per item vult),
  • de filtering (op tags),
  • en de SEO (per-item meta + structured data + nette URL's).

Verander je een item, dan beweegt alles mee. Dat is de kern: je onderhoudt data, geen losse pagina's.

Stap voor stap

1. Ontwerp eerst je velden — dit bepaalt de rest

Voordat je één pagina bouwt, bepaal je de velden per item. Voor de vacaturebank bijvoorbeeld: functietitel, plaats, dienstverband, vakgebied, salarisindicatie, omschrijving en een beeld.

Waarom eerst: je velden voeden straks je filter (waarop kan iemand filteren?), je detailpagina (wat toon je?) én je structured data (wat geef je aan Google door?). Een veld dat je nu vergeet, kom je op alle drie de plekken tekort. Zie Collecties: complete handleiding.

2. Bouw je filter met taggroepen en tags

Filteren werkt op tags, geordend in taggroepen. Voor de vacaturebank maak je bijvoorbeeld de taggroepen Plaats (Amsterdam, Rotterdam, Utrecht), Dienstverband (Vast, Tijdelijk, Bijbaan) en Vakgebied (Zorg, Techniek, Kantoor). Elke vacature krijgt de passende tags.

Denk vooruit: taggroepen zijn niet alleen je filter, ze zijn ook hoe bezoekers je aanbod in hun hoofd ordenen. Kies een handvol betekenisvolle groepen; tientallen losse tags maken het filter onbruikbaar.

3. Ontwerp de detailpagina als één template

Je bouwt geen 200 pagina's — je bouwt één template die zich voor elke vacature vult. Je plaatst elementen (kop, tekst, beeld) en koppelt ze aan de collectievelden. Gebruik objectwaardes (zoals de functietitel van het item) in koppen, tekst en zelfs de paginatitel, zodat elke detailpagina automatisch klopt — en meebeweegt als de data verandert.

4. Zet de collectie op je overzicht en koppel het filter

Plaats het collectieblok op de overzichtspagina en voeg een filter-element toe. Het filter toont per taggroep de aanvinkbare tags en filtert de lijst live; de opties komen automatisch uit de tags van de gekoppelde collectie. Bij grote aantallen combineer je dit met paginering op diezelfde collectie, zodat de pagina snel blijft.

5. Zet de SEO neer waar het scoort

Hier verandert "een overzicht" in "een overzicht dat gevonden wordt":

  • Per-item meta — geef elke vacature een eigen paginatitel en meta-omschrijving. Gebruik ook hier objectwaardes, zodat het schaalbaar blijft.
  • Stabiele URL's met nano-ID's — zo blijft een gedeelde vacaturelink werken, ook als de functietitel later verandert.
  • 301-redirects — wijzigt een URL toch, dan verwijst de oude automatisch door: geen doodlopende links, geen SEO-verlies.
  • Structured data (JSON-LD) op twee niveaus — via de collectie-code-instellingen zet je het op het overzicht (bijvoorbeeld een lijst) én op de detailpagina. Je schrijft de JSON-LD zelf — er is geen keuzelijst; je kiest het juiste @type (voor vacatures JobPosting, voor producten Product, voor evenementen Event) en vult de velden met objectwaardes, zodat per vacature automatisch de juiste plaats, datum en salaris in de structured data staan. Mach3Blocks voegt bovendien automatisch een breadcrumb toe.

Zie Structured data op collecties en Collectie SEO-instellingen: URL en nano-ID's.

Het onderste uit de pan

  • Velden vóór pagina's. Je datamodel bepaalt de kwaliteit van filter, detailpagina én SEO. Investeer hier vijf minuten extra.
  • Structured data koppel je aan velden, niet met de hand. Doe je het handmatig per item, dan loopt het uit de pas zodra data verandert; via objectwaardes blijft het kloppen — ook bij 1000 items.
  • Kies het structured-data-type bewust: JobPosting/Product/Event bepaalt hóé Google je rich result toont. Het verkeerde type betekent geen (of een misleidende) rich result.
  • Taggroepen zijn navigatie én structuur. Ze sturen je filter én hoe overzichtelijk je aanbod aanvoelt.
  • Komt je data uit een extern systeem (ATS, PIM, voorraad)? Zet bovenstaande dan op met een externe-data-collectie — zie de use-case Live data uit een extern systeem tonen.

Wanneer welke keuze?

  • Zelf beheren of externe data? Beheer je de items zelf → gewone collectie. Komen ze uit een ander systeem → externe-data-collectie (read-only).
  • Wel of geen detailpagina? Korte items (zoals teamleden) kunnen met alleen een overzicht; rijkere items (vacatures, producten) verdienen een detailpagina met eigen URL en structured data.

Het resultaat

Eén collectie-opzet die tegelijk je navigatie (overzicht + filter), je detailpagina's (template + stabiele, deelbare URL's) én je vindbaarheid (per-item meta + het juiste structured-data-type + breadcrumb) verzorgt. Voeg je morgen vijftig vacatures toe, dan staan ze meteen in het filter, hebben ze een detailpagina en zijn ze correct opgemaakt voor Google — zonder één extra pagina te bouwen.