Kennisbank AI

llms.txt uitgelegd: het robots.txt voor AI-crawlers

LLM’s halen steeds vaker content rechtstreeks van websites om antwoorden te genereren. Met llms.txt geef je AI-crawlers richtlijnen, vergelijkbaar met robots.txt voor zoekmachines. Het bestand staat op /llms.txt en bevat regels voor welke paden AI-modellen mogen gebruiken, hoe ze moeten citeren (op best-effort basis) en waar aanvullende beleidsinformatie te vinden is. Hoewel llms.txt nog geen formele internetstandaard is, experimenteren meerdere partijen ermee naast robots.txt en HTTP-headertags. In dit artikel krijg je een praktische llms.txt uitleg: wanneer je het inzet, hoe je het opzet in 30 minuten, welke user-agents je moet kennen, en hoe je dit koppelt aan GEO (Generative Engine Optimization), schema-markup en monitoring. Voorbeelden zijn gebaseerd op situaties die we bij Nederlandse organisaties zien.

1) Wat is llms.txt en wat lost het op?

llms.txt is een optioneel, publiek tekstbestand op de root van je domein (https://jouwdomein.nl/llms.txt) met richtlijnen voor AI-crawlers. Het idee lijkt op robots.txt: je geeft aan wat AI-systemen mogen ophalen en waarvoor (bijv. tonen in antwoorden, of juist niet). Doel: de relatie tussen jouw content en LLM’s meer voorspelbaar maken, inclusief voorkeuren voor citatie en contactpunt bij vragen.

Belangrijk om te weten: - Niet-standaard: er is nog geen IETF- of W3C-standaard. Zie llms.txt als best practice naast robots.txt. - Complementair: veel AI-partijen houden zich primair aan robots.txt en/of eigen user-agent-richtlijnen. llms.txt kan je beleid verduidelijken en centraliseren. - Transparantie: je kunt een AI-policy of data-licentie koppelen, zodat crawlers en juristen weten wat mag.

Waarvoor gebruik je llms.txt in de praktijk? - Toestemming of restricties voor specifieke paden (bijv. /kennisbank/ wel; /account/ niet). - Preferenties voor citatie (bijv. “Cite: preferred”) als signaal naar LLM’s en GEO-tools. - Verwijzingen naar sitemaps en contact (technisch e-mailadres) voor escalaties.

Samengevat: llms.txt is geen magische schakelaar, maar wel een duidelijk, machineleesbaar startpunt om jouw AI-beleid te communiceren aan crawlers die daarvoor openstaan.

2) Syntaxis, user-agents en prioriteit: zo lezen crawlers je bestand

Omdat llms.txt niet is gestandaardiseerd, loont het om aan te sluiten bij bekende robots.txt-conventies. Gebruik secties per user-agent, wildcard-ondersteuning en heldere paden. Veelvoorkomende AI-gerelateerde user-agents die je in beleid kunt meenemen (controleer actuele strings): - GPTBot (OpenAI) - Google-Extended (AI-verwant Google-crawlen t.b.v. modelverbetering) - CCBot (Common Crawl, vaak gebruikt voor trainingscorpora) - PerplexityBot (Perplexity.ai) - ClaudeBot of anthropic-ai (Anthropic) - Bingbot/BingIndexing (kan Copilot-inhoud voeden) - Bytespider (ByteDance)

Pragmatische syntaxis (voorbeeld): User-agent: * Allow: /kennisbank/ Disallow: /account/ Sitemap: https://voorbeeld.nl/sitemap.xml Policy: https://voorbeeld.nl/ai-policy Cite: preferred

User-agent: GPTBot Allow: /kennisbank/ Disallow: /checkout/ Crawl-Delay: 5

Opmerkingen: - “Cite:” en “Policy:” zijn niet-standaard, maar vormen nuttige hints voor crawlers en menselijke reviewers. - Prioriteit: als een aanbieder alleen robots.txt uitleest, spiegel dan je regels ook in robots.txt per user-agent (bijv. User-agent: GPTBot). Zorg dat llms.txt en robots.txt niet conflicteren. - Publiceer llms.txt als UTF-8, zonder redirects, met HTTP 200. Plaats het bestand op domeinniveau (niet in submappen).

3) In 30 minuten live: stappenplan en checklist

Volg dit minimale plan om vandaag nog grip te krijgen: 1. Doelen bepalen (10 min) - Welke delen van de site mogen in LLM-antwoorden verschijnen? Welke niet (account, checkout, interne zoekresultaten)? - Wil je citatie stimuleren? Formuleer een korte AI-policy (1–2 alinea’s).

2. User-agents en paden inventariseren (5 min) - Stel een lijst op met AI-crawlers die jij wil sturen (GPTBot, PerplexityBot, Google-Extended, CCBot, ClaudeBot). Verifieer actuele UA-strings in documentatie en serverlogs.

3. llms.txt opstellen (10 min) Voorbeeld voor een Nederlandse kennisbanksite: User-agent: * Allow: /kennisbank/ Disallow: /account/ Disallow: /wp-admin/ Sitemap: https://voorbeeld.nl/sitemap.xml Policy: https://voorbeeld.nl/ai-policy Cite: preferred

User-agent: GPTBot Allow: /kennisbank/ Disallow: /

4. Publiceren en testen (5 min) - Plaats het bestand op https://voorbeeld.nl/llms.txt. - Test met curl: curl -A "GPTBot" https://voorbeeld.nl/llms.txt. - Controleer HTTP 200 en geen 301/302. - Spiegel relevante regels in robots.txt voor bots die llms.txt nog niet lezen.

Checklist na livegang: - Logging aan op user-agent-niveau. - Rate limiting op verdachte pieken. - Versiebeheer en changelog (datum, reden).

4) Voorbeelden uit de Nederlandse praktijk

Voorbeeld 1: Utrechtse fietsenwebshop - Doel: productadvies in LLM-antwoorden zichtbaar houden, maar winkelmand en prijzen-API beschermen. - Oplossing: Allow /advies/ en /kennisbank/; Disallow /cart/, /api/prijzen/; “Cite: preferred”. In robots.txt ook User-agent: GPTBot en PerplexityBot specificeren.

Voorbeeld 2: Rotterdamse makelaar - Doel: lokale GEO-visibility voor “taxatie Rotterdam” met kans op citatie. - Oplossing: publiceer een gedetailleerde taxatiegids met FAQ en schema-markup (FAQPage). In llms.txt Allow /gidsen/; Disallow /dossier/. Link naar AI-policy met contact.

Voorbeeld 3: Amsterdamse HR-vakblog - Doel: content vrij voor antwoordgeneratie, mits met bronvermelding. - Oplossing: “Cite: preferred”, “Policy: /ai-licentie”. Publiceer canonieke definities (woordenboek) en samenvattingen; LLM’s kiezen graag compacte, ondubbelzinnige bronnen.

Voorbeeld 4: SaaS-bedrijf in Eindhoven - Doel: supportartikelen mogen in LLM-antwoorden, maar niet in trainingscorpora buiten eigen helpbot. - Oplossing: Allow /help/; in robots.txt Disallow voor CCBot en Google-Extended. llms.txt verwijst naar licentievoorwaarden die modeltraining buiten inference-gebruik beperken.

Kernles: combineer llms.txt met robots.txt, heldere contentarchitectuur en juridisch kader. Zo maximaliseer je zichtbaarheid waar het loont, en minimaliseer je risico’s op misbruik.

5) GEO: van beleid naar zichtbaarheid en citatie in LLM-antwoorden

GEO (Generative Engine Optimization) draait om twee dingen: opgenomen worden in het contextvenster van LLM’s én vervolgens geciteerd worden. llms.txt helpt vooral bij het eerste (toewijzing en crawltoestemming). Voor citaties heb je content- en techniekwerk nodig.

Praktische GEO-aanpakken: - Bouw autoriteitspagina’s met duidelijke definities, stappenplannen en samenvattingen van 100–200 woorden per subonderwerp. LLM’s prefereren compacte, eenduidige passages. - Maak thematische clusters (gids + detailpagina’s) met interne links en ankerlinks (#stap-1). Verhoogt kans dat modellen een specifieke alinea citeren. - Publiceer feitelijke data met datum en bron. Update regelmatig en noteer “Laatst bijgewerkt”. - Gebruik consistente URL’s (/kennisbank/onderwerp/) en vermijd parameter-spam. - Schrijf FAQ’s in Q/A-vorm met directe, citeerbare antwoorden (60–100 woorden).

Technische hints die citaties stimuleren: - Snippets bovenaan pagina’s (“In het kort”), liefst met gestructureerde opsomming. - Heldere H1/H2-structuur en korte alinea’s. - Open grafiek- en tabelformats (CSV/JSON) voor data-artikelen, inclusief licentie.

Belangrijk: als je citatie eist, onderbouw dat in je AI-policy. llms.txt kan “Cite: preferred” communiceren, maar afdwingen kan alleen contractueel of via toegangsbeperkingen.

6) Schema-markup en JSON-LD: maak content machinevriendelijk

Schema-markup in JSON-LD helpt LLM’s en GEO-systemen om entiteiten, relaties en intenties te begrijpen. Het vergroot de kans op correcte interpretatie en citatie.

Checklist per contenttype: - Artikel/gids: type Article/BlogPosting; headline, author, datePublished, dateModified, mainEntityOfPage. - FAQ: type FAQPage met Question/acceptedAnswer. - HowTo: stappen met benodigde tools en tijdsduur. - Organization en LocalBusiness: NAP-gegevens (naam, adres, telefoon), openingstijden, gebied (GEO-relevantie).

Voorbeeld JSON-LD voor een FAQ-blok over taxatie: { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "Wat kost een woningtaxatie in Rotterdam?", "acceptedAnswer": { "@type": "Answer", "text": "De meeste NWWI-taxaties in Rotterdam vallen tussen €550 en €800, afhankelijk van woningtype, ligging en spoed. Vraag meerdere offertes op en controleer of NHG of verbouwingsspecificatie is inbegrepen." } }] }

Tips: - Plaats JSON-LD één keer per pagina, valideer met de Rich Results Test. - Houd velden actueel; LLM’s straffen verouderde feiten indirect via lagere citatiewaarde. - Combineer met llms.txt door juist die mappen met rijke schema-markup vrij te geven.

7) Monitoring en KPI’s: werkt je llms.txt-strategie?

Zonder meting geen strategie. Richt drie lagen in: 1) Serverlogs en security - Log requests op user-agent en pad. Filter bekende AI-agents (GPTBot, PerplexityBot, Google-Extended, CCBot, ClaudeBot). Detecteer overtredingen (bijv. hits op Disallow-paden) en pas rate limiting toe.

2) Vindbaarheid en citaties - Vraag periodiek dezelfde vragen aan ChatGPT, Gemini, Copilot en Perplexity. Noteer of je domein wordt genoemd. Bouw een promptset per thema en registreer maandelijks. - Controleer citatie-aandeel in Perplexity-resultaten (die tonen bronnen).

3) Business-impact - Let op referral-verkeer vanuit LLM’s en AI-aggregators, en op assisted conversions (last non-direct click). Tag deeplinks in je content met UTM’s wanneer mogelijk.

Praktische tooling: - SIEM of logopslag (bijv. Elastic/BigQuery) met dashboards per user-agent. - Scheduler die prompts afvuurt en citaties telt. - Alerting bij spikes van verdachte agents.

Kern-KPI’s: aantal toegestane hits op /kennisbank/, aantal geblokkeerde hits op gevoelige paden, citatiepercentage per thema, en conversies na LLM-verwijzingen.

8) Governance, juridisch en valkuilen

Realistische verwachtingen helpen teleurstelling voorkomen: - llms.txt is niet bindend recht; het is een technisch signaal. Contracten en toegangscontrole (paywall, auth) bieden echte afdwingbaarheid. - Stem llms.txt af met robots.txt, je privacyverklaring en je algemene voorwaarden. Leg in een AI-policy vast wat mag (lezen, citeren) en wat niet (bulk-scraping, modeltraining). - Houd rekening met AVG: plaats geen persoonsgegevens in publiek toegankelijke secties die je voor LLM’s openzet. - Rate limiting en bot-detection blijven nodig; malafide scrapers negeren beleid.

Veelvoorkomende fouten: - Alleen llms.txt publiceren zonder robots.txt-aanpassingen voor GPTBot/Google-Extended/CCBot. - Disallow op cruciale GEO-pagina’s (verlies aan zichtbaarheid in answer boxes). - Geen sitemapverwijzing opnemen, terwijl dit crawlers helpt om relevante content te vinden. - Verouderde schema-markup waardoor modellen achterhaalde gegevens citeren.

Organiseer eigenaarschap: - Product/marketing bepaalt GEO-doelen en citatiebeleid. - Legal borgt licentietaal en risico’s. - Tech beheert llms.txt, robots.txt, headers en logging.

Zo bouw je stap voor stap een duurzaam AI-toegangsbeleid. Wil je versnellen of sparren over jouw situatie? Hawk Eye AI helpt je pragmatisch van beleid naar uitvoering.

Veelgestelde vragen

Wat is llms.txt en is het een officiële standaard?

llms.txt is een optioneel tekstbestand op de root van je domein met richtlijnen voor AI-crawlers. Het lijkt op robots.txt, maar richt zich op LLM-gebruik. Het is nog géén formele internetstandaard. Zie het als een best practice die je inzet naast robots.txt en je AI-policy om toestemming, restricties en citatievoorkeuren machineleesbaar te communiceren.

Moet ik llms.txt naast robots.txt gebruiken of vervangt het robots.txt?

Gebruik llms.txt aanvullend, niet als vervanging. Veel AI-partijen volgen primair robots.txt met specifieke user-agents (zoals GPTBot, Google-Extended, PerplexityBot). Spiegel daarom sleutelregels in beide bestanden en voorkom tegenstrijdigheden. llms.txt biedt extra duidelijkheid (bijv. Policy-URL, Cite-voorkeur), maar alleen robots.txt heeft brede adoptie.

Welke user-agents moet ik minimaal adresseren in llms.txt?

Begin met GPTBot (OpenAI), Google-Extended, CCBot (Common Crawl), PerplexityBot en een agent voor Anthropic (ClaudeBot/anthropic-ai). Overweeg ook Bingbot/BingIndexing en Bytespider. Verifieer actuele user-agentstrings in officiële documentatie en in je serverlogs, want namen en gedragingen kunnen wijzigen.

Kan ik via llms.txt citatie afdwingen in ChatGPT, Gemini of Perplexity?

Nee, afdwingen kan niet via llms.txt. Je kunt wel een voorkeur communiceren (bijv. “Cite: preferred”) en in je AI-policy voorwaarden stellen. Citaties worden vooral verdiend via duidelijke, compacte content met goede schema-markup. Juridische afdwingbaarheid vereist contracten of toegangsbeperkingen, niet alleen een tekstbestand.

Hoe test ik of AI-crawlers mijn llms.txt respecteren?

Controleer serverlogs op hits van bekende user-agents en kijk of ze Disallow-paden mijden. Test handmatig met curl en een gesimuleerde user-agent. Monitor bovendien of je domein als bron wordt genoemd in Perplexity en of Copilot/ChatGPT informatie uit toegestane paden lijken te gebruiken. Vertrouw niet op één signaal; combineer logs en resultaatobservaties.

Wat als LLM’s mijn content al gebruikt hebben voor training?

llms.txt werkt vooruitkijkend. Als content al is opgenomen in trainingscorpora, kun je toekomstige toegang beperken (robots.txt/llms.txt), je AI-policy aanscherpen en indien nodig contact zoeken met aanbieders om datasets te laten opschonen. Focus tegelijk op GEO: publiceer compacte, actuele referentiecontent die modellen liever citeren dan oudere, diffuse bronnen.

Plan een gesprek

Plan een gesprek