Onderzoek · Meetprotocol versie 1.2
Meetprotocol: AI-zichtbaarheid bij 50 Haagse bedrijven
Dit is het protocol waarmee we op 3 oktober 2026 hebben gemeten. Wijzigingen ten opzichte van eerdere versies staan bovenaan, met datum en reden.
Terug naar de uitkomsten van het onderzoek
Versie: 1.2 (3 oktober 2026, na de meting; versie 1.1 van 3 oktober 2026 vóór de meting, versie 1.0 van 2 oktober 2026) · Opdrachtgever/uitvoering: Red Melon, Den Haag Doel: meten hoe vaak 50 Haagse bedrijven uit 5 branches worden genoemd als een klant ChatGPT, Gemini of Google AI-modus om advies vraagt (plus een aanvullende check van het AI-overzicht in de gewone Google-zoekresultaten), en welke kenmerken (reviews, schema, NAP, dienstpagina's, robots.txt) genoemde bedrijven gemeen hebben.
Dit protocol wordt vóór de meting vastgelegd en daarna niet meer aangepast. Wijkt de uitvoering af, noteer dat dan in afwijkingen.md (datum, wat, waarom).
Wijziging 1.1 (3 oktober 2026, vóór de meting, akkoord Stephan): per branche een vijfde vraag, de korte zoekterm (type K, bijv. schilder Den Haag). Daardoor: 25 vragen, 100 metingen (plus 25 aanvullende Google AI-overzicht-checks) en 20 kansen per bedrijf (was 16). De meetvolgorde is opnieuw geloot met dezelfde seed (20261002, zie maak-meetvolgorde.py). De oude volgorde staat in meetvolgorde-v1.0.csv. Nieuwe code [geen AI-antwoord] (zie §6.1).
Wijziging 1.2 (3 oktober 2026, na de meting, besluit Stephan): Perplexity valt definitief af. Perplexity blokkeerde de geautomatiseerde meting (Cloudflare) en wordt in Nederland weinig gebruikt; daarom is het weggelaten in plaats van later alsnog gemeten. Het onderzoek omvat nu 3 platforms (ChatGPT, Gemini, Google AI-modus) plus de aanvullende check van het Google AI-overzicht (google_aio). Daardoor: 25 vragen × 3 platforms = 75 metingen (plus 25 AI-overzicht-checks) en 15 kansen per bedrijf (was 20). noemscore_pct = totaal_genoemd / 15 × 100, platforms_genoemd loopt van 0 tot 3. De regels in §5 en §6 zijn verder ongewijzigd toegepast. Vastgelegd in afwijkingen.md. Waar hieronder nog Perplexity of 4 platforms stond, is de tekst aangepast; §4.3 is vervallen.
1. Steekproef
- 5 branches: schilders, installateurs, makelaars, accountants, advocaten.
- Per branche de eerste 10 organische resultaten in Google Maps voor de zoekopdracht
[branche] den haag(dus "schilders den haag", "installateurs den haag", enz.), zonder gesponsorde resultaten. Vastgelegd inselectie.csv(branche, rank, naam, adres, rating, reviews, website, telefoon, maps_url), met datum en tijd van de vastlegging. - De Maps-ranking zelf is persoonlijk en locatieafhankelijk. Leg daarom vast vanaf welke locatie/IP en met welke instellingen gezocht is (zie §3.1) en maak screenshots van de resultatenlijst.
- Bedrijven die buiten de gemeente Den Haag gevestigd zijn maar wel in de top 10 staan (bijv. Rijswijk, Voorburg), blijven in de steekproef. We meten wat een klant te zien krijgt. Noteer de vestigingsplaats.
- Ketens of franchises (bijv. een makelaarsformule met een Haags kantoor) blijven in de steekproef. Voor het matchen telt de merknaam (zie §5).
2. Vragen
- 25 vragen (5 per branche), zie
vragen.md: 4 vragen zoals een klant ze stelt (A, D, U, R) en 1 korte zoekterm zoals mensen die in Google typen (K, bijv.schilder Den Haag). Elke vraag gaat letterlijk naar elk platform: 25 × 3 = 75 metingen (versie 1.1: 25 × 4 = 100, met Perplexity). - Elk bedrijf heeft 15 kansen (5 vragen van de eigen branche × 3 platforms). Alle scores zijn dus "van de 15".
- Korte zoekterm (K). Op een losse zoekterm reageren platforms anders dan op een vraag. Vooral Google kan bij een korte zoekterm helemaal geen AI-antwoord tonen, alleen gewone resultaten en een kaart. Ook een chatbot kan alleen links of uitleg geven. Noteer dat als
[geen AI-antwoord], apart van weigeringen en van antwoorden zonder bedrijfsnamen (zie §6.1). Zo'n meting telt als kans zonder vermelding.
3. Algemene meetcondities (gelden voor alle platforms)
3.1 Locatie, taal, apparaat
- Alle metingen gebeuren vanaf een Nederlandse internetverbinding, bij voorkeur in Den Haag (kantoor Red Melon). Gebruik geen VPN of cloudmachine met een buitenlands IP-adres. AI-platforms en Google bepalen de locatie mede via het IP-adres. Noteer het publieke IP en de plaats die ipinfo.io aangeeft in
meetlog.csv. - Desktop, één vaste browser: Chrome, de actuele stabiele versie (versienummer noteren). Browsertaal en OS-taal Nederlands. Venster minimaal 1440 px breed, zodat screenshots vergelijkbaar zijn.
- Locatietoestemming van de browser weigeren (geen exacte GPS-locatie). Den Haag volgt dan uit IP en vraagtekst. Zo zijn de metingen voor alle bedrijven gelijk, ongeacht in welke wijk het kantoor staat.
3.2 Neutraliteit
- Per platform een schoon browserprofiel (nieuw Chrome-profiel zonder extensies, geen ingelogde Google-, Microsoft- of OpenAI-sessies), tenzij hieronder anders staat.
- Is inloggen nodig of beter, gebruik dan een neutraal meetaccount (nieuw account, aangemaakt voor dit onderzoek, zonder geschiedenis), met geheugen en personalisatie uit (zie per platform).
- Elke vraag in een nieuw gesprek. Nooit twee vragen in hetzelfde gesprek, nooit een vervolgvraag, nooit "regenereer". Het eerste antwoord telt.
- Geen eigen instructies, geen bijlagen, geen modelkeuze anders dan de standaard voor gratis/uitgelogde gebruikers (bekijk en noteer wel welk model of welke modus actief is).
3.3 Tijdvak en volgorde
- Alle 75 metingen op één kalenderdag, binnen één aaneengesloten tijdvak (streef: 09:00 tot 17:00, Europe/Amsterdam).
- Volgorde: per platform alle 25 vragen in een vaste, vooraf geloste volgorde (zie
meetvolgorde.csv, gemaakt metmaak-meetvolgorde.py: Pythonrandom.Random(20261002), per platform een shuffle, platforms in de volgorde hieronder). Platformvolgorde: ChatGPT → Gemini → Google AI Mode (Perplexity stond oorspronkelijk op de derde plek en is vervallen, zie wijziging 1.2). - Noteer per meting het tijdstip (hh:mm).
3.4 Vastleggen
Per meting (dus 75×, plus de 25 AI-overzicht-checks):
1. Screenshot van het volledige antwoord, inclusief bronnenpaneel/citaties. Gebruik een full-page screenshot (Chrome DevTools > "Capture full size screenshot" of een vergelijkbare extensie in het meetprofiel). Bestandsnaam: antwoorden/{datum}_{platform}_{vraag_id}.png (bijv. antwoorden/2026-10-13_chatgpt_SCH-A.png).
2. Antwoord letterlijk als tekst: kopieer het hele antwoord (kopieerknop van het platform of selecteren en kopiëren) naar antwoorden/{datum}_{platform}_{vraag_id}.txt. Bovenaan het bestand zet je deze kopregels:
```
platform: chatgpt
modus/model: (zoals getoond, bijv. "ChatGPT gratis, zoeken aan")
datum_tijd: 2026-10-13 09:14
vraag_id: SCH-A
vraag: Wat is een goed schildersbedrijf in Den Haag?
ip_locatie: Den Haag, NL
``
3. **Geciteerde URL's**: alle bron-links uit het antwoord en het bronnenpaneel (beweeg bij "Bronnen"/"Sources" over de items of klik ze uit), onder de tekst in het .txt-bestand onder--- bronnen ---, één per regel.
4. Een regel in **metingen.csv`** (zie §6).
Bestandsnamen en platformcodes zijn vast: chatgpt, gemini, google_ai (en aanvullend google_aio).
4. Procedure per platform
Interfaces veranderen vaak. Controleer de procedure op de meetdag met één proefvraag die niet in de set zit (bijv. "Wat is een goede bakker in Den Haag?"). Noteer afwijkingen in
afwijkingen.md. De proefvraag telt niet mee.
4.1 ChatGPT (chatgpt.com)
- Voorkeur: uitgelogd in een schoon profiel. Uitgelogd gebruik is mogelijk en heeft geen geheugen of personalisatie.
- Moet je inloggen (limiet, inlogmuur), gebruik dan het neutrale meetaccount met: Instellingen > Personalisatie: geheugen uit, "Naar chatgeschiedenis verwijzen" uit, geen aangepaste instructies. Gebruik bij voorkeur Tijdelijke chat.
- Model: de standaard. Zoeken: laat ChatGPT zelf bepalen of het zoekt; zet de zoekfunctie niet handmatig aan of uit. Noteer of het antwoord bronnen/zoekresultaten toont (
zoeken_gebruikt: ja/neein de kopregels). - Vraagt ChatGPT om je locatie of laat het een kaart/lokale lijst zien, neem die dan mee in het screenshot. Bedrijven op de kaart of in de lijst tellen als genoemd (zie §5).
- Nieuw gesprek per vraag (knop "Nieuwe chat" of de pagina opnieuw laden).
4.2 Gemini (gemini.google.com)
- Voorkeur: uitgelogd, als Gemini dat op de meetdag in NL toestaat. Anders het neutrale Google-meetaccount (nieuw, taal NL, regio NL) met Activiteit (Gemini-apps-activiteit) uit, geen "Persoonlijke context"/geheugen, geen gekoppelde apps (Gmail/Drive/Maps-extensies uit, voor zover instelbaar).
- Model: de standaard (bijv. "Snel"/Flash). Noteer het getoonde model.
- Nieuw gesprek per vraag ("Nieuwe chat").
- Gemini toont bronnen soms pas na "Bronnen"/"Antwoord controleren". Klik dat open voor screenshot en URL's. Plaatskaarten uit Google Maps in het antwoord tellen mee.
4.3 Perplexity (vervallen)
Vervallen in versie 1.2: Perplexity blokkeerde de geautomatiseerde meting en wordt in Nederland weinig gebruikt. Zie wijziging 1.2 en afwijkingen.md.
4.4 Google AI (AI Mode, met AI Overview als aanvulling)
- Primaire meting = Google AI Mode (google.nl > "AI-modus", of
https://www.google.com/search?udm=50&hl=nl&gl=nl&q=...). AI Mode geeft bij elke vraag een antwoord; een AI Overview verschijnt niet altijd en is daardoor slecht vergelijkbaar. - Schoon profiel, uitgelogd (of incognito binnen het meetprofiel). Accepteer of weiger de cookiemelding steeds op dezelfde manier ("Alles afwijzen"). Taal Nederlands, regio Nederland (
hl=nl&gl=nl). - Nieuwe AI Mode-sessie per vraag (nieuw tabblad met de URL hierboven).
- Aanvullend (telt niet mee in de 15 kansen): dezelfde vraag als gewone Google-zoekopdracht (
https://www.google.com/search?hl=nl&gl=nl&q=...). Verschijnt er een AI Overview, leg die dan ook vast als platformgoogle_aio, met screenshot, tekst en regel in metingen.csv. Verschijnt er geen, noteer[geen AI-antwoord](met screenshot). Dit levert een extra cijfer op ("bij X van de 25 vragen toonde Google een AI-overzicht"). Reken erop dat dit bij de korte zoektermen (K) vaak gebeurt. - Toont AI-modus bij een vraag of zoekterm geen AI-antwoord (alleen gewone resultaten), noteer dan ook voor
google_ai[geen AI-antwoord], met screenshot. Telt als kans zonder vermelding. - Is AI Mode op de meetdag niet beschikbaar vanaf de meetlocatie, gebruik dan AI Overview als
google_aien meld dat bij de beperkingen.
5. Wanneer telt een bedrijf als "genoemd"?
Genoemd = het bedrijf uit de steekproef is in het antwoord herkenbaar als aanbeveling of optie aanwezig.
Telt wel als genoemd:
- De exacte naam zoals in Google Maps/selectie.csv.
- Een duidelijke variant: zonder rechtsvorm ("B.V.", "VOF"), zonder toevoeging achter de naam (bijv. "Den Haag" of "| Schilder Den Haag"), afkorting of handelsnaam die eenduidig naar het bedrijf verwijst (bijv. "Nelisse" voor "Nelisse Makelaarsgroep"), schrijfvarianten (hoofdletters, spaties, "&"/"en", accenten).
- De naam van de eigenaar/advocaat als dat aantoonbaar het kantoor is (bijv. "mr. X van Kantoor Y") → genoemd. Alleen een persoonsnaam zonder kantoor → twijfel.
- Vermelding in een kaart, plaatskaart of bedrijvenlijst die onderdeel is van het antwoord.
- Een keten of formule met de merknaam, als het antwoord over Den Haag gaat of het Haagse kantoor noemt.
Telt niet als genoemd:
- Alleen een link/bron naar de site van het bedrijf zonder dat de naam in het antwoord staat. Dat registreren we apart als geciteerd (zie hieronder).
- Een naamgenoot in een andere plaats of branche.
- Een negatieve vermelding of waarschuwing (komt naar verwachting zelden voor). Noteer als genoemd_negatief en tel het niet als genoemd. Publiceer dit nooit op bedrijfsniveau.
- Een vermelding van een platform/gids waarop het bedrijf staat (bijv. "kijk op Werkspot") zonder bedrijfsnaam.
Twijfelgevallen: noteer de vermelding met ? (bijv. Pals?). Twee mensen beoordelen elk twijfelgeval onafhankelijk; bij verschil beslist een derde. Leg het besluit vast in twijfelgevallen.md.
Geciteerd = een URL op het domein van het bedrijf (homepage of subpagina) staat tussen de bronnen/links van het antwoord. Match op domeinnaam (zonder www.). Profielen op gidsen of Google Maps-links tellen niet als "geciteerd". Die worden wel als URL vastgelegd en in de analyse apart geteld (welke bronnen gebruikt AI: Google Maps, Trustoo, Werkspot, Funda, KvK, nieuwsartikelen enz.).
Ook vastleggen: alle andere bedrijven die genoemd worden (niet uit de steekproef). Dat laat zien of AI andere bedrijven aanraadt dan Google Maps bovenaan zet.
6. Vastleggen in CSV
6.1 metingen.csv (één regel per meting: 75, plus 25 google_aio)
datum,platform,branche,vraag_id,vraag,antwoord_bestand,genoemde_bedrijven,geciteerde_urls
datum:YYYY-MM-DD HH:MM(Europe/Amsterdam)platform:chatgpt|gemini|google_ai|google_aio(aanvullend)branche: zoals in selectie.csv:schilder|installateur|makelaar|accountant|advocaatantwoord_bestand: pad naar het .txt-bestand. Het screenshot heeft dezelfde naam met .png.genoemde_bedrijven: alle genoemde bedrijven in volgorde van verschijnen, gescheiden door;, zoals ze in het antwoord staan. Twijfel met?, negatief met(-). Wel een AI-antwoord maar geen bedrijven:[geen]; vraagt om verduidelijking:[geen: vraagt om verduidelijking]; weigert aanbeveling:[geen: weigert]; geen AI-antwoord (bijv. geen AI-overzicht bij Google, of alleen gewone zoekresultaten of links):[geen AI-antwoord]. Deze vier codes zijn verschillend en worden apart geteld. Alle vier tellen als kans zonder vermelding.geciteerde_urls: alle bron-URL's, gescheiden door;.
6.2 bedrijven-score.csv (één regel per bedrijf, 50)
Wordt na de meting gevuld door de genoemde namen te matchen met selectie.csv en checks.csv samen te voegen. Kolommen: zie het bestand. Belangrijkste:
| Kolom | Betekenis |
|---|---|
{platform}_genoemd |
aantal vragen (0 tot 5) waarbij het bedrijf op dat platform genoemd werd |
totaal_genoemd |
som (0 tot 15) |
noemscore_pct |
totaal_genoemd / 15 × 100 |
platforms_genoemd |
op hoeveel platforms minstens één keer genoemd (0 tot 3) |
vragen_genoemd |
vraag_id's waarbij genoemd (bijv. SCH-A;SCH-R;SCH-K) |
totaal_geciteerd |
aantal metingen (0 tot 15) waarin een URL van het eigen domein als bron stond |
gem_positie |
gemiddelde volgorde-positie in het antwoord, bij genoemd |
| overige kolommen | kenmerken uit selectie.csv en checks.csv (reviews, rating, schema, NAP, AI-bots, dienstpagina's) |
6.3 Aanvullende kenmerken per bedrijf (checks)
- Automatisch met
checks.py(op of rond de meetdag draaien, datum vastleggen): AI-bots in robots.txt, schema-types (JSON-LD/microdata), NAP op homepage/contactpagina, aantal dienstpagina's, sitemap, https, paginatitel. - Reviews en rating: uit selectie.csv (Google Maps, stand op de selectiedatum).
- NAP-consistentie "overal" (handmatig, 10 min. per bedrijf): vergelijk naam, adres en telefoon tussen (1) Google-bedrijfsprofiel (selectie.csv), (2) website (checks.py, handmatig nalopen bij "deels"/"niet gevonden"), (3) drie vaste externe bronnen: KvK-handelsregister (handelsnaam/adres), Telefoonboek.nl/De Telefoongids, en de belangrijkste branchebron (schilders/installateurs: Werkspot of Trustoo; makelaars: Funda; accountants: NBA/SRA-ledenlijst of Google; advocaten: NOvA Advocatenzoeker). Score:
consistent(alle bronnen gelijk) /kleine verschillen(alleen notatie, bijv. "Str." of "070-" vs "+31 70") /inconsistent(ander adres, ander nummer of andere naam). Leg vast innap-handmatig.csv. - Aparte dienstpagina's: checks.py geeft een indicatie (aantal + voorbeelden). Controleer handmatig of het echte pagina's per dienst zijn (eigen URL, eigen inhoud), en niet één pagina met een opsomming.
7. Analyse en rapportage
- Per branche: gemiddelde noemscore, aantal bedrijven dat minstens één keer genoemd is (x van 10), verschil per platform, verschil per vraagtype (A/D/U/R/K). Rapporteer de korte zoekterm (K) ook apart naast de vier klantvragen.
- Per platform: hoe vaak noemt het bedrijven uit de Maps-top 10 en hoe vaak andere bedrijven; hoeveel antwoorden helemaal geen bedrijven noemen, en hoe vaak er geen AI-antwoord kwam (
[geen AI-antwoord], vooral bij K). - Maps-rank vs. AI: worden de Maps-nummers 1 tot en met 3 vaker genoemd dan de 8 tot en met 10? Alleen beschrijvend; bij n = 50 geen harde statistische claims.
- Kenmerken: vergelijk genoemde bedrijven (≥ 1 keer) met niet-genoemde op reviews (mediaan), rating, LocalBusiness-schema, NAP-consistentie, aantal dienstpagina's en AI-bots geblokkeerd. Presenteer dit als samenhang, niet als oorzaak.
- Bronnen: welke domeinen worden het vaakst geciteerd (eigen sites vs. gidsen vs. Google Maps).
- Publicatie: alleen geaggregeerde cijfers per branche en platform. Bedrijven worden nooit negatief bij naam genoemd. Positieve voorbeelden alleen met toestemming van het bedrijf. Elk bedrijf kan de eigen uitslag opvragen via het formulier. Stuur die alleen naar een adres op het domein van het bedrijf, of na verificatie.
- Archief: alle screenshots, teksten, CSV's en de checks-JSON bewaren (minimaal 2 jaar), zodat elk cijfer herleidbaar is en bij een herhaalmeting (bijv. 2027) vergeleken kan worden.
8. Optionele stabiliteitscheck (aanbevolen)
AI-antwoorden variëren per keer. Herhaal daarom op dezelfde dag, minimaal 2 uur na de eerste ronde, één vraag per branche (het A-type) op alle platforms (15 extra metingen). Rapporteer de overlap: welk deel van de genoemde bedrijven komt in beide rondes terug. Deze metingen tellen niet mee in de score. Ze geven alleen een indicatie van de stabiliteit. Codeer de platformen als {platform}_herhaling.
9. Beperkingen (ook op de publicatiepagina vermelden)
- AI-antwoorden variëren. Dezelfde vraag kan een uur later andere bedrijven opleveren. Dit is een momentopname, geen vaste ranglijst. De stabiliteitscheck (§8) geeft een indicatie van die variatie.
- Eén dag. Alle metingen zijn op één dag gedaan. Modellen, zoekindexen en interfaces veranderen voortdurend.
- Steekproef uit Google Maps. De 50 bedrijven zijn de top 10 in Google Maps per branche op de selectiedatum, vanaf één locatie. Dat zijn al relatief zichtbare bedrijven. De resultaten gelden niet voor alle Haagse bedrijven, en de Maps-ranking verschilt per zoeker en per locatie.
- Vijf vragen per branche. Andere formuleringen, andere diensten of andere wijken ("in Scheveningen") kunnen andere uitkomsten geven. De dienstvragen bevoordelen bedrijven die die specifieke dienst aanbieden. Bij de korte zoekterm (K) gaf een platform soms geen AI-antwoord. Die metingen tellen als kans zonder vermelding en staan apart in de cijfers.
- Uitgelogd/neutraal gebruik. Echte gebruikers zijn vaak ingelogd, met geschiedenis, geheugen en exacte locatie. Hun antwoorden kunnen afwijken.
- Gratis/standaardmodellen. Betaalde modellen of deep-research-modi zijn niet gemeten.
- Matching is mensenwerk. Varianten en twijfelgevallen zijn met vaste regels en een tweede beoordelaar beslist, maar enige subjectiviteit blijft.
- Samenhang ≠ oorzaak. Als genoemde bedrijven vaker schema of meer reviews hebben, bewijst dat niet dat dát de oorzaak is.
- Technische checks zijn een momentopname van de homepage en contactpagina. Een blokkade van AI-bots via een firewall (bijv. Cloudflare) is niet altijd zichtbaar in robots.txt. JavaScript-sites kunnen gegevens bevatten die de check niet ziet. Het aantal dienstpagina's is een automatische schatting, handmatig nagelopen.
- Kleine aantallen. 10 bedrijven per branche: verschillen van 1 of 2 bedrijven zijn geen harde trends.
- Drie platforms. Perplexity is niet gemeten: het blokkeerde de geautomatiseerde meting en wordt in Nederland weinig gebruikt, dus het is weggelaten. Andere AI-assistenten (bijv. Microsoft Copilot) zijn ook niet gemeten.