Kort antwoord
Hoe genereer ik een llms.txt-bestand voor mijn website?
Crawl je eigen site, neem de titel en eerste alinea van elke pagina, en schrijf ze als een Markdown-lijst onder de naam van je site in een bestand op /llms.txt. WebReaderAPI doet de crawl: tot 10.000 pagina's per taak, als Markdown met metadata, voor één credit per pagina vanaf US$ 0,07/1K pagina's per oktober 2026. Het Python-script hieronder schrijft het bestand. Zonder KYC; betalen met crypto.
llms.txt in het kort
| Wat het is | Een voorgesteld Markdown-bestand in de root van een site dat de belangrijkste pagina's vermeldt voor taalmodellen |
|---|---|
| Adoptie, top 1.000 sites | 9,3% (93 sites) op 18 september 2026, volgens Rankability |
| Sites met het bestand | Van 4.088 naar 36.120 tussen juni 2025 en mei 2026, volgens Originality.ai |
| Gemeten gebruik | 97% van de llms.txt-bestanden kreeg nul requests in een Ahrefs-onderzoek onder 137.000 domeinen |
| Kosten om te bouwen met WebReaderAPI | Eén credit per gecrawlde pagina; 10.000 pagina's kosten US$ 3,75 |
Is llms.txt het maken waard?
Het is goedkoop om te maken, en het gemeten effect is tot nu toe klein. De adoptie stijgt: Rankability vond het bestand op 9,3% van de top 1.000 sites op 18 september 2026, tegen 0,3% in juni 2025, al veranderde de methode tussen de twee tellingen. Originality.ai telde sites met het bestand die groeiden van 4.088 naar 36.120 tussen juni 2025 en mei 2026.
Het gebruik is een ander verhaal. Een Ahrefs-onderzoek onder 137.000 domeinen, gerapporteerd door PPC Land op 2 juli 2026, vond dat 97% van de llms.txt-bestanden helemaal geen requests kreeg, en dat AI-retrievalbots 1,1% van de requests uitmaakten die de bestanden wél kregen. Maak er een als je documentatie groot is en je een schone index wilt; verwacht niet dat het op zichzelf verandert hoe assistenten je citeren.
Wat staat er in een llms.txt-bestand?
Een titel, een samenvatting van één alinea, en dan gegroepeerde lijsten met links met elk een korte beschrijving. Een minimaal bestand ziet er zo uit:
# Example Docsop de eerste regel, de naam van de site of het project.> One sentence on what the site covers.als een geciteerde samenvatting.## Guides,## API referenceen andere secties, één per onderdeel van de site.- [Page title](https://example.com/page): one line on what the page answers.voor elke pagina.
Houd beschrijvingen feitelijk en kort. Schrijf geen instructies aan AI-systemen in het bestand; assistenten behandelen zulke tekst steeds vaker als manipulatie.
import os
import time
from collections import defaultdict
from urllib.parse import urlparse
import requests
API = "https://webreaderapi.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}
SITE = "https://docs.example.com/"
def first_paragraph(markdown):
for block in markdown.split("\n\n"):
block = block.strip()
if block and not block.startswith(("#", "-", "|", "!", ">")):
return " ".join(block.split())[:160]
return ""
job = requests.post(API + "/crawl", headers=HEADERS, json={"url": SITE, "limit": 300}, timeout=60).json()
pages, cursor, delay = [], None, 5
while True:
params = {"cursor": cursor} if cursor else {}
batch = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json()
pages += [p for p in batch.get("results", []) if "markdown" in p]
cursor = batch.get("next_cursor")
if batch["status"] == "done" and not cursor:
break
if not cursor:
time.sleep(delay)
delay = min(delay * 2, 60)
sections = defaultdict(list)
for p in pages:
path = urlparse(p["final_url"]).path.strip("/")
section = path.split("/")[0].replace("-", " ").title() if path else "Home"
summary = p.get("description") or first_paragraph(p["markdown"])
sections[section].append("- [" + p["title"] + "](" + p["final_url"] + "): " + summary)
lines = ["# Example Docs", "", "> Documentation for the Example product.", ""]
for name in sorted(sections):
lines += ["## " + name, ""] + sorted(sections[name]) + [""]
with open("llms.txt", "w", encoding="utf-8") as fh:
fh.write("\n".join(lines))
print(len(pages), "pages written to llms.txt")
Hoe werkt het script?
Het start één crawl-job, verzamelt de resultaten pagina voor pagina en groepeert de pagina's vervolgens op de eerste map van hun pad. Voor elke pagina gebruikt het de meta description als de site er een levert, en anders de eerste alinea van de Markdown, afgekapt op 160 tekens.
Pas SITE, de titelregel en de samenvattingsregel aan op je project, en verhoog limit voor een grotere site, tot 10.000 pagina's per job. Controleer de output voordat je hem publiceert: sectienamen komen uit je URL-structuur en hebben misschien een menselijke touch nodig.
Moet mijn robots.txt de crawl toestaan?
Ja. WebReaderAPI leest alleen wat robots.txt toestaat voor WebReaderAPI of voor alle robots, en wacht op elke Crawl-delay die je instelt. Als je eigen site robots blokkeert, voeg dan een groep toe die onze token toestaat voor de duur van de crawl; onze crawler-pagina toont de exacte regels.
Pagina's die robots.txt weigert, worden overgeslagen en niet gefactureerd, dus een strikt bestand kost je niets extra; het laat die pagina's alleen buiten llms.txt.
Hoeveel kost het?
Eén credit per gelezen pagina, twee voor pagina's die een browser nodig hebben. Een documentatiesite van 300 pagina's kost 300 credits, of tot 600 als het een JavaScript-applicatie is. Dat past makkelijk in 10.000 pagina's voor US$ 3,75, per oktober 2026, en de overgebleven credits blijven op je account: ze verlopen nooit.
Bouw het bestand opnieuw op als je documentatie verandert. Als je de crawl-output bewaart, kun je met een batch-job alleen de gewijzigde pagina's opnieuw lezen in plaats van alles opnieuw te crawlen.
llms.txt: veelgestelde vragen
Waar plaats ik het llms.txt-bestand?
In de root van je site, zodat het geserveerd wordt op /llms.txt, als platte tekst of Markdown. Sommige sites publiceren ook llms-full.txt met de volledige tekst van de vermelde pagina's.
Vervangt llms.txt robots.txt?
Nee. robots.txt zegt welke paden robots moeten overslaan; llms.txt vermeldt pagina's waarvan je wilt dat modellen ze vinden. Houd beide. Onze robots.txt-gids legt het verschil uit.
Zorgt llms.txt ervoor dat ChatGPT of Claude mijn site citeert?
Er is geen bewijs dat het dat op zichzelf doet. Het Ahrefs-onderzoek dat in juli 2026 werd gerapporteerd, vond dat 97% van de bestanden geen requests kreeg. Heldere pagina's met directe antwoorden en gedateerde feiten maken meer verschil.
Kan ik llms.txt genereren voor de site van iemand anders?
Alleen voor je eigen sites of met instemming van de eigenaar. Het bestand spreekt namens de site, dus het is aan de site-eigenaar om het te publiceren.
Bronnen (2)
- Adoptiecijfers van llms.txt — Rankability (2026-09-18)
- Adoptie van llms.txt stijgt 8,8x, maar 97% van de bestanden krijgt nul AI-requests — PPC Land (2026-07-02)