AI Crawler Log and Content Signals by TheSEO
Zie welke AI-crawlers je WordPress-pagina's ophalen en zet in robots.txt wat ze met je content mogen. Zelf gehost, geen uitgaand verzoek, geen IP-adres. Gratis GPL-plugin van theseo.nl.
Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/gianlucanaarden/theseo-ai-crawlerlog/releases/download/v1.0.0/theseo-ai-crawlerlog-1.0.0.zipAI Crawler Log and Content Signals
WordPress-plugin die twee dingen doet die overal los van elkaar bestaan en zelden samen: laten zien welke AI-crawlers je pagina's ophalen, en vastleggen in robots.txt wat die crawlers met je inhoud mogen doen.
Alles blijft in je eigen WordPress. De plugin doet geen enkel uitgaand verzoek, heeft geen account, geen dashboard elders en geen dienst erachter.
Gemaakt door TheSEO.
Wat hij doet
Het logboek. Per ophaling een regel: welke crawler, welke pagina, welke HTTP-status je server teruggaf, en wanneer. Geteld per crawler en per pagina, over 7, 30 of 90 dagen of over alles, met vier tellers bovenaan, een staafje per dag en een CSV-export.
De signalen. Per crawlersgroep drie schakelaars die zeggen of je inhoud
gebruikt mag worden voor zoeken (search), als invoer voor een model
(ai-input) en voor training (ai-train). Elke schakelaar heeft drie standen:
ja, nee, en geen uitspraak. Wat er straks in robots.txt komt te staan zie je
letterlijk in een voorbeeldvenster voordat je opslaat.
Alles staat standaard op geen uitspraak en de robots.txt-uitbreiding staat standaard uit, dus installeren verandert nooit stilletjes wat crawlers te horen krijgen.
Wat hij bewaart
Per ophaling een rij in {prefix}theseo_crawlerlog:
- de naam van de crawler, uit de lijst in de plugin
- het adres van de pagina, zonder queryreeks en zonder anker
- de HTTP-status die je server teruggaf
- het tijdstip
En uitdrukkelijk niet: geen IP-adres, ook niet als hash, geen user agent-tekenreeks, geen cookie, niets in de browseropslag, geen gebruikers-id, geen queryreeks, en niets dat je server verlaat.
Het adres van een bezoeker wordt een keer gebruikt, om verzoeken per minuut te
tellen zodat een verzonnen user agent de tabel niet kan vollopen. Het gaat via
hash_hmac met wp_salt() door een transient die na een minuut verdwijnt en
bereikt de logtabel nooit.
Wat hij niet beweert
- Hij zegt niet of je site geciteerd wordt in ChatGPT, Perplexity of Gemini. Dat kun je vanaf je eigen server niet meten, dus doet de plugin er geen uitspraak over.
- Een crawler wordt herkend aan de user agent die hij meestuurt, en die kan iedereen claimen. Het logboek vertelt wat er geclaimd is, niet wie het echt was. Er zit in deze versie geen reverse-DNS- of IP-rangecontrole in.
Google-ExtendedenApplebot-Extendedbestaan alleen als robots.txt-groep en worden nooit in een verzoek meegestuurd. Je kunt ze een signaal geven, maar ze kunnen nooit in het logboek verschijnen. Dat staat ook zo op het scherm, in plaats van stilletjes nul te tellen.- Een verzoek dat door een paginacache, een reverse proxy of een CDN wordt beantwoord zonder dat PHP draait, kan geen enkele WordPress-plugin zien. Het instellingenscherm geeft daarom de lijst met user agents die je in de uitsluitlijst van je cacheplugin kunt plakken.
Installeren
- Zip uploaden via Plugins, Nieuwe plugin, Plugin uploaden. Of de map naar
/wp-content/plugins/theseo-ai-crawlerlogkopieren. - Activeren. Het logboek begint meteen, de robots.txt-kant blijft uit.
- AI Crawlers, Instellingen: bewaartermijn en crawlerlijst nalopen.
- AI Crawlers, Content signals: signalen zetten, voorbeeld lezen, vinkje aan, opslaan.
Testinstructie: in vijf minuten zeker weten dat hij werkt
Zes stappen op een testinstallatie. Vervang jouwsite.nl door het adres van
die installatie.
-
Doe alsof je een crawler bent. In een terminal:
curl -A "GPTBot/1.2 (+https://openai.com/gptbot)" https://jouwsite.nl/ curl -A "Mozilla/5.0 (compatible; PerplexityBot/1.0)" https://jouwsite.nl/bestaat-niet/ curl -A "Mozilla/5.0 (Macintosh) Safari/605.1.15" https://jouwsite.nl/ -
Open AI Crawlers, Log. Verwacht: twee ophalingen, twee verschillende crawlers, twee verschillende pagina's.
GPTBotop de homepage met status 200,PerplexityBotop de niet bestaande pagina met status 404. De gewone Safari-regel hoort er niet te staan; dat is de test dat een bezoeker niet gelogd wordt. -
Controleer dat de queryreeks eraf valt.
curl -A "ClaudeBot/1.0" "https://jouwsite.nl/?utm_source=test&mail=iemand@example.com"In het logboek hoort
https://jouwsite.nl/te staan, zonder alles achter het vraagteken. Er hoort nergens een e-mailadres in het logboek te belanden. -
Zet een signaal. AI Crawlers, Content signals: bij de groep
*zet jesearchopjaenai-trainopnee. Het voorbeeldvenster hoort meteenContent-Signal: search=yes, ai-train=note tonen. Vink daarna de robots.txt-schakelaar aan en sla op. -
Open
https://jouwsite.nl/robots.txt. Onderaan hoort precies het blok te staan dat in het voorbeeldvenster stond. Staat er niets, dan waarschuwt het scherm zelf al dat er een echt robots.txt-bestand in de wortel ligt. -
Zet het weer terug. Alle signalen op geen uitspraak, opslaan, robots.txt herladen: het blok hoort verdwenen te zijn.
De logica erachter is ook machinaal getoetst. Zie ../tests/LEESMIJ.md:
php ../tests/test-crawlerlog.php
Mappenstructuur
theseo-ai-crawlerlog/
theseo-ai-crawlerlog.php kopregels, PHP-controle, laden
uninstall.php tabel, opties en cronjob weg bij verwijderen
readme.txt Engelse readme in het formaat van de pluginmap
includes/
class-theseo-crawlerlog-agents.php catalogus en herkenning
class-theseo-crawlerlog-install.php tabel, schema, opruimtaak
class-theseo-crawlerlog-settings.php opslag en validatie
class-theseo-crawlerlog-repository.php alle queries
class-theseo-crawlerlog-logger.php herkennen en wegschrijven
class-theseo-crawlerlog-signals.php robots.txt-blok
class-theseo-crawlerlog-admin.php drie schermen, opslaan, export
class-theseo-crawlerlog-plugin.php hooks
assets/css/admin.css
assets/js/admin.js
languages/ pot plus Nederlandse vertaling
Taal
De broncode is Engels met tekstdomein theseo-ai-crawlerlog. In languages/
zit een .pot en een Nederlandse vertaling (nl_NL.po en nl_NL.mo), dus op
een Nederlandse WordPress is de hele beheerkant Nederlands. De readme voor de
pluginmap blijft Engels, zoals wordpress.org vraagt.
Nog niet gedaan
Eerlijkheid boven marketing, dus dit staat er ook in:
- De kopregel zegt
Tested up to: 7.0. Dat is de huidige WordPress-versie, niet een eigen meting op een draaiende 7.0. Dat moet gebeuren voor de inzending. - Er zijn nog geen schermafdrukken, geen icoon en geen banner. Daarom staat er
ook geen
== Screenshots ==inreadme.txt, want een sectie zonder afbeeldingen levert een lege tab op. - Plugin Check is nog niet over deze plugin gedraaid.
Licentie
GPLv2 of nieuwer. Zie LICENSE.
Releases
1 release. Each count is every asset in that release; expand a row for the breakdown.