Risposta rapida
Come genero un file llms.txt per il mio sito web?
Esegui il crawl del tuo sito, prendi il titolo e il primo paragrafo di ogni pagina e scrivili come elenco Markdown sotto il nome del tuo sito in un file in /llms.txt. WebReaderAPI esegue il crawl: fino a 10.000 pagine per job, come Markdown con metadati, a un credito per pagina da 0,07 USD/1K pagine a partire da ottobre 2026. Lo script Python qui sotto scrive il file. Senza KYC; paghi in criptovalute.
llms.txt in breve
| Di cosa si tratta | Un file Markdown proposto alla radice di un sito che elenca le sue pagine chiave per i modelli linguistici |
|---|---|
| Adozione, primi 1.000 siti | 9,3% (93 siti) il 18 settembre 2026, secondo Rankability |
| Siti con il file | Da 4.088 a 36.120 tra giugno 2025 e maggio 2026, secondo Originality.ai |
| Uso misurato | Il 97% dei file llms.txt ha ricevuto zero richieste in uno studio Ahrefs su 137.000 domini |
| Costo per costruirlo con WebReaderAPI | Un credito per pagina sottoposta a crawling; 10.000 pagine costano 3,75 USD |
Vale la pena creare llms.txt?
Crearlo costa poco, e finora l'effetto misurato è piccolo. L'adozione è in crescita: Rankability ha trovato il file sul 9,3% dei primi 1.000 siti il 18 settembre 2026, contro lo 0,3% di giugno 2025, anche se il metodo è cambiato tra i due conteggi. Originality.ai ha contato i siti con il file passati da 4.088 a 36.120 tra giugno 2025 e maggio 2026.
L'uso è un'altra questione. Uno studio Ahrefs su 137.000 domini, riportato da PPC Land il 2 luglio 2026, ha rilevato che il 97% dei file llms.txt non ha ricevuto alcuna richiesta, e che i bot di retrieval AI hanno fatto l'1,1% delle richieste che i file hanno effettivamente ricevuto. Creane uno se la tua documentazione è ampia e vuoi un indice pulito; non aspettarti che da solo cambi il modo in cui gli assistenti ti citano.
Cosa contiene un file llms.txt?
Un titolo, un riassunto di un paragrafo, poi elenchi di link raggruppati con una breve descrizione ciascuno. Un file minimale è così:
# Example Docsalla prima riga, il nome del sito o del progetto.> One sentence on what the site covers.come riassunto tra virgolette.## Guides,## API referencee altre sezioni, una per ogni parte del sito.- [Page title](https://example.com/page): one line on what the page answers.per ogni pagina.
Mantieni le descrizioni fattuali e brevi. Non scrivere istruzioni per i sistemi di AI nel file; gli assistenti trattano sempre più spesso questo testo come manipolazione.
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")
Come funziona lo script?
Avvia un job di crawling, raccoglie i risultati pagina per pagina, poi raggruppa le pagine per la prima cartella del loro percorso. Per ogni pagina usa la meta description quando il sito la fornisce, altrimenti il primo paragrafo del Markdown, tagliato a 160 caratteri.
Cambia SITE, la riga del titolo e la riga del riassunto in base al tuo progetto, e aumenta limit per un sito più grande, fino a 10.000 pagine per job. Controlla l'output prima di pubblicarlo: i nomi delle sezioni derivano dalla struttura dei tuoi URL e potrebbero richiedere un ritocco umano.
Il mio robots.txt deve consentire il crawling?
Sì. WebReaderAPI legge solo ciò che robots.txt consente per WebReaderAPI o per tutti i robot, e rispetta qualsiasi Crawl-delay tu imposti. Se il tuo sito blocca i robot, aggiungi un gruppo che consente il nostro token per la durata del crawling; la nostra pagina del crawler mostra le righe esatte.
Le pagine che robots.txt non consente vengono saltate e non addebitate, quindi un file restrittivo non ti costa nulla in più; lascia solo quelle pagine fuori da llms.txt.
Quanto costa?
Un credito per pagina letta, due per le pagine che richiedono un browser. Un sito di documentazione di 300 pagine costa 300 crediti, o fino a 600 se è un'applicazione JavaScript. Ci sta comodamente in 10.000 pagine per 3,75 USD, a ottobre 2026, e i crediti avanzati restano sul tuo account: non scadono mai.
Rigenera il file quando la tua documentazione cambia. Se conservi l'output del crawling, puoi rileggere solo le pagine modificate con un job batch invece di sottoporre tutto a crawling di nuovo.
llms.txt: domande frequenti
Dove metto il file llms.txt?
Alla radice del tuo sito, così viene servito su /llms.txt, come testo semplice o Markdown. Alcuni siti pubblicano anche llms-full.txt con il testo completo delle pagine elencate.
llms.txt sostituisce robots.txt?
No. robots.txt indica quali percorsi i robot devono saltare; llms.txt elenca le pagine che vuoi che i modelli trovino. Tieni entrambi. La nostra guida a robots.txt spiega la differenza.
llms.txt farà citare il mio sito da ChatGPT o Claude?
Non ci sono prove che lo faccia da solo. Lo studio Ahrefs riportato a luglio 2026 ha rilevato che il 97% dei file non ha ricevuto richieste. Contano di più pagine chiare con risposte dirette e fatti datati.
Posso generare llms.txt per il sito di qualcun altro?
Solo per i tuoi siti o con l'accordo del proprietario. Il file parla a nome del sito, quindi spetta al proprietario pubblicarlo.
Fonti (2)
- Dati di adozione di llms.txt — Rankability (2026-09-18)
- L'adozione di llms.txt cresce di 8,8 volte ma il 97% dei file riceve zero richieste AI — PPC Land (2026-07-02)