Ik maakte het ontwerp en de SEO-brief voor de nieuwe website van een dagspa in Amsterdam. De studio phi.studio bouwde hem op maat, zonder CMS-abonnement; hij staat sinds de avond van 12 oktober 2026 live. Wat ik laat zien is technisch en gecontroleerd op 29 oktober 2026. Over verkeer of rankings zeg ik niets, want Google Analytics is sinds de lancering niet vergelijkbaar.
26
adressen in de sitemap van www.thespa.amsterdam, gecontroleerd op 29 oktober 2026.
55
deeplinks op /massages, alle met een canonical naar /booking, gecontroleerd op 29 oktober 2026.
3
oude snelkoppelingen (/book-appointment, /couple-massage, /foot-massage) die met een 301 naar de juiste pagina gaan, gecontroleerd op 29 oktober 2026.
Bronnen: live controle met curl op www.thespa.amsterdam, 29 oktober 2026; Screaming Frog-crawl van de testsite, 8 oktober 2026.
The Spa Amsterdam kreeg een nieuwe website. De oude site moest vervangen worden zonder dat Google of gasten hun weg kwijtraakten, en zonder dat de boekingen uit beeld verdwenen.
The Spa Amsterdam is een dagspa in Amsterdam met massages en lichaamsbehandelingen. Gasten boeken online via Treatwell.
Ik begon bij de eisen, niet bij het scherm: welke adressen blijven, wat moet in de HTML staan en welke knop levert welke meting. Die eisen schreef ik als SEO-brief voor de bouwer. Het ontwerp maakte ik zelf. Daarna controleerde ik de site met een technische audit: een crawl van de testsite op 8 oktober 2026 en een live controle met curl op 29 oktober 2026. Wat de testsite beloofde, toets ik op de live site.
Ik wilde de code in een Git-repository, SEO-velden die via een API te bewerken zijn en geen CMS-abonnement. De studio phi.studio bouwde de site op maat. Astro was hun voorstel. Het ontwerp en de SEO-brief kwamen van mij.
Elke prijsknop verwijst naar /booking met de behandeling en de duur in het adres, bijvoorbeeld /booking?service=couples-massage-amsterdam&minutes=90. Op /massages staan 55 unieke deeplinks. De pagina /booking toont de Treatwell-widget, met de gekozen behandeling vooraf ingevuld.
De structured data staat in de server-HTML, niet in een script dat pas in de browser draait. Op de couples-pagina staan onder andere DaySpa, Service met Offer, FAQPage en BreadcrumbList. Elke deeplink heeft een canonical naar /booking, zodat Google één boekpagina ziet. Alle 55 deeplinks op /massages gaven op 29 oktober 2026 status 200 met die canonical.
Elke boekknop heeft een kort label (data-track), bijvoorbeeld Booking_cta_1. De site stuurt dat label als event rechtstreeks naar Google Analytics 4. Consent Mode staat op advanced met analytics_storage standaard op denied. Een container voor Google Tag Manager is klaargezet, maar niet geïnstalleerd: de live site gebruikt hem niet.
Een goedgekeurde tool kan met een API-sleutel pagina’s tonen en lezen en SEO-velden en blokken bijwerken. Op 14 oktober 2026 testte ik dat door een paginatitel te wijzigen en de live pagina te controleren.
Na de crawl van de testsite op 8 oktober 2026 gaf ik de bouwer een lijst van 16 punten. Op 29 oktober 2026 controleerde ik een deel live: de drie oude snelkoppelingen gaan met een 301 naar de juiste pagina, de sitemap telt 26 adressen en llms.txt geeft status 200 (op de testsite was dat 404). Twee punten blijven open: /blog is indexeerbaar met één bericht, en het besluit over de duo- en couples-pagina is nog niet genomen.
De site ging op de avond van 12 oktober 2026 live op Vercel. In de dagen erna controleerde ik indexering, canonicals, sitemap en redirects.
Het resultaat is technisch en controleerbaar. Het zijn geen verkeers- of rankingcijfers.
| Meting | Voor | Na | Bron |
|---|---|---|---|
| Adressen van bestaande pagina’s | Oude adressen | Dezelfde adressen, geen redirects nodig | Screaming Frog-crawl, 8 oktober 2026; curl, 29 oktober 2026 |
| Pagina /booking | 301 naar Treatwell | Eigen pagina met Treatwell-widget, status 200, canonical naar /booking | Screaming Frog, 1 oktober 2026; curl, 29 oktober 2026 |
| Deeplinks op /massages | Niet vergeleken | 55 unieke, alle status 200 met canonical naar /booking | curl, 29 oktober 2026 |
| Oude snelkoppelingen | Niet vergeleken | 3 van 3 met een 301 naar de juiste pagina | curl, 29 oktober 2026 |
| Sitemap | Niet vergeleken | 26 adressen | curl, 29 oktober 2026 |
| Structured data in de HTML | Niet vergeleken | DaySpa, Service met Offer, FAQPage en BreadcrumbList op de couples-pagina | curl, 29 oktober 2026 |
| llms.txt | 404 (testsite) | Status 200 | Launch-issuelijst, 8 oktober 2026; curl, 29 oktober 2026 |
| Consent Mode | Niet vergeleken | Advanced, analytics_storage standaard denied | Analytics-script op de live site, 29 oktober 2026 |
Naast de build zet ik de meting in Google Analytics 4 op, zodat te zien is langs welke pagina’s gasten naar de boekpagina lopen. Ik leg bij elke weergave uit wat hij wel en niet zegt. Hieronder staat de Path-exploration ‘Spa pad vooruit’, tabblad Organisch: de route van het eerste paginabezoek naar de pagina’s daarna.

Stand op 29 oktober 2026:
Geen migratie kan rankings beloven. Ik kan wel beschermen wat Google leest. Bestaande pagina’s houden hetzelfde adres, elke pagina heeft een canonical naar zichzelf, de structured data staat in de HTML en de sitemap telt 26 adressen. Drie oude snelkoppelingen gaan met een 301 naar de juiste pagina. Over rankings na de lancering doe ik in deze case geen uitspraak.
Structured data is code die Google vertelt wat een pagina is. Op 29 oktober 2026 staan in de HTML van de couples-pagina onder andere DaySpa, Service met Offer, FAQPage en BreadcrumbList. Het staat in de pagina zelf, zodat Google en AI-assistenten het lezen zonder scripts uit te voeren.
Boeken loopt via Treatwell. De pagina /booking toont de Treatwell-widget, zodat gasten boeken zonder thespa.amsterdam te verlaten. De deeplink van de knop kiest de behandeling vooraf.
Een directe link verbergt wat er vóór de boeking gebeurt. Op de boekpagina zie ik hoeveel gasten een boeking starten. Wat in Treatwell zelf gebeurt, zie ik in Analytics niet.
Elke boekknop heeft een kort label (data-track), bijvoorbeeld Booking_cta_1. De site stuurt dat label als event rechtstreeks naar Google Analytics 4. Een container voor Google Tag Manager is klaargezet, maar niet geïnstalleerd.
Ja, via een MCP-connector. Een goedgekeurde tool kan met een API-sleutel pagina’s tonen en lezen en SEO-velden en blokken bijwerken. Op 14 oktober 2026 testte ik dat door een paginatitel te wijzigen en de live pagina te controleren.
Een deeplink is een link die een pagina opent met de keuze al ingevuld. Elke prijsknop op /massages verwijst naar /booking met de behandeling en de duur in het adres. Alle 55 deeplinks op /massages hebben een canonical naar /booking, gecontroleerd op 29 oktober 2026, zodat Google één boekpagina ziet.
Ik wilde de code in een Git-repository, SEO-velden die via een API te bewerken zijn en geen CMS-abonnement. De studio phi.studio bouwde de site met Astro, hun voorstel. Het ontwerp en de SEO-brief schreef ik zelf.
De site vraagt toestemming voordat Google Analytics een bezoek telt, met analytics_storage standaard op denied. Bezoekers die weigeren of de banner negeren, tellen niet mee. Analytics toont dan minder sessies zonder dat er minder mensen komen, dus ik gebruik de cijfers van na 12 oktober 2026 niet als resultaat.
hello@sahardid.comAmsterdam