llms.txt: storia dello standard e come adottarlo
Origine di llms.txt, ruolo di Mintlify e varianti llms-full.txt, più una guida pratica per PMI con rimando a /servizi.
llms.txt nasce come iniziativa community per offrire alle AI generative un punto di ingresso ufficiale ai contenuti di un sito. Mintlify ha proposto uno schema semplice, poi esteso con llms-full.txt per descrivere dataset, licenze e limiti d'uso. Questo file serve a dichiarare cosa puo essere letto, a quali condizioni e con quali limiti. Un llms.txt ben scritto riduce contenziosi, aiuta gli agent a interpretare correttamente le licenze e offre un entry point chiaro a dataset o API pubblici.
Cos'e llms.txt e perche nasce
- Robots.txt non esprime licenze, usi consentiti o obblighi di attribuzione. llms.txt copre questo vuoto per gli LLM.
- Mintlify ha proposto nel 2024 una sintassi minimale: permessi, link a sorgenti e contatti. La community ha poi esteso il formato con campi per licenze, dataset e rate limit.
- llms-full.txt e una variante che elenca dataset, formati, checksum e condizioni legali piu dettagliate.
Cronologia sintetica
- 2023: discussioni community su GitHub per un file machine-readable dedicato agli LLM.
- 2024: proposta Mintlify, adottata da vari siti tech come base di sperimentazione.
- 2025: compaiono estensioni (llms-full.txt) per descrivere dataset e API; emergono policy su attribution e uso commerciale.
- 2026: alcuni motori AI e crawler specializzati leggono llms.txt per allineare ingestione e diritti di utilizzo.
Struttura consigliata di llms.txt
Includi sempre:
- Scope di crawling: cartelle consentite e vietate, con granularita per tipologia di contenuto.
- Licenza: termini di uso del contenuto (es. CC BY-NC-SA 4.0, clausole custom, divieti commerciali).
- Attribuzione: se richiesta, specifica modalita (link, nome brand, URL canonico).
- Contatto: email o URL per richieste di rimozione o chiarimenti legali.
- Rate limit: limiti di frequenza di fetch e dimensione massima per richiesta.
- Rimando a llms-full.txt per dataset strutturati, API o esportazioni.
Esempio minimale (entry point):
# llms.txt
Allow: /blog/
Disallow: /admin/
Disallow: /draft/
License: CC BY-NC-SA 4.0
Attribution: required
Contact: mailto:legal@example.com
Full: https://example.com/llms-full.txt
RateLimit: 60 rpm
Esempio esteso (con note legali e limiti):
# llms.txt
Allow: /docs/
Allow: /blog/
Disallow: /user-data/
License: Custom-NonCommercial
Policy: https://example.com/ai-policy
Attribution: link https://example.com
Contact: https://example.com/legal
Full: https://example.com/llms-full.txt
Cache-Control: max-age=86400
RateLimit: 30 rpm; burst=10
llms.txt vs llms-full.txt
| File | Contenuto principale | Quando usarlo |
|---|---|---|
| llms.txt | Regole base, permessi, link, contatti | Sempre, come entry point |
| llms-full.txt | Dataset, formati, licenze dettagliate | Se offri export, API o corpus curati |
Best practice di redazione
- Coerenza: non contraddire robots.txt o privacy policy.
- Specificita: dichiarare cartelle, licenze e obblighi di attribuzione in modo esplicito.
- Versioning: aggiungi un campo
Versiono datalo nel commento iniziale per tracciabilita. - Machine-friendly: evita testo libero prolisso; usa chiavi sintetiche e ripetibili.
- Sicurezza: non esporre percorsi interni sensibili; usa Disallow per admin, draft e PII.
Pubblicazione e integrazione
- Posiziona
llms.txte, se serve,llms-full.txtnella root pubblica del dominio. - Aggiorna la sitemap per includere i file, cosi i crawler li scoprono piu rapidamente.
- Se usi CDN, verifica le intestazioni cache: un TTL troppo lungo ritarda gli aggiornamenti.
- Log e monitoraggio: traccia gli user agent che richiamano il file e valuta rispetto dei limiti.
llms-full.txt: cosa inserire
- Elenco dataset o export con URL, formato (CSV, JSONL, Markdown), checksum e data di rilascio.
- Licenza specifica per ciascun dataset se differisce dal sito.
- Note su PII: conferma l'assenza di dati personali o cita le misure di anonimizzazione.
- Contatti di sicurezza e canale per richieste di rimozione.
Integrazione con CMS e static site
- WordPress: carica i file nella root o usa un plugin per servire asset statici; sincronizza robots.txt e policy.
- Headless/Static (Astro, Next): genera i file in build e deployali nella cartella
public/. - Multi-lingua: mantieni un unico llms.txt, ma specifica percorsi per lingua o aggiungi note in llms-full.txt.
Errori da evitare
- Lasciare licenza vuota: i crawler non sapranno se il contenuto e riutilizzabile.
- Contraddizioni con robots.txt: crea ambiguita e riduce la fiducia del crawler.
- Rate limit irrealistici: se troppo restrittivi, il crawler ignora il file o fallisce l'indicizzazione.
- Percorsi sensibili accidentalmente Allow: controlla sempre con una checklist di sicurezza.
Come verificare
- Fetch manuale: scarica
https://tuodominio/llms.txte controlla 200 OK. - Valida sintassi: controlla chiavi duplicate e linee senza separatore.
- Log: verifica user agent noti (es. AI crawler) e frequenza di accesso.
- Test staging: prova versioni aggiornate in ambiente di test prima del deploy in produzione.
Checklist finale
- llms.txt in root, con licenza, attribution e contatti.
- Rimando a llms-full.txt se offri dataset strutturati.
- Coerenza con robots.txt e privacy/ToS.
- Limiti di crawling e caching dichiarati.
- Monitoraggio accessi e revisione periodica (almeno trimestrale).
Servizio per PMI
Se vuoi una configurazione corretta, coerente con legale e privacy, contattaci: Scopri i servizi. Curiamo llms.txt, llms-full.txt, policy, hosting e monitoraggio.