Een resortwebsite die Google, social media en AI-assistenten echt kunnen lezen
Polargate maakte van de tweetalige website van een Caribisch resort met 349 kamers een volledig statische, beveiligde site met gestructureerde data voor AI-zoekmachines, en houdt die bij met een maandelijkse retainer en een automatische audit op de eerste dag van elke maand.

- 22
- publieke routes vooraf gerenderd als statische HTML
- 2
- talen met wederzijdse hreflang (ES/EN)
- 98 KB
- mobiele hero-afbeelding, terug van circa 288 KB
- 136 KB
- social-previewafbeelding, terug van 1,74 MB
- 33
- bevestigde bevindingen opgelost in de auditcyclus van augustus 2026
- 3
- P0-problemen opgelost en live geverifieerd in juni 2026
Het probleem
De site zag er goed uit en las prettig, maar crawlers zagen iets anders. De inhoud werd pas in de browser opgebouwd, dus elke subpagina gaf Google, social scrapers en AI-assistenten de titel, canonical en Open Graph-tags van de homepage mee. Onbekende URL's antwoordden met HTTP 200 in plaats van een echte 404. De Content-Security-Policy stond in een meta-tag, waar de browser de clickjacking-regel negeert. De gestructureerde data bevatte een gemiddelde beoordeling die naar geen enkele echte bron te herleiden was. En de backend hing nog altijd aan het no-codeplatform waarop de site was opgezet.
Wat we bouwden
Polargate voerde een black-box- en white-box-audit uit op vier pijlers (beveiliging, SEO, structuur en zichtbaarheid in AI-zoekmachines) en herstelde de site in fasen. Eerst echte HTTP-beveiligingsheaders, daarna een echte 404-pagina en een statische head per route, en vervolgens een volledige verhuizing weg van het no-codeplatform naar een eigen Supabase-project en een statische build met vite-react-ssg. Alle 22 publieke routes leveren nu complete HTML in het Spaans en het Engels, met schema.org-graphs die uit de vertaalbestanden worden gegenereerd, llms.txt en llms-full.txt, en een robots.txt die AI-crawlers toelaat.
Het resultaat
De drie P0-bevindingen van juni 2026 zijn opgelost en in productie geverifieerd, en de augustuscyclus loste 33 bevestigde bevindingen op. De site levert nu complete HTML per route en per taal aan Google, social scrapers en AI-assistenten, draait op infrastructuur die Polargate volledig zelf beheert en laadt een mobiele hero-afbeelding van ongeveer 98 KB in plaats van 288 KB. Een geplande audit bekijkt site en repository op de eerste dag van elke maand en rapporteert; deployen doet die nooit zelf. Polargate claimt hier geen bezoekers- of boekingscijfers: commerciële resultaten hangen van veel meer af dan van een website.
Stack
- React
- Vite
- TypeScript
- Tailwind CSS
- shadcn/ui
- React Router
- TanStack Query
- Supabase
- PostgreSQL
- Deno
- Resend
- Vercel
- Node.js
- GA4
- Search Console
- GitHub
- Claude
- OpenAI
Het uitgangspunt
Hotel Marien is een allesinclusief 4-sterrenresort met 349 kamers in Puerto Plata, aan de noordkust van de Dominicaanse Republiek. Polargate ontwierp en bouwde de tweetalige website, opgeleverd in maart 2026, en onderhoudt die sindsdien met een maandelijkse retainer. Het project omvatte de Paraty Tech-boekingsengine, technische en contentgerichte SEO, beveiligingshardening, hosting en back-ups, en het inrichten van analytics met GA4, Tag Manager en Search Console. Sinds juli 2026 gebruikt het hotel ook een gastenapp in eigen huisstijl op Estevano, het hotelplatform van Polargate, op marien.estevano.com: een AI-conciërge, reserveringen voor restaurant en spa, roomservice en meldingen, met een QR-poster voor de receptie die uit de merkkleuren van het hotel is gegenereerd.
Wat de audit liet zien
In juni 2026 voerde Polargate een black-box- en white-box-audit uit op vier pijlers: beveiliging, SEO, structuur en zichtbaarheid in AI-zoekmachines.
- Onbekende URL's gaven HTTP 200 terug in plaats van een echte 404, waardoor zoekmachines typefouten en dode links als geldige pagina's behandelden.
- De Content-Security-Policy stond in een meta-tag, waardoor de frame-ancestors-regel nooit werkte en de bescherming tegen clickjacking niets deed.
- Elke subpagina gaf de titel, canonical en Open Graph-tags van de homepage mee, omdat de inhoud pas in de browser werd opgebouwd.
- De gestructureerde data bevatte een gemiddelde beoordeling die niet aan een echte bron te toetsen was.
Drie daarvan waren P0. Alle drie zijn dezelfde maand opgelost en in productie geverifieerd.
Wat we opnieuw hebben gebouwd
- Echte HTTP-beveiligingsheaders: CSP met frame-ancestors none, X-Frame-Options DENY, HSTS met preload, nosniff, Referrer-Policy en Permissions-Policy.
- Eerst een statische head per route, daarna een volledig statische build met vite-react-ssg op Vite, React en TypeScript, met Tailwind en shadcn/ui in de interface. Alle 22 publieke routes leveren complete HTML in het Spaans en het Engels, met wederzijdse hreflang en één centrale routebron in de code.
- Een volledige verhuizing weg van het no-codeplatform naar een eigen Supabase-project: het contactformulier als Deno edge function, met CORS beperkt tot het hoteldomein, een honeypot aan serverzijde, geforceerde RLS op de berichtentabel en verzending via Resend vanaf een geverifieerd subdomein.
- Schema.org-graphs die uit de vertaalbestanden worden gegenereerd: Hotel, vijf HotelRoom-nodes, vijf Restaurant-nodes, de spa, FAQPage, BreadcrumbList en een WebPage-node met dateModified en speakable. Plus llms.txt en llms-full.txt, en een robots.txt die AI-crawlers toelaat en bandbreedteslurpers blokkeert.
- De oncontroleerbare beoordeling is vervangen door de echte TripAdvisor-score van het hotel en twee zichtbare gastreviews, met links naar de geverifieerde profielen op TripAdvisor, Booking en Google Maps.
Hoe het nu draait
De site draait op Vercel met DNS in Route 53, en de analytics loopt via GA4, Tag Manager en Search Console, pas na toestemming. Het performancewerk bracht de mobiele hero-afbeelding met srcset terug van ongeveer 288 KB naar ongeveer 98 KB, en de social-previewafbeelding van 1,74 MB naar 136 KB. Op de eerste dag van elke maand bekijkt een geplande Claude-routine de live site en de repository (AI-zoekmachines, Core Web Vitals, kapotte zaken, beveiliging), verifieert elke bevinding kritisch en rapporteert. Deployen doet die routine nooit zelf. Polargate beoordeelt de bevindingen, voert de fixes door en stuurt de hoteldirectie een onderhoudsrapport in begrijpelijke taal.
Vragen over dit project
Hoe lang heeft dit geduurd?
Kunnen jullie dit doen met onze boekingsengine?
Onze site is op een no-codeplatform gebouwd. Valt die te redden of moeten we opnieuw beginnen?
Komt ons hotel hierdoor in ChatGPT en de AI-antwoorden van Google?
Wat houdt het maandelijkse onderhoud precies in?
Gerelateerd werk
Global Dynamic Security GroupMerk en tweetalige site voor Global Dynamic Security Group
Huisstijl, een handboek van 15 pagina's en een tweetalige bedrijfssite (Spaans en Engels) voor Global Dynamic Security Group (GDS), een beveiligingsgroep in de Dominicaanse Republiek, opgeleverd als één project met een vaste prijs.
2026Bekijk de case
Hotel TalaveraEen tweetalige hotelsite die crawlers en AI-assistenten wél kunnen lezen
Een viersterrenhotel in Castilla-La Mancha had een site die zoekmachines als een lege container binnenkregen. Polargate bouwde die om tot 16 voorgerenderde tweetalige URL's en beheert hem nu met een maandelijkse Care-retainer en een terugkerende auditcyclus.
2026Bekijk de case
Santo Domingo BayDe site van een Caribisch resort herbouwd als statische HTML, met een AI-conciërge erachter
Polargate herbouwde de tweetalige website van een Caribisch congresresort met casino op Vite, React en een eigen Supabase-project, prerenderde de 38 Spaanse en Engelse routes naar statische HTML en koppelde het hotel aan Estevano, waarvan de AI-conciërge echte gastverzoeken in zes talen afhandelt.
2026Bekijk de case
Start de motor
Vertel ons in een paar korte vragen wat je bouwt. Een senior engineer antwoordt binnen twee werkdagen schriftelijk met een eerste inschatting van scope, planning en prijs.