Il file llms.txt è una proposta di standard per rendere i siti web leggibili dai modelli di intelligenza artificiale. Posizionato alla radice del dominio (es. https://example.com/llms.txt), fornisce una mappa strutturata in formato Markdown dei contenuti più importanti del sito, aiutando ChatGPT, Perplexity, Claude e altri LLM a trovare e citare le informazioni corrette. In questa guida vediamo come implementarlo su WordPress, perché è complementare a robots.txt e sitemap.xml, e quali plugin usare per generarlo automaticamente.
TL;DR: Cos’è llms.txt e perché ti riguarda
llms.txt è stato proposto da Jeremy Howard (Answer.AI / FastAI) il 3 settembre 2024 come soluzione a un problema reale: le finestre di contesto degli LLM sono troppo piccole per digerire un sito web intero, e l’HTML è pieno di navigazione, ads e JavaScript che confondono i modelli. Un file llms.txt risolve questo offrendo un indice curato dei contenuti rilevanti in formato Markdown.
I dati di adozione al giugno 2026 mostrano che 737 siti sui top 10.000 (7,4%) pubblicano un file llms.txt reale, secondo la ricerca di Chris Humphrey su Majestic Million. Tra questi: Anthropic, Stripe, Cursor, Cloudflare, Vercel, Mintlify, Supabase. Adozioni che sembrano poche ma crescono rapidamente.
Per le agenzie che gestiscono siti WordPress clienti, pubblicare un file llms.txt ha un costo quasi zero e un’opzionalità reale: non sai quali AI lo leggeranno domani, ma sai che se lo faranno il tuo sito sarà pronto.
Differenza tra llms.txt, robots.txt e sitemap.xml
I tre file collaborano ma hanno scopi diversi. Capirli separatamente è essenziale prima di implementarli.
| File | Scopo | Chi lo legge | Formato |
|---|---|---|---|
| robots.txt | Controlla quali crawler possono accedere e a quali path | Googlebot, GPTBot, ClaudeBot, PerplexityBot | Plain text con direttive User-agent / Disallow |
| sitemap.xml | Elenca tutte le URL del sito per l’indicizzazione | Motori di ricerca tradizionali | XML |
| llms.txt | Offre una mappa curata dei contenuti più importanti in linguaggio naturale | LLM, agenti AI, IDE assistant (Cursor, Continue) | Markdown |
La differenza chiave: robots.txt controlla l’accesso, sitemap.xml enumera, llms.txt curato. Un sitemap elenca 500 URL senza contesto; un llms.txt ne seleziona 20 con una descrizione per ciascuno. È la differenza tra dare a qualcuno l’elenco telefonico e dargli una breve guida alle persone più importanti da contattare.
Il formato llms.txt: specifica tecnica
La specifica è volutamente semplice. L’unico elemento obbligatorio è un H1 con il nome del progetto o sito. Tutto il resto è opzionale ma segue un ordine fisso:
# Nome Sito
> Breve descrizione del progetto in una o due frasi che catturano l'essenza.
Paragrafi o liste con informazioni aggiuntive sul progetto.
## Documentazione
- [Titolo link](https://example.com/doc1.md): Descrizione opzionale
- [Altro link](https://example.com/doc2.md): Cosa copre questa pagina
## Optional
- [Risorsa secondaria](https://example.com/extra.md): Contenuto skippabile
Convenzioni importanti:
- Link in Markdown, non HTML — il punto è renderlo facile da parsare per un LLM
- Linka versioni .md delle pagine quando possibile (es.
pagina.html.md) - La sezione ## Optional ha significato speciale: gli agenti con poco contesto possono saltarla
- Sii spietato nella curazione: se non vorresti che un LLM citasse una pagina, non listarla
La famiglia completa: llms.txt, llms-full.txt, llms-ctx.txt
La proposta originale definiva un solo file. Gli implementatori ne hanno aggiunti altri due:
| File | Contenuto | Quando usarlo |
|---|---|---|
/llms.txt |
Indice curato — H1, summary, sezioni di link | Sempre. È la mappa. |
/llms-full.txt |
Contenuto completo di ogni pagina linkata, concatenato in Markdown | Quando vuoi che un modello ingesti tutta la documentazione in un colpo |
/llms-ctx.txt |
Versione intermedia con contesto espanso ma senza link opzionali | Per contesti medi (< 200K token) |
Come implementare llms.txt su WordPress: 3 metodi a confronto
WordPress non serve file statici alla radice del dominio in modo nativo senza un plugin o una regola di rewrite. Ecco tre approcci dal più semplice al più avanzato.
Metodo 1: Plugin WordPress (consigliato per la maggior parte)
Al 2026 esistono almeno tre plugin nel repository WordPress.org che generano e mantengono un file llms.txt automaticamente:
- Website LLMs.txt (wordpress.org/plugins/website-llms-txt/) — Generazione automatica con integrazione Yoast SEO, Rank Math, SEOPress e AIOSEO. È il più completo per chi usa già un plugin SEO.
- Project LLMs.txt (wordpress.org/plugins/project-llmstxt/) — Più minimale, genera il file dalla struttura dei contenuti esistente.
- WP-LLMS (github.com/xantus-ai/wp-llms-plugin) — Open source con audit AI-readiness integrato, genera anche varianti .md per singole pagine. Richiede WordPress 6.0+ e PHP 8.1+.
Nella nostra esperienza con siti clienti, il plugin Website LLMs.txt è il punto di partenza più rapido: installa, attiva, configura le sezioni da includere e il file è disponibile a /llms.txt senza toccare il server.
Metodo 2: Rewrite rule in Nginx o Apache
Se preferisci non installare un plugin e hai accesso al server, puoi servire un file llms.txt statico tramite una rewrite rule. Per Nginx:
location = /llms.txt {
alias /var/www/sito/llms.txt;
default_type text/markdown;
add_header Cache-Control "public, max-age=3600";
}
Per Apache (nel virtualhost o .htaccess):
<Files "llms.txt">
ForceType text/markdown
Header set Cache-Control "public, max-age=3600"
</Files>
Questa soluzione è la più performante perché il file viene servito direttamente dal web server senza passare per PHP. Richiede però manutenzione manuale del contenuto.
Metodo 3: Endpoint REST API personalizzato
Per agenzie che vogliono generare il file dinamicamente dai contenuti, un endpoint REST API è la soluzione più flessibile. Ecco un esempio in PHP da aggiungere al functions.php del tema o in un mu-plugin:
add_action('rest_api_init', function() {
register_rest_route('custom/v1', '/llms-txt', [
'methods' => 'GET',
'callback' => 'agencypilot_generate_llms_txt',
'permission_callback' => '__return_true',
]);
});
function agencypilot_generate_llms_txt(WP_REST_Request $request) {
$lines = [];
$lines[] = '# ' . get_bloginfo('name');
$lines[] = '';
$lines[] = '> ' . get_bloginfo('description');
$lines[] = '';
// Sezione documentazione
$lines[] = '## Documentazione';
$pages = get_pages(['sort_column' => 'post_modified', 'sort_order' => 'DESC', 'number' => 10]);
foreach ($pages as $page) {
$lines[] = '- [' . $page->post_title . '](' . get_permalink($page->ID) . '): ' . wp_strip_all_tags($page->post_excerpt ?: wp_trim_words($page->post_content, 20));
}
$lines[] = '';
// Sezione blog
$lines[] = '## Articoli';
$posts = get_posts(['numberposts' => 15, 'post_status' => 'publish']);
foreach ($posts as $post) {
$lines[] = '- [' . $post->post_title . '](' . get_permalink($post->ID) . '): ' . wp_strip_all_tags(get_the_excerpt($post));
}
return new WP_REST_Response(implode("\n", $lines), 200, [
'Content-Type' => 'text/markdown; charset=utf-8',
]);
}
Questo endpoint genererà dinamicamente il file a /wp-json/custom/v1/llms-txt. Per servirlo a /llms.txt, aggiungi una rewrite rule in Nginx:
location = /llms.txt {
proxy_pass http://127.0.0.1:8080/wp-json/custom/v1/llms-txt;
}
Esempio reale: file llms.txt per un sito agenzia
Ecco un template concreto per un’agenzia web che gestisce siti WordPress, ispirato ai file pubblicati da Anthropic e Stripe:
# AgencyPilot
> Piattaforma di gestione WordPress per agenzie web. Monitoraggio, automazione, sicurezza e reporting per 50+ siti clienti da un'unica dashboard.
AgencyPilot aiuta le agenzie a gestire aggiornamenti, backup, sicurezza e performance di siti WordPress multipli con automazione AI.
## Documentazione
- [Gestione siti WordPress per agenzie](https://agencypilot.it/blog/gestione-siti-wordpress-agenzie-guida-completa): Guida completa alla gestione multi-sito
- [Sicurezza WordPress per agenzie](https://agencypilot.it/blog/sicurezza-wordpress-guida-agenzie): Hardening, monitoring e recovery
- [Performance WordPress Core Web Vitals](https://agencypilot.it/blog/performance-wordpress-core-web-vitals-agenzie): Ottimizzazione LCP, CLS, INP
- [Backup WordPress disaster recovery](https://agencypilot.it/blog/backup-wordpress-disaster-recovery-agenzie): Strategia 3-2-1 con automazione
- [Automatizzare gestione WordPress](https://agencypilot.it/blog/automatizzare-gestione-wordpress-scalare-agenzia): Claude API e workflow AI
## Confronti
- [ManageWP vs MainWP vs AgencyPilot](https://agencypilot.it/blog/managewp-mainwp-agencypilot-confronto): Confronto reale con dati 2026
- [WordPress REST API endpoint personalizzati](https://agencypilot.it/blog/wordpress-rest-api-endpoint-personalizzati-guida): Guida completa agli endpoint custom
## Optional
- [Accessibilità WordPress per PA](https://agencypilot.it/blog/accessibilita-wordpress-pubblica-amministrazione): WCAG 2.2 e conformità AGID
Errori comuni da evitare
Nella nostra esperienza implementando llms.txt su oltre 30 siti clienti, questi sono gli errori più frequenti:
- Soft 404 — Il server restituisce 200 OK ma serve l’homepage in HTML invece del file Markdown. Il 30% dei falsi positivi nell’adozione è dovuto a questo, secondo l’analisi di Chris Humphrey. Verifica con
curl -I https://example.com/llms.txtche il Content-Type siatext/markdown. - Elencare tutto — Un llms.txt con 500 link è inutile quanto un sitemap. La curazione è il valore. Sotto 50 link è il range ideale.
- Dimenticare la sezione Optional — È l’unico costrutto semantico speciale della specifica. Usala per contenuto secondario che può essere saltato quando il contesto è limitato.
- Non aggiornare il file — Un llms.txt che linka a pagine rimosse o outdated è peggio di non averlo. Automatizza l’aggiornamento o schedulalo mensilmente.
- Bloccare i crawler AI in robots.txt — Ha senso pubblicare llms.txt ma bloccare GPTBot in robots.txt. Verifica che il tuo robots.txt permetta ai crawler AI principali (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) se l’obiettivo è la citazione AI.
Verificare la configurazione con GEO Optimizer
Se gestisci più siti WordPress, verificare manualmente ogni llms.txt è impraticabile. GEO Optimizer, il tool open source che abbiamo sviluppato proprio per questo, include un comando che genera e valida il file llms.txt partendo dal sitemap:
# Genera un file llms.txt dal sitemap
geo llms https://agencypilot.it/sitemap.xml --lang it
# Verifica che il file sia corretto
geo audit https://agencypilot.it/llms.txt --lang it
L’audit controlla: formato Markdown valido, presenza H1, summary, sezioni, link funzionanti, e compatibilità con la specifica. Per una strategia completa di gestione WordPress, integrare la generazione di llms.txt nel workflow di deploy è il modo più efficace.
llms.txt e SEO: cosa dicono i dati
La domanda cruciale: llms.txt migliora le citazioni AI? I dati disponibili al 2026 sono onesti:
- Uno studio di SERanking su 300.000 domini (novembre 2025) non ha trovato un aumento statisticamente significativo di citazioni AI nei siti che pubblicano llms.txt rispetto a quelli che non lo fanno.
- I crawler dei principali LLM (GPTBot, ClaudeBot, Google-Extended) non richiedono il file in volumi significativi, secondo l’analisi dei log server.
- Chi usa davvero il file sono gli IDE agent (Cursor, Continue, Cline) e alcune integrazioni MCP.
Allora perché pubblicarlo? Tre motivi pratici:
- Costo quasi zero — Un file Markdown statico, 30 minuti di lavoro.
- Opzionalità — Non sai quali AI lo leggeranno domani. Il costo di non averlo quando servirà è superiore al costo di pubblicarlo oggi.
- Disciplina — Scrivere un buon llms.txt ti costringe a fare l’inventario dei tuoi contenuti migliori. Questo esercizio ha valore indipendentemente dall’adozione AI.
robots.txt per AI bot: il companion essenziale
llms.txt è inutile se il tuo robots.txt blocca i crawler AI. Verifica che il tuo robots.txt permetta l’accesso ai principali bot AI. Ecco un template:
# AI Crawlers - Consenti accesso
User-agent: GPTBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /
# Blocca accessi non necessari
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Allow: /wp-content/uploads/
Sitemap: https://example.com/sitemap.xml
Per una guida completa a robots.txt per AI bot, vedi il nostro articolo dedicato su robots.txt per AI bot.
FAQ — Domande frequenti su llms.txt per WordPress
llms.txt è uno standard ufficiale?
No, è una proposta di standard di Jeremy Howard (Answer.AI) pubblicata a settembre 2024. Nessun motore di ricerca o AI platform ha annunciato supporto ufficiale, ma diversi tool e aziende lo adottano volontariamente. Al giugno 2026, il 7,4% dei top 10.000 siti pubblica un file llms.txt reale.
llms.txt sostituisce robots.txt?
No. robots.txt controlla l’accesso dei crawler, llms.txt fornisce un indice curato dei contenuti. Sono complementari. Il tuo robots.txt deve permettere i crawler AI prima che llms.txt abbia senso.
Quanti link inserire in llms.txt?
Meno di 50, idealmente sotto 30. Il valore del file sta nella curazione, non nella completezza. Se elenchi tutto, stai facendo un sitemap, non un llms.txt.
Quali plugin WordPress generano llms.txt?
I principali sono Website LLMs.txt (con integrazione Yoast, Rank Math, SEOPress, AIOSEO), Project LLMs.txt, e WP-LLMS di Xantus AI. Tra i plugin SEO generalisti, Yoast ha generato 59 file sui top 10.000 siti, AIOSEO 22, Rank Math 8.
llms.txt migliora il ranking Google?
Non ci sono evidenze che Google utilizzi llms.txt per il ranking. Google ha il proprio sistema di indicizzazione e AI Overviews che non dipende da questo file. llms.txt è pensato per LLM di terze parti, non per il search algorithm di Google.
Quanto spesso aggiornare il file?
Ad ogni pubblicazione di contenuto rilevante o almeno mensilmente. Se usi un plugin che lo genera dinamicamente, il problema non si pone. Per file statici, schedula un aggiornamento nel tuo checklist manutenzione WordPress mensile.