# Technologie-analyse — www.back2thegym.nl

*Meting 2026-09-04 door MagicEverse. Bronnen: HTTP-headers, HTML/CSS van home + 8 subpagina's, WordPress REST API, DNS, TLS, Wayback Machine, asset-download. Ruwe data in `_raw/scan.json`.*

---

## 1. Samenvatting

Back2thegym draait op een **recente, goed onderhouden WordPress-site** (oktober 2024 gebouwd, tot eind augustus 2026 bijgewerkt) met het Flatsome-thema op shared hosting. De site is een **marketingsite**: proefles boeken, inschrijven, lesreservering en de (nog lege) shop lopen allemaal via **Sportbit**, de ledenadministratie met eigen app. Technisch is de basis in orde (actuele WP-versie, HSTS, TLS 1.3, SEO-plugin, responsive), maar er zijn vier duidelijke zwakke plekken:

1. **Privacy/AVG:** Meta Pixel, Google Analytics 4, Trustindex en reCAPTCHA laden vóór toestemming; het `_fbp`-cookie wordt al bij het eerste request gezet. Er is geen cookiebanner.
2. **Performance:** een hero-video van **18 MB** speelt automatisch op elke bezoeker, ook mobiel. Daarnaast staan originele foto's van 8-25 MB per stuk op de server.
3. **Security-hygiëne:** geen CSP / X-Frame-Options / X-Content-Type-Options / Referrer-Policy; gebruikersnaam van de beheerder is openbaar via de REST API; `readme.html` en de generator-tag lekken de WP-versie.
4. **Afgeraffelde content:** `/shop/` staat live met *Lorem ipsum*, plus "Sample Page", "Hello world!" en dubbele pagina's — allemaal in de sitemap.

Leeftijd: domein online sinds ten minste **december 2012**; de huidige site is **oktober 2024** neergezet (bijna 2 jaar oud) en wordt actief onderhouden.

## 2. Platform en stack

| Onderdeel | Bevinding |
|---|---|
| CMS | WordPress **6.9.7** (actueel), taal nl-NL, generator-tag zichtbaar |
| Thema | **Flatsome 3.19.6** (UX-Themes, ThemeForest; een WooCommerce-thema, maar WooCommerce is **niet** actief) |
| Page builder | Flatsome UX Builder (secties, banners, tegels, dividers) |
| Formulieren | Gravity Forms + reCAPTCHA-add-on (contactformulier `gform_1`) |
| Plugins zichtbaar | Yoast SEO, Google Site Kit 1.186, GTM4WP, GS Logo Slider (Swiper + Tippy), WP WhatsApp Chat (QuadLayers), Trustindex (Google-reviews), Buttonizer, Redirection, Use Any Font |
| Ledenadministratie | **Sportbit** (`back2thegym.sportbitapp.nl`): registreren, proeflesplanner/kalender, ingebedde shop (XHR naar `cbm/embed/shop/web/`), app `com.dexos.sportbit.back2thegym` (Google Play / App Store) |
| JavaScript | jQuery 3 + jquery-migrate, Flatsome.js, live-search, Swiper 144 KB, Tippy 42 KB, WhatsApp-widget 80 KB |
| Fonts | Kimberley (zelf gehost woff2 via Use Any Font), Dancing Script (lokaal gehost), fl-icons; body = systeemfont |
| Analytics/marketing | GA4 `G-ZR735JDBY0` (via Site Kit/gtag), Meta Pixel `1065419184281377`, Trustindex reviews, WhatsApp-chat (wa.me/31683123043) |

## 3. Hosting, DNS en TLS

| Onderdeel | Bevinding |
|---|---|
| IP / host | 141.138.169.214 — `s214.webhostingserver.nl` (Previder B.V., AS20847, Lelystad) → **shared hosting** bij Webhostingserver.nl |
| Webserver | Apache, HTTP/1.1 met `Upgrade: h2c`-header; geen CDN, geen zichtbare cache-headers |
| DNS | `webhostingserver.g1-dns.com` / `.one` |
| Mail | MX `mail.back2thegym.nl` (zelfde hoster); SPF `v=spf1 a mx include:_spf.webhostingserver.nl ~all`; DMARC `p=quarantine` ✅ |
| TLS | Let's Encrypt, TLS 1.3, geldig tot 11-10-2026; certificaat dekt ook **fit2theoffice.nl** (zusterdomein op dezelfde hosting) |
| HSTS | `max-age=63072000; includeSubdomains; preload` ✅ |
| TTFB | ± 0,47 s (twee metingen), HTML 143 KB |

## 4. Leeftijd en onderhoud

| Signaal | Datum |
|---|---|
| Eerste Wayback-snapshot | 15-12-2012 (site jaarlijks gearchiveerd t/m 2025) |
| Huidige site gebouwd | 17–22 oktober 2024 (alle 25 kernpagina's aangemaakt in die week; favicon/logo geüpload okt 2024) |
| Laatste structurele uitbreiding | feb–apr 2026: bevestigingspagina's proefles, Privacy, Algemene voorwaarden, Huisregels, Zakelijk, Vacatures, Shop |
| Laatste wijziging | Lesrooster 29-08-2026 |
| Media | 100+ uploads, pieken feb/mrt 2026 (52 items), 36 mp4-video's in de mediabibliotheek |
| Auteur | één WP-account (`b2tg`, "JD Laagewaard") |

Conclusie: de site is **jong en levend**. Er wordt regelmatig content bijgehouden (rooster, tarieven), maar er is geen ontwikkelaar/bureau die de technische kant bewaakt (zie §6 en §7).

## 5. Performance

| Meting | Waarde |
|---|---|
| HTML homepage | 143 KB |
| Same-origin assets op home | 39 bestanden, **2,0 MB** |
| Hero-video | `Website_Horizontal_V2_final_lr.mp4` **18,1 MB**, autoplay + playsinline (dus ook op mobiel) |
| Grootste afbeeldingen (geserveerd) | funboksenkids 252 KB, 20250326_172942 162 KB, B153 117 KB — prima |
| Originele uploads op de server | B108.jpg **24,6 MB**, B153.jpg 23,6 MB, B130.jpg 21,4 MB, B6.jpg 16,7 MB, B74.jpg 12,8 MB — camerabestanden ongecomprimeerd geüpload |
| JS-totaal | ± 480 KB (jQuery, Swiper, Tippy, WhatsApp, Flatsome, Site Kit, gtag, reCAPTCHA) |
| Externe calls | Google Tag Manager/gtag, Facebook `tr`, Trustindex CDN, Google reCAPTCHA, googleusercontent (review-avatars), Sportbit-CSS |

**Beoordeling:** desktop op wifi acceptabel; op 4G is de video de grote boosdoener (18 MB voordat de pagina "af" voelt, en dataverbruik voor de bezoeker). WordPress serveert wel netjes verkleinde afbeeldingen (1024 px, 60-250 KB), maar de originelen van 20+ MB staan open op vaste URL's en vullen de hosting-quota. Geen lazy-loading van de video, geen poster-frame, geen WebP/AVIF.

## 6. Security

| Check | Resultaat |
|---|---|
| Strict-Transport-Security | ✅ met preload |
| Content-Security-Policy | ❌ ontbreekt |
| X-Frame-Options | ❌ ontbreekt (clickjacking mogelijk) |
| X-Content-Type-Options | ❌ ontbreekt |
| Referrer-Policy / Permissions-Policy | ❌ ontbreken |
| `/wp-json/wp/v2/users` | ⚠️ **open**: geeft gebruikersnaam `b2tg` + naam beheerder → brute-force op `/wp-login.php` wordt makkelijker |
| `/readme.html` | ⚠️ bereikbaar (WP-versie-disclosure) |
| Generator-meta | ⚠️ "WordPress 6.9.7" + "Site Kit 1.186.0" in de HTML |
| `xmlrpc.php` | ✅ 405 (geblokkeerd) |
| Login-bescherming | onbekend; wel reCAPTCHA op het contactformulier |
| Thema/plugins | actueel voor zover zichtbaar (Flatsome 3.19.6 is de laatste 3.19-lijn) |

Geen kritieke kwetsbaarheid gezien, wel het standaard "niemand heeft de hardening gedaan"-beeld van een DIY-WordPress.

## 7. Privacy en AVG

- **Geen cookiebanner/consent-tool** (geen Cookiebot, Complianz, CookieYes of vergelijkbaar gevonden).
- Bij het eerste request zet de server al `Set-Cookie: _fbp=…` (Meta Pixel, 90 dagen) en laadt gtag.js (GA4), Facebook `tr`, Trustindex en reCAPTCHA — allemaal **vóór** toestemming. Dat is in Nederland (AP/ePrivacy) niet toegestaan voor marketing-cookies.
- Privacy-, voorwaarden- en huisregelspagina's bestaan (sinds maart/april 2026) ✅.
- Contactformulier via Gravity Forms met reCAPTCHA (Google) — ook een derde-partijverwerker die in de privacyverklaring moet staan.

## 8. SEO en content-hygiëne

| Check | Resultaat |
|---|---|
| Title/description | ✅ "BACK 2 THE GYM - Sportschool Breda met groepslessen voor jong & oud" + goede description |
| Sitemap/robots | ✅ Yoast-sitemap (`sitemap_index.xml`), robots open |
| Koppen | ✅ één h1 per pagina op home/tarieven/lesrooster; ⚠️ op `/proefles/` geen h1 |
| Structured data | ❌ geen LocalBusiness/SportsActivityLocation-schema (voor een lokale sportschool een gemiste kans) |
| Rommel in de index | ⚠️ `/sample-page/`, `/hello-world/` (standaard WP), `/shop/` met **Lorem ipsum** (aangemaakt 22-04-2026), dubbele pagina's `/shape-your-bbb/` + `/shape-your-bbb-2/`, `/bevestiging-proefles/` + `/proefles-bevestiging/`, `/sterk-stoer/` + `/sterk-stoer-kids/`; `/yoga/`, `/grappling-mma/`, `/pilates/` (= "Buik Billen Benen") staan niet in het menu maar wel in de sitemap |
| Afbeeldingen | ⚠️ partnerlogo's zonder alt-tekst; 12 lege links (social/tegel-links zonder tekst) |
| Reviews | Trustindex-widget met Google-reviews op elke pagina (goed voor vertrouwen, extra JS) |
| Lokaal | ✅ adres, telefoon, Google Maps-route, WhatsApp; ❌ geen openingstijden als data |

## 9. Mobiel en toegankelijkheid

- Responsive (Flatsome): hamburger links, gestapeld logo, hero-tekst gecentreerd, tegels 1-koloms. Werkt netjes.
- Hero-video ook op mobiel autoplay (data), geen `prefers-reduced-motion`-fallback.
- Contrast: wit op zwart en zwart op wit ruim voldoende; rood #f50a0a op wit (knoptekst is wit op rood) ok; kleine grijze tekst "Tarieven per maand" (#666-achtig) is aan de lichte kant.
- Focus-states en skiplink ("Ga naar inhoud") aanwezig via Flatsome.

## 10. Wat de site wél en niet doet

| Functie | Waar het zit |
|---|---|
| Proefles boeken | Sportbit proeflesplanner (externe pagina) |
| Inschrijven | Sportbit registreren (externe pagina); menu-item linkt direct naar Sportbit |
| Lessen reserveren | alleen in de Sportbit-app ("Alle lessen dienen te worden gereserveerd via onze APP") |
| Lesrooster | handmatig als tekst in WordPress (h2 per dag) — dubbel beheer naast de app |
| Tarieven | handmatig als tabellen in WordPress |
| Shop (handschoenen, scheenbeschermers, kleding, T-shirts) | placeholder-pagina met Lorem ipsum; Sportbit-shop-embed staat voorbereid maar toont niets |
| Contact | Gravity Forms + WhatsApp + telefoon |
| Bedrijfsfitness | pagina Zakelijk + partnerlogo's (Bedrijfsfitness Nederland, Go-Vital, Bedrijfsfitness abonnement, Jeugdfonds) |

## 11. Aanbevelingen

**Quick wins (uren, geen herbouw)**
1. Cookie-consent (bijv. Complianz) en pixel/GA4 pas na toestemming laden.
2. Hero-video: comprimeren naar ≤ 3 MB (720p, 10-15 s, H.264/AV1), poster-frame, niet autoplayen op mobiel of bij `prefers-reduced-motion`.
3. Originele uploads verkleinen (max 2500 px, ≤ 500 KB) en WebP inschakelen; Smush/ShortPixel of via de hoster.
4. Security-headers in `.htaccess` (CSP, X-Frame-Options, nosniff, Referrer-Policy), REST-users-endpoint dichtzetten, `readme.html` verwijderen, generator-tag uit, login-limiter.
5. Opruimen: Sample Page, Hello world!, dubbele pagina's, `/shop/` op concept of afmaken; LocalBusiness-schema toevoegen (adres, openingstijden, reviews).

**Structureel (waar MagicEverse waarde toevoegt)**
- **Rooster en tarieven uit Sportbit halen** in plaats van handmatig overtypen: één bron, altijd actueel op site én app.
- **Shop afmaken** als merch-/materiaalwinkel (handschoenen, shirts) — met **Magic Logo** kunnen leden/bedrijfsfitness-klanten hun shirt direct met naam of bedrijfslogo configureren; dat sluit aan op het "inschrijfkosten inclusief sport-T-shirt"-aanbod.
- **Magic Agent op WhatsApp**: de WhatsApp-knop is er al; een agent die proefles-vragen beantwoordt, het rooster geeft en de proefles direct inplant in Sportbit vangt 's avonds en in het weekend de leads die nu wachten.
- Bedrijfsfitness (Zakelijk, fit2theoffice.nl op hetzelfde certificaat) verdient een eigen flow: offerte-aanvraag → agent → backoffice.

## 12. Scorekaart

| Gebied | Score (1-5) | Toelichting |
|---|---|---|
| Actualiteit platform | ★★★★★ | WP 6.9.7, Flatsome 3.19.6, PHP-eisen modern |
| Onderhoud content | ★★★★☆ | actief bijgewerkt, wel rommel in de index |
| Design/merk | ★★★★☆ | consistent, eigen fotografie, herkenbaar; body-font is systeemfont |
| Performance | ★★☆☆☆ | 18 MB hero-video, 20+ MB originelen, geen CDN/WebP |
| Security | ★★☆☆☆ | HSTS ok, verder geen hardening; users-endpoint open |
| Privacy/AVG | ★☆☆☆☆ | tracking zonder consent |
| SEO/lokaal | ★★★☆☆ | basis goed, geen schema, placeholder-pagina's geïndexeerd |
| Conversieflow | ★★★☆☆ | proefles-CTA overal, maar drie systemen (site, Sportbit-web, app) en dubbel beheer |
