# AI Crawler Manager — Documentatie

> Presentatie AI Crawler Manager (technische slug: dfaicrawlermanager) geeft uw PrestaShop 8- of 9-winkel fijnmazige controle over het verkeer van AI-bots: GPTBot van OpenAI, ClaudeBot van Anthropic, Google-Extended, Applebot-Extended, PerplexityBot, Bytespider…

- Pagina: <https://www.datafirefly.com/nl/documentation/ai-crawler-manager/>
- Taal: nl
- Bijgewerkt op: 2026-08-19
- Andere talen: [fr](https://www.datafirefly.com/documentation/ai-crawler-manager/index.md), [en](https://www.datafirefly.com/en/documentation/ai-crawler-manager/index.md), [es](https://www.datafirefly.com/es/documentation/ai-crawler-manager/index.md), [de](https://www.datafirefly.com/de/documentation/ai-crawler-manager/index.md), [it](https://www.datafirefly.com/it/documentation/ai-crawler-manager/index.md), [pl](https://www.datafirefly.com/pl/documentation/ai-crawler-manager/index.md), [pt](https://www.datafirefly.com/pt/documentation/ai-crawler-manager/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

## Presentatie

**AI Crawler Manager** (technische slug: `dfaicrawlermanager`) geeft uw PrestaShop 8- of 9-winkel fijnmazige controle over het verkeer van AI-bots: GPTBot van OpenAI, ClaudeBot van Anthropic, Google-Extended, Applebot-Extended, PerplexityBot, Bytespider van ByteDance, en 25+ andere crawlers, bijgewerkt tot mei 2026.

Drie complementaire beschermingsmechanismen:

- **Visuele robots.txt-builder**: staat elke bot toe of blokkeert hem via een schakelaar, past met één klik een preset toe en schrijft het bestand zonder uw handmatige directieven te breken.
- **HTTP 403-blokkering**: voor bots die robots.txt negeren (Bytespider, legacy anthropic-ai) wordt vanaf de eerste request een 403-code teruggegeven, vóór elke PrestaShop-verwerking.
- **Crawlstatistieken**: realtime opvolging via hook + import van Apache/Nginx-logs om het AI-verkeer met terugwerkende kracht te meten.

**Opmerking**: de module raakt uw robots.txt nooit aan buiten haar eigen sectie, afgebakend door de markeringen `# BEGIN DataFirefly AI Crawler Manager` en `# END DataFirefly AI Crawler Manager`. De rest van het bestand blijft ongewijzigd en bij elke schrijfactie wordt een `.bak`-bestand aangemaakt.

## Vereisten

- PrestaShop 8.0 → 9.x
- Minimaal PHP 7.4 (PHP 8.0 tot 8.3 aanbevolen)
- MySQL 5.7 / MariaDB 10.3 of hoger
- Schrijfrechten op `/robots.txt` (root van de winkel)
- Voor de logimport: leestoegang tot de Apache/Nginx-accesslog (meestal `/var/log/apache2/access.log`, of `~/logs/` bij o2switch, `~/access-logs/` bij cPanel)

## Installatie

1. Download de ZIP `dfaicrawlermanager-v1.0.0.zip` via uw DataFirefly-account.
2. Ga in de PrestaShop-backoffice naar **Modules › Modulebeheer › Een module uploaden**.
3. Sleep de ZIP erin, wacht op de bevestiging en klik op **Installeren**.
4. Na de installatie verschijnt een nieuw tabblad **AI Crawler Manager** in het linkermenu (onder _Configureren_).

De installatie maakt 5 tabellen aan (voorvoegsel `ps_dfaicm_`), seedt automatisch de lijst van 30+ AI-bots en voegt 6 beheertabbladen toe.

**Tip**: er is geen `composer install` nodig. De PSR-4-autoloader is in de module ingebouwd onder de namespace `DataFireflyAiCrawlerManager`.

## Eerste start — het dashboard

Het tabblad **AI Crawler Manager** opent het dashboard. Op een verse installatie ziet u:

- **Gevolgde AI-bots**: 30+ (telling van de actieve bots in de database)
- **Geblokkeerde bots**: 0 (standaard zijn alle bots toegestaan)
- **Bezoeken (30 d)**: 0 (de realtime opvolging start pas na activering)
- **Padregels**: 0

Drie aanbevolen acties in deze fase:

1. De **visuele robots.txt-builder** openen en een preset toepassen (zie de aparte sectie).
2. De **realtime opvolging** inschakelen in Instellingen om statistieken te beginnen verzamelen.
3. Optioneel: uw historische accesslogs importeren om het AI-crawlverkeer van de voorbije weken te zien.

## Tabblad AI-bots

De volledige lijst van de 30+ gevolgde bots met:

- **Display name**: marketingnaam (bijv. "ClaudeBot")
- **User-agent**: exacte string die in de HTTP-header wordt gezocht
- **Uitgever**: bedrijf (OpenAI, Anthropic, Google, ByteDance, Meta...)
- **Gebruik**: _training_ (LLM-training), _assistant_ (realtime antwoorden), _search_ (AI-zoekmachine), _crawl_ (generiek)
- **Respecteert robots.txt**: ja / nee (geeft aan of robots.txt volstaat)
- **Status**: toegestaan / geblokkeerd

Beschikbare acties:

- **Bewerken** van een bot om zijn status aan te passen of interne notities toe te voegen.
- **Massaal blokkeren / deblokkeren** via de groepsacties onderaan de lijst.
- Elke wijziging triggert een automatische regeneratie van robots.txt als de bijbehorende optie in de Instellingen is ingeschakeld.

## Visuele robots.txt-builder

Het meest gebruikte tabblad: de visuele editor van het robots.txt-bestand.

### Presets met één klik

Vijf kant-en-klare strategieën:

- **Alleen training blokkeren**: stopt de _training_-bots (GPTBot, ClaudeBot, anthropic-ai, CCBot, Bytespider...) en houdt de _assistant_- en _search_-bots toegestaan (ChatGPT-User, Claude-User, OAI-SearchBot...). Aanbevolen voor de meeste winkels.
- **Strikt**: blokkeert _training_ + generieke _crawl_, staat _assistant_ + _search_ toe.
- **Alles blokkeren**: disallow voor alle 30+ AI-bots.
- **Alles toestaan**: reset alle bots naar toegestaan.
- **Alleen Bytespider blokkeren**: handig als u alleen de agressiefste crawler wilt targeten zonder de rest aan te raken.

**Belangrijk**: een preset overschrijft de status van alle betrokken bots. Vóór toepassing wordt een bevestiging gevraagd. Daarna kunt u bot per bot verfijnen.

### Schakelaar per bot

Elke bot heeft een schakelaar:

- **Groen** = toegestaan (geen `Disallow`-directief in robots.txt)
- **Rood** = geblokkeerd (directief `User-agent: X / Disallow: /` geschreven in de beheerde sectie)

Een gele badge _"negeert robots.txt"_ markeert de bots waarvoor robots.txt alleen niet volstaat. Schakel voor die bots ook de **HTTP 403-blokkering** in via de Instellingen (zie de aparte sectie).

### Live-voorbeeld

Het rechterpaneel toont in realtime de inhoud die in robots.txt zal worden geschreven. Typisch voorbeeld:

```
# BEGIN DataFirefly AI Crawler Manager
# Generated 2026-05-26 14:32 — do not edit manually

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Allow: /

User-agent: Bytespider
Disallow: /

# … andere bots …

Sitemap: https://example.com/sitemap.xml
# END DataFirefly AI Crawler Manager
```

Klik op **Opslaan in robots.txt** om het bestand te schrijven. Bij elke opslag wordt ernaast een `robots.txt.bak`-bestand aangemaakt.

## Padregels

Voor fijnmazige blokkering: een bot toestaan op een deel van de site en hem elders blokkeren.

Typisch voorbeeld: ClaudeBot toestaan op de productpagina's (zodat Claude ze kan aanbevelen) maar hem blokkeren op de blog (om uw redactionele inhoud niet weg te geven).

Een regel bestaat uit:

- **Bot**: de doelbot (of "alle bots" via wildcard)
- **Actie**: `allow` of `disallow`
- **Pad**: URL-patroon met wildcard `*` en stringeinde `$`
- **Positie**: evaluatievolgorde (de meest specifieke regels eerst)

Voorbeelden van patronen:

- `/blog/*`: elke URL die begint met `/blog/`
- `/*.pdf$`: alle PDF-bestanden
- `/order*`: bestel-URL's
- `/module/dfsavecart/*`: een specifieke module

**Opmerking**: de padregels worden in robots.txt toegevoegd als klassieke `Allow:`/`Disallow:`-directieven, maar ze dienen ook voor de HTTP 403-blokkering als u die inschakelt.

## HTTP 403-blokkering

Sommige bots negeren robots.txt bewust. De bekendste is **Bytespider** (ByteDance), maar ook enkele oude versies van _anthropic-ai_. Voor deze bots volstaat robots.txt niet.

Schakel de optie **"HTTP 403-blokkering inschakelen voor geblokkeerde bots"** in via de Instellingen. De module installeert dan een hook `actionDispatcherBefore` die:

1. De user-agent detecteert bij elke binnenkomende request (stringvergelijking in het geheugen, ~0,1 ms).
2. Als de bot in de lijst met geblokkeerde bots staat en de request overeenkomt met een blokkeringsregel: direct een HTTP 403 teruggeeft, vóór elke PrestaShop-initialisatie.
3. De poging logt in de tabel `ps_dfaicm_visit` met de vlag `blocked = 1`.

**Tip**: de HTTP-blokkering bespaart CPU en database bij de meest volumineuze bots. Bytespider kan op een gemiddelde winkel goed zijn voor enkele duizenden hits per dag.

## Statistieken en logimport

Het tabblad **Statistieken** biedt een weergave over 7, 30 of 90 dagen met:

- Globale KPI's (totaal aantal bezoeken, unieke bots, geblokkeerde hits)
- Grafiek van het dagelijkse verkeer
- Top bots op volume
- Top bezochte URL's
- Logboek van de 50 meest recente bezoeken (datum, bot, URL, IP, status)

### Realtime opvolging

Indien ingeschakeld in de Instellingen wordt elke request geïnspecteerd en worden de geïdentificeerde AI-bothits geregistreerd. De overhead is verwaarloosbaar: minder dan 1% van het verkeer bereikt de schrijffase.

### Import van Apache/Nginx-logs

Maakt het mogelijk om AI-bezoeken met terugwerkende kracht mee te tellen, inclusief die van vóór de installatie van de module.

1. Vul in **Instellingen** het pad naar het logbestand in. De module biedt autodetectie aan (gangbare paden voor Apache, Nginx, o2switch, cPanel).
2. Kies het formaat (_combined_ standaard, of _common_).
3. Klik in het tabblad **Statistieken** op **Log nu analyseren**.

Het parsen is **incrementeel**: een offset in bytes wordt in de database opgeslagen. De operatie opnieuw uitvoeren creëert geen duplicaten. De module beperkt elke uitvoering tot 8 MB om timeouts te vermijden; voor zeer grote bestanden volstaan meerdere opeenvolgende passes.

Om vanaf nul te herbeginnen (bijvoorbeeld na een logrotatie), vinkt u **Offset resetten** aan in de Instellingen en start u de analyse opnieuw.

## Instellingen

Overzicht van de beschikbare opties:

### robots.txt

- **Autoregeneratie**: regenereert robots.txt automatisch wanneer een bot of een regel wijzigt
- **Crawl-delay**: aanbevolen vertraging tussen requests (0 = uitgeschakeld, 1-120 seconden)
- **Sitemap-URL**: toegevoegd aan het einde van de beheerde sectie
- **Globale Disallow-sectie**: voegt ook een sectie `User-agent: *` toe die de gevoelige zones blokkeert (admin, winkelwagen, login)

### HTTP-blokkering

- **HTTP 403-blokkering inschakelen**: geeft direct een 403 terug voor geblokkeerde bots (zie de aparte sectie)

### Realtime opvolging

- **Opvolging inschakelen**: registreert elk gedetecteerd AI-bezoek
- **Retentie**: aantal dagen dat individuele bezoeken worden bewaard (7 tot 730, standaard 90). De dagelijkse aggregaten worden langer bewaard.

### Logimport

- **Loganalyse inschakelen**: activeert de importknop in het tabblad Statistieken
- **Bestandspad**: absoluut pad, met voorgestelde autodetectie
- **Formaat**: combined (Apache/Nginx standaard) of common
- **Offset resetten**: aanvinken om het volledige bestand opnieuw te lezen

## Aanbevolen blokkeringsstrategieën

De keuze hangt af van uw redactionele en commerciële positionering. Drie typische profielen:

### Klassieke e-commercewinkel (standaardaanbeveling)

Pas de preset **"Alleen training blokkeren"** toe. De trainingsbots (GPTBot, ClaudeBot, anthropic-ai, CCBot, Bytespider) worden geblokkeerd. De realtime assistentiebots (ChatGPT-User, Claude-User) en AI-zoekbots (OAI-SearchBot, PerplexityBot, Google-Extended) blijven toegestaan: uw producten kunnen nog steeds worden aanbevolen in ChatGPT, Claude, Perplexity en Google AI Overviews.

### Premiummerk / sterke redactionele inhoud

Preset **"Strikt"** + padregels om bepaalde zones toe te staan. Voorbeeld: alle AI-bots overal blokkeren, behalve `/product/*` toegestaan voor ChatGPT-User en Claude-User. Uw productbeschrijvingen blijven vindbaar in de assistenten, uw blog en gidsen zijn beschermd.

### Winkel in lanceringsfase / weinig redactionele inhoud

Preset **"Alles toestaan"**. De zichtbaarheid in AI-antwoordmachines weegt ruimschoots op tegen het risico van contentafgifte. U schakelt over naar striktere blokkering wanneer uw catalogus en blog aan waarde hebben gewonnen.

## Onderhoud

### Automatische opschoning

Individuele bezoeken die ouder zijn dan de geconfigureerde retentie worden automatisch verwijderd bij elke loganalyse. U kunt ook een handmatige opschoning starten vanuit het tabblad Statistieken (knop **"Oude bezoeken opschonen"**).

### Back-up van robots.txt

Elke schrijfactie maakt een `robots.txt.bak` aan naast het originele bestand. Bij een fout kunt u het handmatig herstellen via FTP of uw cPanel.

### Update van de botlijst

Nieuwe AI-bots worden toegevoegd via de module-updates. De tabel `ps_dfaicm_bot` wordt bijgewerkt in "merge"-modus: een bot die u handmatig hebt aangepast wordt nooit overschreven.

## Probleemoplossing

### robots.txt is niet beschrijfbaar

Het dashboard toont een rode badge "Not writable". Controleer:

- Rechten op het bestand `/robots.txt`: minimaal 644, en de eigenaar moet de PHP/Apache-gebruiker zijn
- Als het bestand niet bestaat, controleer de rechten van de rootmap (755 + juiste eigenaar)
- Op sommige shared hostings wordt robots.txt dynamisch gegenereerd door PrestaShop: schakel de bijbehorende optie uit in Voorkeuren › Verkeer › SEO en URL's

### De autodetectie van de accesslog vindt niets

De module zoekt de volgende paden: `/var/log/apache2/access.log`, `/var/log/nginx/access.log`, `~/logs/`, `~/access-logs/`. Vul op andere hostings het pad handmatig in. Als u het niet kent, neem contact op met de support van uw hostingprovider of raadpleeg de documentatie van uw controlepaneel.

### Het parsen van de logs duurt te lang

De module beperkt elke uitvoering tot 8 MB om PHP-timeouts te vermijden. Reken voor een bestand van 500 MB op 60 tot 70 passes. Elke klik op **"Log nu analyseren"** gaat verder waar de vorige is gestopt, dankzij de opgeslagen offset.

### Een geblokkeerde bot verschijnt toch in de statistieken

Normaal: de realtime opvolging registreert ALLE gedetecteerde AI-bezoeken, ook de geblokkeerde (met de vlag `was_blocked = 1`). Zo kunt u meten hoeveel pogingen daadwerkelijk door uw configuratie worden geblokkeerd.

### Een bot negeert robots.txt ondanks mijn regel

Bevestig het met een logimport: als u nog hits ziet met status 200, negeert de bot robots.txt inderdaad. Schakel de HTTP 403-blokkering in via de Instellingen. Vanaf dat moment verschijnen de hits van de bot met status 403 en vlag `was_blocked = 1`.

## Deïnstallatie

Klik in **Modules › Modulebeheer** op **Deïnstalleren** op de modulekaart. De operatie:

- Verwijdert de 5 tabellen `ps_dfaicm_*`
- Verwijdert de 6 beheertabbladen
- Verwijdert de beheerde sectie uit robots.txt (de markeringen en alles wat ze afbakenen)
- Behoudt de rest van robots.txt en het bestand `robots.txt.bak`

## Technische referentie

- **Technische slug**: `dfaicrawlermanager`
- **Namespace**: `DataFireflyAiCrawlerManager`
- **Aangemaakte tabellen**: `ps_dfaicm_bot`, `ps_dfaicm_rule`, `ps_dfaicm_category_rule`, `ps_dfaicm_visit`, `ps_dfaicm_visit_daily`
- **Gebruikte hooks**: `actionDispatcherBefore`, `actionAdminControllerSetMedia`, `displayBackOfficeHeader`
- **Backoffice-tabbladen**: Dashboard, Bots, Path rules, Builder, Statistics, Settings (onder AdminParentConfigure)
- **Configuratiesleutels**: `DFAICM_AUTO_REGEN`, `DFAICM_VISIT_LOG`, `DFAICM_HTTP_BLOCK`, `DFAICM_LOG_PARSING`, `DFAICM_LOG_PATH`, `DFAICM_LOG_FORMAT`, `DFAICM_LAST_PARSE`, `DFAICM_LAST_OFFSET`, `DFAICM_RETENTION`, `DFAICM_CRAWL_DELAY`, `DFAICM_SITEMAP_URL`, `DFAICM_GLOBAL_DISALLOW`, `DFAICM_INSTALLED_AT`

## Support

Neem voor technische vragen contact op met het DataFirefly-team via **contact@datafirefly.com** of raadpleeg uw klantomgeving op [datafirefly.com](https://www.datafirefly.com/).
