Praktijk voor gezondheidszorg: WordPress naar Next.js + Payload CMS migratie
Een orthopedische praktijk in het zuiden: van WordPress naar Next.js + Payload CMS
Een middelgrote orthopedische praktijk in het zuiden kwam naar ons met een probleem dat pijnlijk vaak voorkomt in de gezondheidszorg: hun WordPress-site was traag, hun patiëntinschrijvingsproces was een nachtmerrie van PDF-downloads en faxverzendingen terug, en hun IT-compliancemedewerker verloor nachten slaap over HIPAA-blootstelling. Zes maanden later hadden zij een Next.js-frontend, Payload CMS-backend, HIPAA-veilige formulieren voor patiëntinschrijving, en Lighthouse-scores die de websites van hun concurrenten doen lijken alsof zij draaien op een inbelsmodem. Hier is precies hoe wij dit hebben gedaan.
Inhoudsopgave
- Het startpunt: waarmee we werkten
- Waarom Next.js en Payload CMS
- HIPAA-overwegingen in een headless-architectuur
- Het herontwerp van patiëntinschrijving
- Prestatieresultaten en Lighthouse-scores
- Migratiestrategie: nul uitvaltijd, nul verloren rankings
- Technische architectuur: diepgravende analyse
- Geleerde lessen
- Veelgestelde vragen

Het startpunt: waarmee we werkten
De praktijk—laten we ze Southeastern Ortho noemen (NDA, u kent dat wel)—voerde WordPress uit sinds 2017. Hun setup was typisch voor een zorgpraktijk die organisch was gegroeid zonder veel technisch toezicht:
- WordPress 6.2 met 34 plugins (11 daarvan waren meer dan een jaar niet bijgewerkt)
- Gedeelde hosting op een plan dat €27/maand kostte
- Contact Form 7 verwerkte patiëntvragen—geen codering, geen BAA met de hostingprovider
- PDF-inschrijvingsformulieren die patiënten moesten downloaden, afdrukken, met de hand invullen en vervolgens faxen of naar afspraken meebrengen
- Laadtijden voor pagina's gemiddeld 6,8 seconden op mobiel
- Lighthouse-score mobiel: 38
Die Lighthouse-score is geen typefout. Achtendertig. De site had ongeoptimaliseerde hero-afbeeldingen (een was 4,2MB PNG), CSS die renderring blokkeerde van vijf verschillende plugins, en jQuery werd drie keer geladen vanwege pluginconflicten.
Maar het echte probleem was niet de prestatie. Het was risico.
Hun contactformulieren verzamelden patiëntnamen, telefoonnummers, en soms beschrijvingen van medische klachten. Die gegevens stroomden door een onversleutelde formulierplugin, werden opgeslagen in een WordPress-database op gedeelde hosting, en werden back-upt naar een service zonder Business Associate Agreement (BAA). Hun compliancemedewerker had dit gemarkeerd, en hun beroepsaansprakelijkheidsverzekering stelde scherpe vragen.
De briefing
De praktijk had nodig:
- Een snelle, moderne website die de kwaliteit van hun zorg weerspiegelde
- HIPAA-veilige patiëntinschrijvingsformulieren die het papierenproces vervingen
- Een CMS die hun kantoormanager kon bijwerken zonder een ontwikkelaar te bellen
- Betere SEO-prestaties (zij verloren lokale zoekrankings aan nieuwere praktijken)
- Dit alles zonder de portemonnee leeg te maken—zij zijn een zorgpraktijk, geen techstartup
Waarom Next.js en Payload CMS
We evalueerden verschillende architectuuropties. Hier is de eerlijke vergelijking die we aan de cliënt presenteerden:
| Optie | Voordelen | Nadelen | Geschatte kosten |
|---|---|---|---|
| WordPress-rebuild (nieuw thema + plugins) | Vertrouwd voor personeel, lagere initiële kosten | Dezelfde HIPAA-risico's, prestatieplafond, pluginafhankelijkheid | €14-23K |
| Webflow + formulieren van derden | Snel bouwen, goede prestaties | Beperkte HIPAA-complianceopties, lopende per-seat-kosten, vendor lock-in | €18-27K |
| Next.js + Payload CMS | Volledige controle, HIPAA-veilige architectuur, beste prestaties | Hogere initiële investering, vereist hostingbeheer | €32-45K |
| Next.js + Sanity | Geweldig bewerkingservaring, goed ecosysteem | Sanity's prijzen schalen met gebruik, PHI-verwerkingsvragen met cloud-hosted CMS | €27-41K |
We adviseerden Next.js met Payload CMS, en hier is waarom.
Next.js was de juiste frontend
Next.js 14 (dit project begon eind 2024, en we draaien inmiddels op versie 15) gaf ons precies wat een zorgwebsite nodig heeft:
- Statische generatie voor inhoudspagina's — artsen-bio's, servicebeschrijvingen, locatiegegevens. Deze pagina's veranderen zelden, dus we renderen ze vooraf op buildtijd. Nul serverberekening op aanvraagtijd betekent snelle TTFB.
- Server Components voor dynamische inhoud — beschikbaarheid van afspraken, blogposts en logica voor inschrijvingsformulieren profiteren allemaal van server-side rendering zonder onnodige JavaScript naar de client te sturen.
- Beeldoptimalisatie out of the box —
next/imagemet automatische WebP/AVIF-conversie vervangen die 4MB PNG's door correct gegrote, lazy-loaded afbeeldingen. - Middleware voor beveiligingsheaders — we gebruiken Next.js middleware om strikte CSP-headers, HSTS en andere beveiligingsheaders in te stellen die HIPAA-auditors graag zien.
Als u benieuwd bent naar onze aanpak, hebben we onze Next.js-ontwikkelingsmogelijkheden in meer detail gedocumenteerd.
Payload CMS was de juiste backend
We kozen Payload CMS 3.0 boven andere headless-opties om verschillende redenen die specifiek voor de gezondheidszorg gelden:
Zelf gehost bij ontwerp. Payload draait op uw eigen infrastructuur. Dit is niet-onderhandelbaar voor HIPAA. Wanneer u Protected Health Information (PHI) verwerkt, moet u precies weten waar uw gegevens zich bevinden, wie er toegang toe heeft, en moet u een BAA kunnen ondertekenen met uw infrastructuurprovider. Cloud-gehoste CMS-platforms zoals Contentful of Sanity slaan gegevens op op hun servers—en hoewel sommigen HIPAA-compliance aanbieden op ondernemingsniveaus, kost dit meestal 3-5 keer zoveel als wat u betaalt om Payload zelf te hosten op een HIPAA-geschikt platform.
TypeScript-inheems. De configuratie van Payload is gewoon TypeScript. Dit betekent dat onze inhoudsmodellen, API-reacties en frontend-typen allemaal dezelfde bron van waarheid delen. Wanneer de kantoormanager een nieuw veld voor "verzekeringsvoorautorisatienummer" aan het inschrijvingsformulier toevoegt, weet uw frontend ervan door gegenereerde typen.
Ingebouwde toegangscontrole. Payload's veldniveautoegangscontrole betekende dat we rollen konden maken waarbij de marketingpersoon blogposts en servicepagina's kon bewerken, maar niet naar patiëntinschrijvingsgegevens kon. De kantoormanager kon inschrijvingsverzendingen weergeven maar kon de formulierstructuur niet wijzigen. Deze granulariteit is belangrijk wanneer u toegangscontroles voor compliance documenterst.
Rich text goed gedaan. Payload gebruikt Lexical (eerder Slate) voor rich text, en de bewerkingservaring is echt goed. De kantoormanager van onze cliënt, die jaren WordPress had gebruikt, voelde zich binnen een enkele trainingsessie van 45 minuten op zijn gemak in Payload's admin panel.
We werken regelmatig met Payload en andere headless CMS-platforms—u kunt meer zien over onze headless CMS-ontwikkelingsbenadering.
HIPAA-overwegingen in een headless-architectuur
Laat me iets duidelijks zeggen: geen technische stack is "HIPAA-compliant" op zich. HIPAA-compliance is een organisatorische praktijk, geen softwarefeature. Wat een technische stack kan zijn is "HIPAA-veilig"—wat betekent dat het geen onnodig risico introduceert en de administratieve, fysieke en technische waarborgen ondersteunt die HIPAA vereist.
Dit is wat we implementeerden:
Infrastructuur
- Hosting: AWS met een ondertekende BAA. We gebruikten ECS Fargate voor de Payload CMS-container en implementeerden de Next.js-frontend op Vercel (wat geen PHI verwerkt—belangrijk onderscheid).
- Database: Amazon RDS PostgreSQL met codering in rust (AES-256) en codering onderweg (TLS 1.2+). Payload 3.0 ondersteunt Postgres inheems, wat een grote reden was dat we op v3 wachtten.
- Bestandsopslag: S3 met serverkant versleuteling, bucketbeleid dat toegang beperkt, en versiebeheer ingeschakeld voor audit trails.
Gegevensstroom voor patiëntinschrijving
Dit is waar de architectuur interessant wordt. Het patiëntinschrijvingsformulier bevindt zich op de Next.js-frontend, maar we verzenden PHI nooit door Vercel's infrastructuur.
Patiëntbrowser → HTTPS → API-route (Next.js op Vercel) → GEEN PHI opgeslagen hier
↓
AWS API Gateway (met WAF)
↓
Lambda-functie (valideert, versleutelt)
↓
Payload CMS API (op ECS Fargate)
↓
RDS PostgreSQL (versleuteld in rust)
De Next.js API-route fungeert als een dunne proxy. Het valideert de aanvraagstructuur (CSRF-token, rate limiting, basisveldvalidatie) maar logt of slaat geen PHI op. De werkelijke gegevensverwerking gebeurt geheel binnen AWS's HIPAA-geschikt services.
Versleutelingsgegevens
We implementeerden veldniveauversleuteling voor de meest gevoelige gegevens. Patiënten-SSN-fragmenten (laatste 4), verzekeringsnummers en beschrijvingen van medische klachten worden versleuteld op toepassingsniveau met AES-256-GCM voordat zij zelfs in de database terechtkomen. Dit betekent dat zelfs als iemand databasetoegang zou krijgen, zij versleutelde blobs voor gevoelige velden zouden zien.
// Vereenvoudigde versie van onze veldniveauversleutelingshook in Payload
import { encrypt } from '../lib/crypto';
const PatientIntake: CollectionConfig = {
slug: 'patient-intake',
hooks: {
beforeChange: [
async ({ data }) => {
if (data.ssnLastFour) {
data.ssnLastFour = await encrypt(data.ssnLastFour);
}
if (data.medicalComplaint) {
data.medicalComplaint = await encrypt(data.medicalComplaint);
}
return data;
},
],
},
access: {
read: ({ req: { user } }) => {
return user?.role === 'office-admin' || user?.role === 'provider';
},
create: () => true, // Openbare formulierindiening
update: ({ req: { user } }) => user?.role === 'office-admin',
delete: () => false, // Retentiebeleid - geen verwijderingen via CMS
},
fields: [
// ... velddefinities
],
};
Auditlogbestand
Elke toegang tot patiëntinschrijvingsgegevens wordt geregistreerd—wie het bekeek, wanneer en van welk IP-adres. We bouwden een aangepaste Payload-plugin die naar een aparte auditlogtabel schrijft. Deze tabel is alleen toevoegen; zelfs beheerdersgebruikers kunnen entries niet wijzigen of verwijderen. Tijdens de jaarlijkse HIPAA-risicobeoordeling van de praktijk werd dit audit trail specifiek aangehaald als een sterkte.

Het herontwerp van patiëntinschrijving
Het oude proces: Patiënt downloadt een 6-pagina PDF, drukt het af, vult het met een pen in (half de tijd onleesbaar), brengt het naar het kantoor, en een medewerker voert het handmatig in het EHR-systeem van de praktijk in. Gemiddelde tijd van download tot EHR-invoer: 3-5 werkdagen.
Het nieuwe proces: Patiënt ontvangt 48 uur vóór zijn afspraak een sms of e-maillink, vult het formulier met meerdere stappen op zijn telefoon in ongeveer 8 minuten in, en de gegevens zijn beschikbaar in het systeem van de praktijk voordat zij door de deur loopt.
Ontwerpbeslissingen voor formulieren
We verdeelden het inschrijvingsformulier in 7 stappen:
- Identiteitsverificatie (naam, geboortedatum, contactgegevens)
- Verzekeringsgegevens (maatschappij, ID, groepsnummer, foto van kaart)
- Medische voorgeschiedenis (aandoeningenchecklist, chirurgische voorgeschiedenis)
- Huidige medicijnen (met automatisch aanvullen uit een open formularium database)
- Reden voor bezoek (vrije tekst + lichaamsdiagram voor pijnlocatie)
- Instemming en overeenkomsten (e-signature-capture)
- Controleren en verzenden
Een paar UX-details die een echt verschil maakten:
- Voortgangsindicator met "Stap 3 van 7" reduceerde verlating met ongeveer 40% vergeleken met ons initiële prototype dat alle velden tegelijk toonde. We hebben dit A/B getest tijdens een zacht lanceringen.
- Verzekeringskaartfoto-upload met automatisch bijsnijden en een voorvertoning. Patiënten fotograferen de voor- en achterkant van hun kaart. Dit alleen elimineerde ongeveer 60% van de voorkantoor-gegevensinvoer.
- Medicijnautocomplete met de RxNorm API. In plaats van dat patiënten "hydroxychloroquine" proberen te spellen, typen zij "hydro" en selecteren uit een gefilterde lijst. Dit reduceerde medicijnvoeringsfouten aanzienlijk.
- Sessie persistentie — als een patiënt het formulier begint en wordt onderbroken, wordt de voortgang opgeslagen (versleuteld in sessionStorage, nooit localStorage) voor 30 minuten. Ze kunnen doorgaan waar ze waren gebleven.
// Medicijnautocomplete met RxNorm API
const useMedicationSearch = (query: string) => {
return useQuery({
queryKey: ['medications', query],
queryFn: async () => {
if (query.length < 3) return [];
const res = await fetch(
`/api/medications/search?q=${encodeURIComponent(query)}`
);
return res.json();
},
staleTime: 1000 * 60 * 5, // Cache voor 5 minuten
enabled: query.length >= 3,
});
};
Het serverzijdige medicijnzoekeindpunt doorzoekt RxNorm via onze AWS-backend, houdt de externe API-aanroep weg van de client en stelt ons in staat resultaten in cache op te slaan.
Prestatieresultaten en Lighthouse-scores
Hier is het voor en na:
| Metriek | WordPress (Vóór) | Next.js + Payload (Na) | Verbetering |
|---|---|---|---|
| Lighthouse Mobiel | 38 | 94 | +147% |
| Lighthouse Desktop | 61 | 99 | +62% |
| First Contentful Paint (Mobiel) | 4,2s | 0,8s | -81% |
| Largest Contentful Paint (Mobiel) | 8,1s | 1,4s | -83% |
| Total Blocking Time | 1.840ms | 45ms | -98% |
| Cumulative Layout Shift | 0,34 | 0,01 | -97% |
| Time to Interactive | 9,3s | 1,2s | -87% |
| Paginagewicht (startpagina) | 4,8MB | 340KB | -93% |
| Core Web Vitals Pass | Nee | Ja (alles groen) | — |
De mobiele Lighthouse-score van 94 (niet 100, en ik zal uitleggen waarom in een moment) werd gemeten op de patiëntinschrijvingspagina, wat de meest JavaScript-zware pagina op de site is. Inhoudspagina's zoals de startpagina en servicepagina's scoren consistent 98-100 op zowel mobiel als desktop.
Waarom niet een perfecte 100 op mobiel? Twee redenen:
- De medicijnautocomplete-widget vereist client-side JavaScript die ongeveer 12KB gzip-comprimering aan de inschrijvingsformulierpagina toevoegt.
- We gebruiken reCAPTCHA v3 op het inschrijvingsformulier als een botpreventielaag, en Google's reCAPTCHA-script is niet bepaald licht. We lazy-loaden het, maar het kost ons nog steeds enkele punten.
We hebben overwogen reCAPTCHA te verwijderen om 100 te bereiken, maar het beveiligingsvoordeel weegt zwaarder dan de ijdelheidsmetriek. Een zorgformulier voor inschrijving zonder botbeveiliging vraagt om spam-inzendingen vermengd met echte patiëntgegevens.
Migratiestrategie: nul uitvaltijd, nul verloren rankings
Het migreren van een zorgpraktijkwebsite is stressvol omdat uitvaltijd letterlijk gemiste patiëntafspraken betekent. Dit is hoe we het hebben aangepakt:
Inhoudsmigratie
We schreven een migratiescript dat inhoud uit de WordPress REST API haalde en deze transformeerde naar Payload CMS-documenten. Het script verwerkte:
- 47 servicepagina's
- 12 arts-/praktijkprofielenpagina's
- 89 blogposts (met afbeelding opnieuw hosten)
- 6 locatiepagina's
- Alle SEO-metagegevens (titels, beschrijvingen, canonieke URL's)
URL-toewijzing
Elke WordPress-URL werd toegewezen aan zijn Next.js-equivalent. We behielden waar mogelijk dezelfde URL-structuur en stelden 301-omleidingen in next.config.js in voor de handvol URL's die veranderden:
// next.config.js
const redirects = async () => [
{
source: '/services/:slug',
destination: '/orthopedic-services/:slug',
permanent: true,
},
{
source: '/team/:slug',
destination: '/providers/:slug',
permanent: true,
},
// ... 23 meer omleidingen
];
DNS-omschakeling
We gebruikten een blauw-groene implementatiestrategie. De nieuwe site draaide twee weken parallel terwijl we testeerden. Op omschakelingdag hebben we DNS-records bijgewerkt tijdens een onderhoudsvensteren op zondagavond. Totale zichtbare uitvaltijd: ongeveer 3 minuten (DNS-propagatie was snel omdat we TTL's een week eerder tot 60 seconden hadden verlaagd).
SEO-resultaten
Drie maanden na lancering:
- Organisch verkeer nam toe met 34%
- Gemiddelde positie voor "orthopedist in de buurt" verbeterde van positie 14 naar positie 5
- Click-through-rate van Google nam toe met 28% (betere Core Web Vitals = beter mobiel SERP-ervaring)
- Nul 404-fouten in Search Console voor eerder geïndexeerde URL's
Technische architectuur: diepgravende analyse
Voor hen die het volledige plaatje willen:
┌─────────────────────────────────────────────┐
│ Vercel │
│ ┌─────────────────────────────────────────┐ │
│ │ Next.js 15 App Router │ │
│ │ - Statische pagina's (ISR, 60s validatie) │ │
│ │ - Server Components │ │
│ │ - API-routes (alleen proxy, geen PHI) │ │
│ └─────────────────────────────────────────┘ │
└──────────────────┬──────────────────────────┘
│ HTTPS
┌──────────────────▼──────────────────────────┐
│ AWS (HIPAA BAA) │
│ ┌──────────────┐ ┌─────────────────────┐ │
│ │ API Gateway │ │ CloudFront (activa)│ │
│ │ + WAF │ └─────────────────────┘ │
│ └──────┬───────┘ │
│ │ │
│ ┌──────▼───────┐ ┌─────────────────────┐ │
│ │ ECS Fargate │──│ RDS PostgreSQL │ │
│ │ (Payload 3) │ │ (versleuteld) │ │
│ └──────┬───────┘ └─────────────────────┘ │
│ │ │
│ ┌──────▼───────┐ ┌─────────────────────┐ │
│ │ S3 (uploads) │ │ CloudWatch (logboeken) │ │
│ │ (versleuteld)│ │ (audit trail) │ │
│ └──────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────┘
Maandelijkse infrastructuurkost: ongeveer €163-198/maand op AWS (ECS Fargate is verrassend voordelig op deze schaal) plus €18/maand voor Vercel Pro. Vergelijk dat met de €27/maand gedeelde hosting waar zij eerder op zaten—ja, het is duurder, maar zij krijgen HIPAA-geschikt infrastructuur, automatische schaling en echte veiligheid.
Geleerde lessen
1. Begin HIPAA-gesprekken vroeg. We brachten drie weken door met architectuurplanning voordat we een enkele regel code schreven. Dit spaard ons op minstens twee potentiële hervorming.
2. Payload CMS v3 was het wachten waard. We begonnen dit project toen Payload 3.0 in bètafase was. Er waren ruwe randen—migratiedocumentatie was onvolledig, en sommige plugins waren nog niet bijgewerkt. Maar native Postgres-ondersteuning en de verbeterde admin-UI maakten het de juiste keuze.
3. Over-engineer het inschrijvingsformulier niet. Ons eerste prototype had voorwaardelijke logica zes niveaus diep. De kantoormanager keek ernaar en zei: "Kunnen we de vragen niet gewoon op volgorde stellen?" Zij had gelijk. We vereenvoudigden, en voltooiingspercentages gingen omhoog.
4. Zorgcliënten hebben begeleiding nodig bij CMS-training. We boden drie trainingsessies in plaats van onze gebruikelijke één, plus opgenomen Loom-video's voor veelvoorkomende taken. De investering in training betaalde zich in de eerste maand terug toen de kantoormanager een nieuwe artspagina kon toevoegen zonder een supportticket in te dienen.
5. Prestatiebudgetten zijn niet onderhandelbaar. We stelden aan het begin van het project een prestatiebudget van <400KB paginagewicht en <100ms Total Blocking Time in. Elke PR werd in CI tegen dit budget gecontroleerd. De ene keer dat we een geanimeerde illustratiebibliotheek probeerden toe te voegen, blies het het budget op, en we vingen het voordat het werd verzonden.
Als u een soortgelijke migratie overweegt voor een zorg- of gereglementeerde branchesite, zouden we graag met u over de specifieke details spreken. U kunt rechtstreeks contact met ons opnemen of onze prijspagina bekijken voor projectbereiken.
Veelgestelde vragen
Maakt het gebruik van Next.js en Payload CMS een site automatisch HIPAA-compliant? Nee. Geen enkele technische stack is inherent HIPAA-compliant. HIPAA-compliance vereist administratieve waarborgen (beleid, training, risicobeoordeling), fysieke waarborgen (faciliteittoegangscontrole) en technische waarborgen (codering, toegangscontrole, auditlogboeken). Wat Next.js en Payload CMS u geven is een flexibele architectuur waarin u de technische waarborgen correct kunt implementeren—vooral Payload's zelf-gehoste aard, wat u in staat stelt te bepalen waar PHI zich bevindt.
Waarom niet gewoon een HIPAA-compliant formulierservice gebruiken zoals Jotform of FormStack? U kunt dat absoluut, en voor eenvoudiger gebruiksgevallen is dat een redelijke keuze. We evalueerden Jotform's HIPAA-plan (€89/maand) en FormStack (€75/maand). Het probleem voor deze cliënt was integratiediepte—zij wilden dat de inschrijvingsgegevens in een aangepaste workflow stroomden die realtime verzekeringskwalificatie controleerde en hun EHR-systeem vooraf invulde. Off-the-shelf formuliertools konden dit niet aan zonder aanzienlijke middleware, en op dat moment bouwt u toch aangepaste infrastructuur.
Wat waren de totale projectkosten en timeline? Het project werd afgerond voor ongeveer €37.800 over 14 weken. Dit omvatte ontdekking en architectuurplanning (3 weken), ontwerp (2 weken), ontwikkeling (7 weken) en testen/migratie (2 weken). Lopend hosting en onderhoud is ongeveer €225/maand inclusief infrastructuurkosten en een kleine ondersteuningsovereenkomst.
Kan Payload CMS meerdere locaties voor een zorggroep verwerken? Ja. We bouwden een "Locaties"-collectie in Payload met velden voor adres, openingstijden, artsen, aanvaarde verzekering en locatiespecifieke inhoud. Elke locatie krijgt zijn eigen pagina gegenereerd door Next.js met gestructureerde gegevensmarkering (LocalBusiness-schema) voor lokale SEO. Het toevoegen van een nieuwe locatie is net zo eenvoudig als het maken van een nieuw item in Payload's admin panel.
Hoe gaat u om met vereisten voor bewaring en verwijdering van patiëntgegevens? We implementeerden automatische gegevenslevenscyclusbeleid. Inschrijvingsverzendingen worden 7 jaar behouden (overeenkomstig de voorwaarde medische verslagleggingsvereisten van de praktijk), waarna zij automatisch worden gearchiveerd naar S3 Glacier en uiteindelijk verwijderd. Patiënten kunnen ook om gegevenstoegang of -verwijdering verzoeken onder staatswetten op het gebied van privacy—we bouwden een beheerworkflow in Payload waarbij personeel deze verzoeken kan verwerken met een volledig audit trail.
Wat gebeurt er als de Payload CMS-server uitvalt? De Next.js-frontend serveer statisch gegenereerde pagina's van Vercel's CDN, dus de hoofdwebsite blijft online zelfs als de Payload-backend volledig offline is. Het patiëntinschrijvingsformulier zou niet beschikbaar zijn tijdens een backend-storing, maar we hebben ECS geconfigureerd met auto-herstart beleid, gezondheidscontroles elke 30 seconden, en CloudWatch-alarmen die zowel ons team als het IT-contact van de praktijk waarschuwen. In 6 maanden productie hebben we nul niet-geplande uitval gehad.
Is deze architectuur overkill voor een kleine praktijk met één locatie? Het hangt ervan af wat u met patiëntgegevens doet. Als u gewoon een brochuresite nodig hebt met een telefoonnummer en adres, is WordPress met een goed thema prima—u hebt niets hiervan nodig. Maar op het moment dat u PHI door uw website verzamelt (inschrijvingsformulieren, medische vragenlijsten, afspraakverzoeken met medische details), hebt u infrastructuur nodig die juiste beveiligingscontroles ondersteunt. De architectuur die we bouwden schaalt goed omlaag—een praktijk met één locatie zou minder kosten op infrastructuur omdat van lager verkeer.
Hoe beïnvloedde de migratie Google-rankings? We zagen kort na de migratie een fluctuatie in rankings (ongeveer 10 dagen), wat normaal is. Tegen week drie stabiliseerden de rankings en waren ze stijgend. Tegen maand drie was organisch verkeer omhoog 34% en de primaire trefwoorden van de praktijk verbeterden gemiddeld 4 posities. De Core Web Vitals-verbetering was de grootste factor—Google had hun oude site's slechte mobiele prestaties in zoekresultaten bestraft.