# Da SEO a GEO: l'architettura tecnica di un sito web leggibile dall'IA

> RAG, llms.txt, JSON-LD, TDM e MCP: l'architettura tecnica con cui i motori di ricerca IA possono leggere e citare correttamente il tuo sito. Con codice.

![Illustrazione minimalista in verde menta su nero sull'architettura di un sito web leggibile dall'IA: a sinistra barre dei risultati di ricerca che svaniscono, al centro un knowledge graph di entità che cresce da dati strutturati, a destra una scheda di risposta IA citata.](https://cdn.btlabs.dev/media/von-seo-zu-geo-ki-lesbare-architektur-2688x1520-9a186c01.webp)

Berger+Team · 28 ott 2026

Tema: [Sito leggibile dalle macchine →](https://btlabs.dev/it/sito-web-ia)

Per decenni la reperibilità si è basata su un unico modello: i motori di ricerca eseguono il [crawling](https://btlabs.dev/it/glossary/crawler) dell'HTML, valutano i link e restituiscono un elenco di link blu. È l'essere umano il filtro che apre le pagine una per una.

[I motori generativi](https://btlabs.dev/it/trovabilita-ia) come Google [AI Overviews](https://btlabs.dev/it/glossary/ai-overview) , Perplexity o ChatGPT rompono questo modello. Utilizzano [Retrieval-Augmented Generation](https://btlabs.dev/it/glossary/rag-retrieval-augmented-generation)   **(RAG)**: cercano contenuti pertinenti in tempo reale, caricano i segmenti di testo adatti nel contesto di un [modello linguistico](https://btlabs.dev/it/glossary/llm-large-language-model) e generano una risposta consolidata con indicazione delle fonti. Chi non viene citato è invisibile.

Questo articolo è [il complemento tecnico a quel discorso](https://btlabs.dev/it/posts/visibilita-due-canali) — per tutti coloro che vogliono costruire un sito web non solo per le persone, ma anche per le macchine. Analizziamo la meccanica di RAG, le leve [GEO](https://btlabs.dev/it/glossary/geo-generative-engine-optimization) comprovate, gli standard e le proposte necessari ([llms.txt](https://btlabs.dev/it/glossary/llms-txt) , [JSON-LD](https://btlabs.dev/it/glossary/dati-strutturati) , TDM, [MCP](https://btlabs.dev/it/glossary/mcp-model-context-protocol) ) e gli errori che abbiamo riscontrato nella pratica.

## 1\. Come selezionano i motori generativi

Al centro di un sistema RAG c'è una semplice idea geometrica. La query di ricerca e i chunk del documento vengono convertiti in vettori ad alta dimensionalità tramite un modello di embedding. La rilevanza di due vettori si determina solitamente attraverso la **similarità del coseno**:

> **Similarità del coseno**
> sim(q, d) = (q · d) / (‖q‖ ‖d‖)

Dove `q` è il vettore della query e `d` è il vettore di un chunk del documento. Il sistema seleziona i `k` chunk con la similarità più alta e li passa al modello linguistico come contesto.

La conseguenza pratica: il modo in cui suddividi i tuoi contenuti in chunk (struttura, titoli, logica dei paragrafi) determina se le tue affermazioni vengono classificate in modo semanticamente pulito — oppure collegate in modo errato. Un chunking scadente è una delle cause principali delle «allucinazioni in forma di citazione», in cui un'AI collega una fonte a un'affermazione che lì non compare affatto.

Dove vengono conservati questi vettori e come un'IA vi trova il passaggio giusto lo spiega [Cos'è un database vettoriale?](https://btlabs.dev/it/posts/cose-un-database-vettoriale).

## 2\. Le leve GEO comprovate

Lo studio _«GEO: Generative Engine Optimization»_ (Aggarwal et al., ACM KDD 2024) ha misurato sistematicamente quali modifiche al testo aumentano la probabilità di essere citati da un LLM — con un incremento di visibilità fino al **40%**. I metodi più efficaci:

- **Statistics Addition** — numeri e dati concreti al posto di affermazioni qualitative. Gli LLM prediligono la precisione.
- **Cite Sources** — supportare le proprie affermazioni con riferimenti alle fonti. Aumenta drasticamente l'affidabilità percepita.
- **Quotation Addition** — inserire citazioni testuali di esperti. Segnala profondità qualitativa.

Da notare: l'effetto dipende dal dominio ed è particolarmente forte per le pagine inizialmente mal posizionate. Il keyword stuffing — il vecchio riflesso [SEO](https://btlabs.dev/it/glossary/seo-ottimizzazione-motori-di-ricerca) — al contrario non funziona.

## 3\. llms.txt: la snella superficie ombra

Il protocollo **llms.txt**proposto da Jeremy Howard (Answer.AI, settembre 2024) fornisce un file Markdown nella root del dominio, che mette a disposizione il nucleo del sito senza la zavorra dell'HTML — come punto d'ingresso efficiente in termini di token per gli LLM.

La specifica (vedi llmstxt.org) è volutamente minimale:

> **llms.txt**
> \# btlabs Core
>
> \> Piattaforma headless per le PMI: un'unica base dati, più canali —
> \> multilingue, leggibile dalle macchine, rispettosa della privacy.
>
> \## Servizi
> \- \[Corporate Websites\](/it/servizi/websites.md): strategia, design, realizzazione
> \- \[Reperibilità AI\](/it/servizi/geo.md): GEO, dati strutturati, MCP
>
> \## Opzionale
> \- \[Chi siamo\](/it/chi-siamo.md): Berger+Team, Bolzano

Una valutazione onesta: nessun grande fornitore di AI si è impegnato formalmente a dare peso a llms.txt come segnale stabile. La situazione realistica del 2026 ricorda quella di schema.org intorno al 2014 — non onorato universalmente, ma abbastanza economico da valerne la pena. Una copertura senza premio.

## 4\. JSON-LD: rendere esplicito il grafo delle entità

I sistemi RAG prediligono i dati strutturati come grafo di fatti. Con **JSON-LD secondo schema.org** colleghi le entità in modo esplicito, invece di lasciar indovinare all'AI come siano correlati marchio, offerta e persone:

> **JSON-LD · schema.org**
> {
> "@context": "https://schema.org",
> "@graph": \[
> {
> "@type": "Organization",
> "@id": "https://btlabs.dev/#organization",
> "name": "btlabs Core",
> "areaServed": { "@type": "AdministrativeArea", "name": "Alto Adige" }
> },
> {
> "@type": "WebPage",
> "@id": "https://btlabs.dev/leistungen",
> "isPartOf": { "@id": "https://btlabs.dev/#website" },
> "about": { "@id": "https://btlabs.dev/#organization" }
> }
> \]
> }

Che cosa significhi concretamente un simile grafo di fatti lo spiega l’articolo [Che cos’è un Knowledge Graph?](https://btlabs.dev/it/posts/cose-un-knowledge-graph).

Il `@graph` con `@id`\-riferimenti è il punto: trasforma snippet isolati in una rete connessa — e riduce proprio quei collegamenti errati che portano alle allucinazioni. Un esempio concreto di questi collegamenti errati è [l'errore NAP: consigliato in modo sbagliato dall'IA invece di non esserlo affatto](https://btlabs.dev/it/posts/l-errore-nap-raccomandato-male) — quando nome, indirizzo e telefono non vengono riconosciuti come un'unica entità coerente.

## 5\. TDM e ai.txt: visibilità sì, training a scelta

Attraverso il **W3C** [TDM Reservation Protocol](https://btlabs.dev/it/glossary/tdm-opt-out-tdmrep) (Final Report 2024, basato sull'art. 4 della direttiva UE sul diritto d'autore, richiamato dall'[EU AI Act](https://btlabs.dev/it/glossary/ai-act-regolamento-ia) ) dichiari in modo [leggibile dalle macchine](https://btlabs.dev/it/glossary/sito-leggibile-dalle-macchine) se i tuoi contenuti sono rilasciati per il training AI o per il mining commerciale:

> **tdmrep.json**
> // /.well-known/tdmrep.json
> \[
> {
> "location": "/",
> "tdm-reservation": 1,
> "tdm-policy": "https://btlabs.dev/tdm-policy.json"
> }
> \]

`tdm-reservation: 1` non è un segnale «nessun TDM», bensì un segnale «diritti riservati». Importante nella pratica: secondo l'interpretazione del gruppo di lavoro, ricerca e reperibilità sono considerate _non_ coperte dall'opt-out — puoi quindi restare visibile nella ricerca AI e al contempo opporti al training.

## 6\. MCP: dal documento all'entità interrogabile

Il passo forse più importante è il **Model Context Protocol (MCP)**. Invece di lasciare che l'AI faccia lo scraping del tuo sito, offri un endpoint autenticato e definito da schema, attraverso il quale gli agenti autorizzati leggono in modo mirato — e agiscono in modo controllato:

> **Policy & Tools · TypeScript**
> // Policy-Deklaration
> export const AI\_ALLOW\_MODEL\_TRAINING = false
> export const AI\_ALLOW\_DATA\_MINING = false
> export const AI\_ATTRIBUTION\_REQUIRED = true
> export const MCP\_ENDPOINT = '/api/mcp'
>
> // Exponierte Tools — scoped, auditierbar
> const mcpTools = \[
> 'list\_services',
> 'search\_content',
> 'get\_opening\_hours',
> 'submit\_inquiry', // controllato, non aperto
> \] as const

I diritti delle chiavi MCP si abilitano per singola area e azione — per esempio lettura in molte aree, scrittura solo su tipi definiti. Ogni azione viene registrata. Così il tuo sito web diventa un' **entità interrogabile** — il fondamento per l'imminente [Agent-to-Agent-Web](https://btlabs.dev/it/automazione-ia), in cui gli assistenti AI personali confrontano, richiedono e prenotano per conto dei loro utenti. Cosa richiede davvero questa prontezza per gli agenti, al di là del malinteso sul chatbot, lo spiega [Pronto per gli agenti non significa «installare un chatbot»](https://btlabs.dev/it/posts/agent-ready-non-significa-chatbot). Come sono graduati questi diritti nel dettaglio lo mostra [uno sguardo alle chiavi MCP granulari](https://btlabs.dev/it/posts/chiavi-mcp-diritti-granulari-per-area-di-dati).

## 7\. Lessons learned dalla pratica

Dalla costruzione dell'architettura btlabs Core, alcune insidie che non figurano in nessuna specifica:

**Evitare la silent truncation.** Se un feed come `llms-full.txt` carica migliaia di documenti senza paginazione, si rischiano overflow di memoria e risposte troncate senza che ce ne si accorga. Soluzione: indicazioni sui limiti (`Showing first N of M`) e paginazione basata su cursore.

**Collegamento multilingue.** I modelli AI lavorano in modo cross-linguistico. Se nei twin Markdown mancano gli analoghi di [hreflang](https://btlabs.dev/it/glossary/hreflang) (link alle traduzioni), indebolisci la tua forza di citazione cross-linguistica — e in una regione come l' [Alto Adige](https://btlabs.dev/it/sito-multilingue) è fatale.

**Non «decorare» i protocolli per i bot.** Inventare parole chiave proprie in `ai.txt` è inutile — i parser cercano rigidamente il vocabolario fissato dalla proposta. Attenersi allo standard batte la creatività.

**Risolvere i segnaposto prima della pubblicazione.** I crawler AI non devono leggere template incompleti (`{{contactEmail}}`), ma solo i dati finali e verificati. La risoluzione va fatta prima del build Markdown, non dopo.

## 8\. Come btlabs Core lo realizza

In btlabs Core questi elementi non sono uno stack di plugin, ma parte della piattaforma. Il `llms.txt` viene costruito on-the-fly dal CMS — con query parallele per minimizzare la latenza:

> **Build di llms.txt · TypeScript**
> const \[pages, posts, faqs\] = await Promise.all(\[
> cms.find({
> collection: 'pages',
> locale: core.locale,
> where: { and: publishedFilter('pages') },
> limit: 25,
> select: { slug: true, title: true, meta: true },
> }),
> // ...weitere Abfragen
> \])

JSON-LD, hreflang, tdmrep.json, ai.txt e l'endpoint MCP vengono generati dalla stessa base dati del sito web destinato agli esseri umani — una [single source of truth](https://btlabs.dev/it/glossary/single-source-of-truth) , due livelli di output. È proprio questo il punto: il livello leggibile dalle macchine non è un'aggiunta successiva, ma viene prodotto automaticamente come sottoprodotto.

Perché questa separazione tra contenuti e presentazione conta anche per una piccola attività lo spiega [Headless: perché conta come è costruito il tuo sito](https://btlabs.dev/it/posts/headless-come-e-costruito-il-sito).

## Conclusione

Il web tradizionale è stato costruito per l'occhio umano. Il web che verrà è un Agent-to-Agent-Web, in cui le interfacce AI dialogano tra loro. I KPI si spostano di conseguenza: dal ranking classico verso **LLM-Share-of-Voice** e **Citation Probability**.

La tecnologia per farlo esiste già oggi — struttura conforme a RAG, llms.txt, JSON-LD, TDM e MCP. La maggior parte delle PMI semplicemente non la usa ancora. Chi costruisce ora, costruisce il proprio vantaggio.

Un punto importante: un buon ranking su Google da solo non basta più. [Primo su Google, invisibile in ChatGPT](https://btlabs.dev/it/posts/primo-google-invisibile-chatgpt) mostra perché ranking e visibilità nell'IA sono due giochi con regole proprie.

Se vuoi verificare quanto è strutturato il tuo sito per i sistemi IA, o hai bisogno di supporto nell'implementazione — [contattaci](https://btlabs.dev/it/contatti).

## Fonti & standard

- **GEO: Generative Engine Optimization** — Aggarwal, P. et al., ACM SIGKDD 2024\. [arxiv.org/abs/2311.09735](https://arxiv.org/abs/2311.09735)
- **The /llms.txt proposal** — Jeremy Howard, Answer.AI, 2024\. [llmstxt.org](https://llmstxt.org/) · [Proposta originale](https://www.answer.ai/posts/2024-09-03-llmstxt.html)
- **W3C TDM Reservation Protocol (TDMRep)** — W3C CG Final Report, 2024\. [w3.org/community/reports/tdmrep](https://www.w3.org/community/reports/tdmrep/CG-FINAL-tdmrep-20240510/)
- **AI Search Has a Citation Problem** — Tow Center for Digital Journalism, Columbia, 2025\. [cjr.org](https://www.cjr.org/tow%5Fcenter/we-compared-eight-ai-search-engines-theyre-all-bad-at-citing-news.php)
- **schema.org** — vocabolario per dati strutturati. [schema.org](https://schema.org)
- **Model Context Protocol (MCP)** — standard aperto per le interfacce degli agenti AI. [modelcontextprotocol.io](https://modelcontextprotocol.io)

_Nota: GEO, llms.txt e TDMRep sono approcci giovani e in evoluzione — llms.txt, per esempio, è una proposta di settore, non una norma approvata. L'adozione e l'efficacia stanno crescendo, ma non sono garantite formalmente da nessun grande fornitore di AI._

## Domande frequenti.

**Cosa mi porta la GEO — perché il mio sito dovrebbe essere citato dall'IA?**

Se sempre più persone ricevono le risposte direttamente da ChatGPT, Perplexity o dall'IA di Google, a decidere se vieni trovato non è più solo il tuo posizionamento su Google, ma se l'IA ti nomina come fonte. È qui che interviene la GEO (Generative Engine Optimization): prepara i tuoi contenuti in modo che i sistemi IA possano leggerli correttamente, capirli e citarli nelle loro risposte. Il vantaggio è concreto: hai la possibilità di essere raccomandato quando un potenziale cliente chiede all'IA un fornitore come te — con affermazioni chiare e leggibili in autonomia, dati strutturati e formati leggibili dalle macchine. Chi non compare qui, semplicemente non esiste per questo gruppo crescente di persone che cercano.

**Ho assolutamente bisogno di un file llms.txt?**

Non è un segnale di ranking per Google (lo dice Google stesso) — ma si crea in pochi minuti ed è utile come orientamento per gli [agenti IA](https://btlabs.dev/it/glossary/agente-ia) . Un'aggiunta economica, non un rimedio miracoloso.

Quanto sia davvero diffuso lo misuriamo noi stessi: a novembre 2026 lo espone il 14,8% dei domini verificati. La misurazione è pubblica nell'[ai-discovery-radar](https://btlabs.dev/it/ai-discovery-radar).

**Cosa ci guadagna la mia azienda se gli assistenti IA possono parlare direttamente con il mio sito?**

Le tue informazioni sono pronte dove i clienti chiedono sempre più spesso. Invece di raccogliere frammenti dalla tua pagina e indovinare, l'IA legge tramite un'interfaccia aperta — MCP (Model Context Protocol) — esattamente i contenuti che hai inserito: servizi, orari, contatti. L'obiettivo: meno informazioni sbagliate sulla tua attività e citazioni corrette con indicazione della fonte — se un'IA usa questa via lo decide il suo fornitore. Il controllo resta a te — decidi quali contenuti sono accessibili, e ogni accesso viene registrato.

**Il SEO classico è diventato superfluo con la ricerca IA?**

No. Le panoramiche IA di Google citano in gran parte pagine che già si posizionano bene in modo classico. Il SEO resta il biglietto d'ingresso — l'ottimizzazione per l'IA (GEO) è l'estensione con risposte citabili, struttura e autorevolezza visibile.

Prossimo passo

## Diamo un’occhiata insieme?

Niente pitch, niente pacchetti standard — una valutazione onesta del tuo progetto. Risposta di norma entro 24 h.

[Iniziamo a parlarne →](https://btlabs.dev/it/contatti#cta)

## Potrebbe interessarti anche

- [· Come un agente IA legge la tua azienda: le quattro interfacce dietro la risposta · Un agente IA non apre il tuo sito come una persona: recupera quattro interfacce leggibili dalle macchine. Quali sono, che cosa succede se ne manca una, e il limite onesto: 23.520 richieste automatiche in 30 giorni (dato di agosto 2026), ma solo quattro citazioni conteggiate.](https://btlabs.dev/it/posts/come-gli-agenti-ia-leggono-la-tua-azienda)
- [· Cosa trova un agente IA sul tuo sito: l'autotest in cinque passi · Prima di leggere le tue pagine, un agente IA chiede a pochi indirizzi concordati. Cinque li puoi controllare da solo con un browser in pochi minuti — con il significato di ciascuno e quanto è diffuso.](https://btlabs.dev/it/posts/agente-ia-sito-autotest)
- [· Il vocabolario su cui le macchine si sono messe d'accordo · Schema.org non è un formato, è un dizionario — un elenco pubblico e limitato di cose che le macchine chiamano allo stesso modo. Chi inventa una parola non viene letto.](https://btlabs.dev/it/posts/vocabolario-schema-org)

---
Source: https://btlabs.dev/it/posts/da-seo-a-geo-architettura
Languages: [de](https://btlabs.dev/llms/de/posts/von-seo-zu-geo-architektur) · [en](https://btlabs.dev/llms/en/posts/from-seo-to-geo-architecture)
See also: [llms.txt](https://btlabs.dev/llms.txt) · [ai.txt (Policy)](https://btlabs.dev/ai.txt) · [identity.json](https://btlabs.dev/identity.json)
