Migratie

Niet één medische site, maar de fabriek erachter

De vorige website voor OsteosOnline kostte ongeveer 25.000 euro.

Dat is zo'n bedrag waar je achteraf heel rustig over probeert te doen, terwijl je perfect weet dat daar ook een kleine auto in zat. Of een paar maanden ademruimte. Of, in dit geval, waarschijnlijk vijf nieuwe systemen waar niemand in de buurt iets van begrijpt.

Het traject was klassiek. WordPress. Externe mensen. Figma. Calls. Feedback. Nog eens feedback. Dan iets dat bijna goed is, maar net niet. Dan toch live, omdat je op een bepaald moment gewoon moe bent van het project en wilt dat het gedaan is.

En het rare is: zo'n site werkt dan wel. Patiënten vinden je. Google kent de pagina's. De locaties staan erin, de teksten staan erin, alles draait.

Maar je bezit het niet echt.

Niet op de manier waarop iets van jou zou moeten zijn. Voor elke wijziging hang je weer aan iemand. Voor elke structurele verbetering zit je weer in een systeem dat daar niet voor gemaakt is. WordPress is fantastisch als je een blog wilt. Maar voor een netwerk van medische praktijken, met locaties, klachtenpagina's, boekingsflows, tracking, structured data, redirects en later misschien rapportage per praktijk, begint het te voelen alsof je een vrachtwagen bestuurt vanuit een tuinstoel.

Dus moest er iets stoms gebeuren. De sites gingen opnieuw, vanaf nul.

Niet als "we maken een mooier design". Dat is de zichtbare laag. De echte vraag was of er een machine te bouwen viel die zo'n site kan dragen. Niet één pagina, niet één landing. Een echte medische site, met honderden URL's waar Google al iets van vindt, en waar je dus niet zomaar creatief mee moet doen.

Voor OsteosOnline België lag er een baseline van 352 URL's. Voor Nederland 653. Dat zijn geen marketinggetallen, dat zijn verhuisdozen. Elke URL is een doos waar iets in zit dat niet kapot mag. Een locatiepagina. Een klachtpagina. Een oude WordPress-route. Een taalvariant. Een stuk zoekverkeer dat je niet per ongeluk in de prullenbak kiepert.

Het werk begint daar dus niet met design.

Het begint met angst.

Gezonde angst. De soort die zegt: dit manueel goed krijgen over honderden pagina's, dat lukt nooit zonder vangnet. En dus bouw je een systeem dat jou controleert in plaats van andersom.

De nieuwe sites draaien op Next.js. De content zit in getypeerde bestanden, niet ergens verstopt in een CMS waar je met vijf klikken moet zoeken waar een zin staat. Locaties zitten in data. Osteopaten zitten in data. Klachten zitten in data. De sitemap wordt uit die data opgebouwd. De structured data ook. Canonicals en hreflang volgen dezelfde logica. De site is niet langer een verzameling pagina's. Het is een model.

Dat klinkt misschien saaier dan "AI heeft mijn site gebouwd", maar dat is juist het punt. AI die zomaar code schrijft is een stagiair met cafeïne. Een systeem dat weet waar de data zit, welke routes moeten bestaan, welke redirects moeten blijven werken, welke pagina's indexeerbaar zijn en welke niet, dat is iets anders. Dat begint op een fabriek te lijken.

Bij België draaide eerst de basis: homepage, drie locaties, de grote ondersteunende pagina's, FAQ, over ons, ervaringen. Daarna kwamen de gezondheidsklachten erbij: 251 klacht-slugs als routebasis, met eerst de belangrijkste WordPress-content. Bij Nederland ging het verder: 7 locaties, 251 klacht-slugs, 224 echt gemigreerde WordPress-klachtpagina's, een sitemap van honderden URL's.

Dat is het soort zin waar op een verjaardag niemand op zit te wachten. Maar dat is precies het verhaal.

Want vanaf dat moment is een site niet meer "een site". Het is iets dat je kunt uitbreiden zonder telkens opnieuw bang te zijn. Een locatie toevoegen. Een klachtpagina verbeteren. Baby-landingspagina's bouwen. Booking events meten. Zien welke route iemand neemt voor hij een afspraak maakt. Een oude WordPress-URL laten binnenkomen en netjes naar de juiste nieuwe plek sturen, alsof er nooit iets gebeurd is.

Dat laatste is belangrijk, want Google houdt niet van mensen die verhuizen zonder adreswijziging. Dus zitten er redirects in. Oude /osteopaat/-routes gaan naar de nieuwe locatiepagina's. Oude taalvarianten worden opgeruimd. Rommel zoals xmlrpc.php, dat WordPress-spook waar bots graag aan trekken, krijgt gewoon een 410. Weg ermee. Geen drama, geen ceremonie.

En dan de tests. Want "alles werkt" zeggen mensen veel te snel. In die repo's staan Playwright-tests die controleren of de belangrijkste routes laden, of de sitemap bestaat, of robots.txt antwoordt, of de redirects doen wat ze moeten doen, of de homepage MedicalOrganization JSON-LD heeft, of locatiepagina's MedicalClinic JSON-LD dragen, of FAQPage JSON-LD bestaat, of canonical en hreflang juist staan, of de security headers er zijn.

Geen sexy werk. Wel het werk waar je van kunt slapen. Bij Nederland stond er op een bepaald moment 220 E2E-tests groen in de documentatie. Dat is niet "ik hoop dat het werkt". Dat is een machine die zegt: ik heb gekeken.

En het mooie: de tweede site was geen opnieuw beginnen. Nederland was een fork van België, daarna aangepast aan de Nederlandse markt. Andere locaties, andere zorgverzekeraars, andere osteopaten, andere booking-ID's, andere WordPress-teksten. Zelfs de booking-URL's bleken niet simpel, want dezelfde osteopaat kan per locatie een ander ID hebben. Natuurlijk. Want waarom zou iets makkelijk zijn als het ook medisch-administratief gezellig kan.

Precies daarom moest het in data. Niet in losse pagina's, niet in copy-paste, maar in een structuur waar de complexiteit een plaats krijgt.

Dat is wat er vroeger niet was. Vroeger was er een website. Nu staat er een fabriek.

En ja, die fabriek ziet er aan de buitenkant gewoon uit als een website voor iemand met rugpijn die een osteopaat zoekt in Breda, Antwerpen of Londerzeel. Dat hoort ook zo. Een patiënt mag niet voelen dat daaronder een halve machinekamer draait. Die wil weten: kan iemand mij helpen, waar moet ik zijn, en kan ik een afspraak maken?

Maar onder die rustige voorkant zit iets dat veel meer waard is dan een mooi design: eigenaarschap. Een tekst aanpassen is geen ticket meer. Een nieuwe pagina testen is geen project. Willen weten welke campagnes of routes boekingen brengen, dat wordt gewoon in de loop gebouwd. En als er iets breekt, begint de test te roepen voor Google of een patiënt het merkt.

De les was dus niet "ik heb met AI twee medische sites gebouwd". Dat is te klein. De les was dat 25.000 euro leergeld precies duidelijk maakte wat er eigenlijk gebouwd moest worden. Niet nog een website. Een systeem waarmee websites beheersbaar worden.

Eerst betaalde je voor een resultaat. Daarna bouw je de machine die resultaten blijft maken.

Klaar om jouw infrastructuur te bouwen?

Vertel me over je workflow. Ik laat zien wat er mogelijk wordt.

Begin met een gratis kennismakingsgesprek

Beschrijf je huidige setup. Ik breng in kaart hoe een AI-versterkte versie eruit kan zien. Geen pitch, geen verplichting. Gewoon helderheid.

Plan een gratis kennismaking

Of mail direct: kris@coel.ai