NL
Taal · dezelfde pagina NLNederlands/tools-en-plugins/ai-crawler-log/ ENEnglish (UK)/en/tools-and-plugins/ai-crawler-log/ ESEspañolnog niet vertaald We onthouden je keuze niet en sturen je nooit automatisch door.
Over deze keuze

We bewaren alleen je weergavekeuze met een weergavecookie, maximaal 180 dagen op dit apparaat. Geen CRM- of advertentiedata. Je trackingtoestemming verandert niet. Als cookies geblokkeerd zijn, blijft je keuze mogelijk niet bewaard.

SRV · plugin · ai crawlers reg. T.000 · wordpress · gplv2 of later

AI crawler log en content signals voor WordPress

GPTBot haalt je pagina op, ClaudeBot ook, en je serverlog vertelt je dat pas als je zelf gaat graven. Deze plugin zet die twee vragen in een scherm: welke AI crawler is langs geweest en op welke pagina, en wat mogen ze met wat ze ophalen. Dat tweede leg je vast in je robots.txt, met de exacte regels op het scherm voordat je opslaat. De plugin doet geen enkel uitgaand verzoek en legt geen IP-adres vast.

Download de plugin ↓ Plan een gesprek theseo-ai-crawlerlog-1.0.0.zip · 52 KB · versie 1.0.0 · GPLv2 of later · geen account, geen registratie, geen sleutel
Gianluca, die de tools en plugins van deze site bouwt
beeld · wie het instrument bouwde, legt het ook uit
FIG.01: Wat er met een verzoek gebeurtblad 1/3

Drie stappen, en bij een gewone bezoeker stopt het bij stap twee

De plugin hangt aan de verzoeken die vanzelf bij je server binnenkomen. Er staat niets in je pagina, er wordt geen script geladen en een bezoeker merkt er niets van. Wat er gebeurt is dit, en meer is het niet.

verzoekserverkant · geen script in de pagina
stap 1

Er komt een verzoek binnen

WordPress krijgt een verzoek voor een pagina. De plugin kijkt naar een ding: de user agent die de andere kant meestuurt.

Heeft het verzoek helemaal geen user agent, dan stopt het hier.

stap 2

Vergelijken met de lijst

De user agent wordt vergeleken met een lijst van 34 namen die in de plugin zelf staat, plus de eigen namen die jij erbij hebt getypt.

Geen treffer, en er gebeurt verder niets. Dat is het pad van elke gewone bezoeker.

stap 3

Een regel erbij

Wel een treffer, dan volgt precies een INSERT met vier velden: de naam van de crawler, het adres van de pagina, de statuscode die je server teruggaf en het tijdstip.

Meer velden heeft de tabel niet.

De naam die in de tabel komt is de naam uit de lijst, niet de reeks die de andere kant stuurde. Een crawler wordt herkend aan wat hij zegt te zijn, en iedereen kan alles beweren. Het log vertelt je wat er beweerd werd, niet wie het werkelijk was. Er zit in deze versie geen controle op omgekeerde DNS of op IP-reeksen.
DOC.01

Je serverlog weet het wel, maar je leest het niet

Elke AI crawler die je site ophaalt laat een spoor achter in het toegangslog van je webserver. In de praktijk komt daar niemand. Het bestand is groot, het staat vol met afbeeldingen en botverkeer, en de meeste hostingpakketten bewaren het een paar dagen. De vraag die je eigenlijk hebt is klein: kwam GPTBot langs, op welke pagina's, en gaf mijn server daar een 200 of een 404 op.

Daar komt sinds 2025 een tweede vraag bij die vroeger niet bestond

Een crawler die je pagina ophaalt kan er drie verschillende dingen mee doen: hem in een zoekindex zetten, hem tijdens het beantwoorden van een vraag als bron gebruiken, of hem gebruiken om een model mee te trainen. Dat zijn drie aparte vormen van gebruik, en je hebt er tot voor kort geen manier voor gehad om er per vorm iets over te zeggen. Disallow was alles of niets.

Deze plugin doet die twee dingen naast elkaar, omdat het in de praktijk een gesprek is

Je kijkt wie er langskomt, en op grond daarvan bepaal je wat je toestaat.

DOC.02

Wat de plugin precies doet

Twee schermen, en een derde met de instellingen.

Het log

Een regel per keer dat een crawler uit de lijst een pagina van je site ophaalde. Geteld per crawler en per pagina, over 7, 30 of 90 dagen of over alles, met vier totalen bovenaan, een staaf per dag en een export naar CSV van hoogstens 20000 regels.

De content signals

Een scherm waar je per crawlergroep zegt of je je content beschikbaar stelt voor zoeken, als invoer voor een AI-antwoord, en voor training. Je ziet de regels die daaruit volgen woordelijk op het scherm voordat je opslaat, en er wordt niets aan je robots.txt toegevoegd totdat je het vinkje zelf zet. Daarnaast staat een aparte kolom die een echte Disallow: / voor een groep toevoegt. Dat is iets anders dan een signaal, het staat overal uit, en het scherm houdt die twee uit elkaar.

De instellingen

Meten aan of uit, bewaartermijn van 30, 90 of 365 dagen of alles bewaren, en een veld voor je eigen namen, hoogstens 25, een per regel. Elke regel wordt in de user agent gezocht, dus MyBot vindt ook MyBot/1.0 (+https://example.com/bot).

FIG.02: Wat je in robots.txt zetblad 2/3

Drie uitspraken per groep, en je ziet de regels voordat je opslaat

Een content signal is een uitspraak over wat je met je content toestaat nadat hij is opgehaald. Er zijn er drie en ze staan los van elkaar. Elk signaal kan op ja, op nee, of op geen uitspraak. Geen uitspraak laat het signaal helemaal uit de regel weg, en dat is precies hoe je zegt dat je die vorm van gebruik niet toestaat en niet verbiedt. Alles begint op geen uitspraak en het blok staat uit.

/robots.txtvoorbeeld · zo ziet het blok eruit
# Content signals, geschreven door AI Crawler Log # Uitleg van de vorm: https://contentsignals.org/ User-agent: GPTBot Content-Signal: search=yes, ai-input=no, ai-train=no Allow: / User-agent: CCBot Content-Signal: ai-train=no Disallow: / # search en ai-input staan bij CCBot op geen uitspraak, dus ze staan # niet in de regel. De Disallow eronder is een aparte keuze en staat # overal uit tot je hem zelf aanzet.
Een signaal is een uitspraak over voorkeur, geen technische blokkade. Het werkt alleen als de andere partij zich eraan houdt. De standaardisatie loopt nog in de AIPREF-werkgroep van de IETF; de plugin schrijft de vorm die de Content Signals Policy publiceert en volgt die tekst zodra hij verandert. Staat er een echt robots.txt bestand in de wortel van je site, dan serveert je webserver dat bestand en komt WordPress er niet aan te pas. Het scherm controleert daarop en zegt het.
DOC.04
WordPress6.0 of hoger. In de plugin staat getest tot en met 7.0.
PHP7.4 of hoger. De code is gecontroleerd op 8.5.
RechtenJe hebt manage_options nodig, dus beheerder.
Taal van het schermNederlands op een Nederlandse site, anders Engels.
Ook te vinden op Volledige broncode op GitHub De zip hierboven en de broncode op GitHub zijn dezelfde versie. Deze plugin staat nog niet in de officiele WordPress-pluginmap. Hij is klaargezet voor inzending; zolang dat niet rond is, is de download hierboven de enige plek waar je hem krijgt. Stand gemeten op 19 augustus 2026.
STAP 1 · OPHALEN

Klik hierboven op de downloadknop. Je krijgt theseo-ai-crawlerlog-1.0.0.zip, 52 KB. Pak hem niet uit: WordPress wil de zip zelf.

STAP 2 · UPLOADEN

In je WordPress: Plugins, Nieuwe plugin, Plugin uploaden. Kies het bestand en klik op Nu installeren.

STAP 3 · ACTIVEREN

Klik op Plugin activeren. Er verschijnt een nieuw onderdeel in je beheermenu. Je site verandert er op dat moment nog niet van.

STAP 4 · INSTELLEN

Open het instellingenscherm en loop de standen langs. Alles wat aan je openbare site raakt staat uit tot je het zelf aanzet.

DOC.03

Wat hij niet doet, en niet beweert

Dit staat hier omdat het bij dit onderwerp het snelst misgaat.

PUNT 01

Hij zegt niet of je geciteerd wordt

Of ChatGPT, Perplexity of Gemini jouw site noemt in een antwoord is vanaf je eigen server niet te meten. Een crawlerbezoek is geen citaat en de plugin doet niet alsof.
PUNT 02

Hij verifieert de crawler niet

Een user agent is een bewering. Wie zich voordoet als GPTBot komt in het log terecht als GPTBot. Er zit geen controle op omgekeerde DNS of op IP-reeksen in deze versie, en dat staat ook op het scherm.
PUNT 03

Twee namen kunnen nooit in het log komen

Google-Extended en Applebot-Extended bestaan alleen als groep in robots.txt en worden nooit in een verzoek meegestuurd. Je kunt ze een signaal geven, maar ze verschijnen nooit in de lijst. De plugin zegt dat op het scherm in plaats van stil nul te tellen.
PUNT 04

Een leeg log is meestal geen storing

Drie gewone oorzaken: er is nog geen crawler langs geweest, meten staat uit, of een volledige paginacache of CDN beantwoordt de verzoeken zodat ze PHP nooit bereiken. In dat laatste geval kan vrijwel geen enkele WordPress-plugin het zien, tenzij hij het logboek van je CDN achteraf inleest. Het instellingenscherm drukt de lijst met namen af zodat je die in de uitzonderingen van je cacheplugin kunt plakken.
FIG.03: Wat er per regel wordt vastgelegdblad 3/3

Vier velden erin, en zes dingen er bewust uit

Dit is de hele tabel. Een tweede tabel bestaat niet, net zomin als een verborgen kolom of een tweede plek waar iets terechtkomt. De rechterkolom is niet een belofte maar de reden waarom er in dit log geen persoonsgegeven zit dat je bij een verwerkingsregister zou moeten opschrijven.

een regel in het logde hele tabel · vier kolommen
wordt vastgelegd
  • De naam van de crawler, zoals hij in de lijst van de plugin staat
  • Het adres van de pagina, zonder queryreeks en zonder anker
  • De HTTP-statuscode die jouw server teruggaf
  • Het tijdstip volgens je server
wordt niet vastgelegd
  • Het IP-adres, niet leesbaar en ook niet als afdruk
  • De volledige user agent reeks
  • Een cookie of iets in localStorage of sessionStorage
  • Een gebruikersnummer of een koppeling met een WordPress-account
  • De queryreeks, dus een sleutel of e-mailadres in een adres komt er nooit in
  • Wat dan ook dat je server verlaat
Het bezoekersadres wordt precies een keer gebruikt: om te tellen hoeveel verzoeken er per minuut binnenkomen, zodat een vervalste user agent de tabel niet kan volgooien. Het wordt daarvoor een sleutelafdruk in een waarde die binnen een minuut verloopt, en het bereikt de logtabel nooit. Nagelopen op 19 augustus 2026 in includes/class-theseo-crawlerlog-request.php.
DOC.05

Privacy: wat er wel en niet wordt vastgelegd

Wat er in de tabel komt staat hierboven in FIG.03, veld voor veld. Wat hier volgt is hoe je het zelf nakijkt, want een privacyparagraaf die je niet kunt controleren is een reclametekst.

PUNT 01

Geen enkel uitgaand verzoek

Zoek in de uitgepakte zip op wp_remote_, curl_init, file_get_contents en fsockopen. Nul treffers. Er is geen account, geen sleutel en geen dienst erachter.
PUNT 02

Geen IP-adres in de tabel

Het adres komt precies een keer voor, in de snelheidslimiet, waar het via een sleutelafdruk een transientnaam wordt die binnen een minuut verloopt.
PUNT 03

Geen cookie en geen browseropslag

De plugin laadt helemaal geen script op je front end. Er is niets dat op het apparaat van een bezoeker iets zet of leest.
PUNT 04

Geen queryreeks

Het adres wordt opnieuw opgebouwd, dus een sessietoken of een e-mailadres dat iemand in een adres heeft gezet komt niet in de tabel terecht.
PUNT 05

Bewaartermijn

Een dagelijkse taak verwijdert regels ouder dan de ingestelde termijn, standaard 90 dagen. Deactiveren bewaart het log en stopt de taak. Verwijderen laat de tabel, de instellingen en de taak vallen, te lezen in uninstall.php.

Voor de volledigheid: dit log gaat over machines, niet over mensen. Er zit geen gegeven in dat naar een persoon te herleiden is, en dat is de reden dat je hem op een klantsite kunt zetten zonder dat er iets in een verwerkingsregister bij hoeft.

DOC.06

Veelgestelde vragen

Vertraagt de plugin mijn site? De controle draait op verzoeken die een user agent hebben, vergelijkt die met een lijst met stukjes tekst, en stopt daar bij een gewone bezoeker. Alleen een treffer levert een INSERT op. Er wordt niets aan de pagina toegevoegd en er wordt geen script geladen.

Waarom zit er geen nonce op het loggen?

Omdat het loggen geen invoer aanneemt. Het kijkt naar verzoeken die vanzelf binnenkomen en schrijft aan de serverkant een regel weg. Een adres om iets naartoe te sturen ontbreekt. De beheerschermen, de export en elke opslagactie gebruiken wel een nonce plus een rechtencontrole.

Werkt hij met een cacheplugin?

Alleen voor zover de verzoeken PHP bereiken. Beantwoordt je cache of je CDN het verzoek zelf, dan ziet WordPress het niet en dus deze plugin ook niet. Het instellingenscherm drukt de lijst met namen af zodat je die kunt uitsluiten van de cache.

Werkt hij op multisite?

Ja. Elke site in het netwerk krijgt een eigen tabel, eigen instellingen en een eigen robots.txt blok. Verwijderen ruimt elke site op.

Mag ik hem op klantsites zetten?

Ja. De gegevens blijven in de WordPress van die klant en het instellingenscherm zegt letterlijk wat er bewaard wordt. Er is geen persoonsgegeven om te laten zien aan een functionaris gegevensbescherming.

Verandert hij mijn robots.txt zodra ik hem activeer?

Nee. Het loggen begint meteen, de robots.txt kant staat uit. Er wordt niets toegevoegd tot je de signalen instelt, de voorvertoning bekijkt en het vinkje zet.

DOC.07 · Volgende stap

Wat je er de eerste week aan hebt

Zet hem een week aan en kijk daarna wie er langs is geweest. Dat gesprek is bijna altijd korter en concreter dan het gesprek over AI-zichtbaarheid in het algemeen. Wil je daarna weten hoe je die pagina's ook citeerbaar maakt in plaats van alleen opgehaald, dan is de AI snippet previewer de volgende stap, en de llms.txt generator zegt in gewone taal wat je site is. Wil je erover doorpraten, plan dan een gesprek.

Sectie · Volgende stap24/7 bereikbaar · sales@theseo.nl
Plan een gesprek ↗
Geschreven door GianlucaOprichter. Bouwt sinds 2017 aan vindbaarheid voor Nederlandse bedrijven, in Google en in AI-antwoorden. Meer over het instituut.