# llms.txt + AEO Schema per WooCommerce — Guida completa

> Panoramica Il plugin DataFirefly llms.txt + AEO Schema rende il tuo negozio WooCommerce visibile e correttamente compreso dagli agenti IA (ChatGPT, Claude, Perplexity, Gemini). Combina due meccanismi complementari: Un endpoint…

- Pagina: <https://www.datafirefly.com/it/documentation/llms-txt-aeo-schema-woocommerce/>
- Lingua: it
- Aggiornato il: 2026-08-06
- Altre lingue: [fr](https://www.datafirefly.com/documentation/llms-txt-aeo-schema-woocommerce/index.md), [en](https://www.datafirefly.com/en/documentation/llms-txt-aeo-schema-woocommerce/index.md), [es](https://www.datafirefly.com/es/documentation/llms-txt-aeo-schema-woocommerce/index.md), [de](https://www.datafirefly.com/de/documentation/llms-txt-aeo-schema-woocommerce/index.md), [pl](https://www.datafirefly.com/pl/documentation/llms-txt-aeo-schema-woocommerce/index.md), [nl](https://www.datafirefly.com/nl/documentation/llms-txt-aeo-schema-woocommerce/index.md), [pt](https://www.datafirefly.com/pt/documentation/llms-txt-aeo-schema-woocommerce/index.md)
- Indice: <https://www.datafirefly.com/it/documentation/llms.txt>

## Panoramica

Il plugin **DataFirefly llms.txt + AEO Schema** rende il tuo negozio WooCommerce visibile e correttamente compreso dagli agenti IA (ChatGPT, Claude, Perplexity, Gemini). Combina due meccanismi complementari:

- Un **endpoint /llms.txt dinamico** conforme allo standard llmstxt.org, generato dal tuo catalogo con cache per lingua.
- Un **arricchimento dello schema Product** di WooCommerce con gli attributi anti-allucinazioni che gli agenti cercano: marca, GTIN, materiali, compatibilità, politiche di reso e spedizione, più uno schema FAQPage separato orientato agli agenti.

## Requisiti

- WordPress 6.2 o superiore
- WooCommerce 8.0 o superiore (testato fino alla 9.4)
- PHP 8.0 o superiore
- Opzionale: Polylang o WPML per la generazione multilingue

## Installazione

1. Scarica l'archivio `dfllmstxtaeo.zip` dal tuo account DataFirefly.
2. Nell'admin di WordPress, vai su **Plugin → Aggiungi nuovo → Carica plugin**, seleziona lo ZIP e clicca su **Installa ora**.
3. Attiva il plugin. La rewrite rule per `/llms.txt` viene registrata e i permalink vengono aggiornati automaticamente all'attivazione.
4. Verifica che `https://tuosito.tld/llms.txt` risponda. In caso di 404, vai su **Impostazioni → Permalink** e clicca su **Salva modifiche** per forzare un flush delle regole.

## Impostazioni generali

La pagina di configurazione si trova in **WooCommerce → llms.txt + AEO**. In alto mostra l'URL del tuo llms.txt con un link diretto di anteprima.

### Servire /llms.txt

Quattro interruttori controllano le funzioni principali: l'endpoint llms.txt, l'arricchimento dello schema prodotto, l'output dello schema FAQPage e la specifica Speakable. Tutto è attivo per impostazione predefinita.

### Contenuto del llms.txt

- **Includere prodotti / pagine / articoli**: scegli quali sezioni vengono generate.
- **Massimo prodotti**: da 1 a 1000 (200 predefinito). I prodotti più recenti compaiono per primi.
- **Durata della cache**: in minuti, 0 per disattivarla. La cache viene comunque svuotata automaticamente a ogni modifica di prodotto, pagina o impostazione.
- **Paragrafo introduttivo**: testo libero (testo semplice o markdown) inserito dopo la descrizione del sito.

### Valori predefiniti dello schema

- **Nome marca predefinito**: usato quando un prodotto non ha una marca propria.
- **Paese del venditore (ISO-2)**: lascialo vuoto per usare il paese base di WooCommerce.
- **Finestra di reso predefinita**: in giorni, alimenta hasMerchantReturnPolicy.
- **Costi di reso**: reso gratuito, il cliente paga la spedizione, o il cliente paga tutti i costi.

## L'endpoint /llms.txt

Il file viene servito con le intestazioni `Content-Type: text/markdown; charset=utf-8` e `X-Robots-Tag: noindex` (punta ai crawler IA, non all'indice di Google). Sezioni generate: categorie di prodotti, prodotti (titolo, URL, prezzo, descrizione breve), pagine, articoli, e i link alla privacy policy e ai termini configurati in WordPress e WooCommerce.

### Come funziona la cache

Il contenuto viene memorizzato in un transient per lingua (`dfllmstxtaeo_llms_cache_{lang}`). Viene invalidato automaticamente sugli hook `save_post_product`, `save_post_page`, `deleted_post` e a ogni salvataggio delle impostazioni del plugin.

### Multilingue

Polylang e WPML vengono rilevati automaticamente. Ogni lingua ottiene il proprio llms.txt servito sotto il proprio prefisso URL (ad esempio `/it/llms.txt` secondo la tua configurazione Polylang), con cache indipendente. Senza plugin multilingue, viene usata la locale di WordPress.

## La scheda AEO Schema sui prodotti

Ogni prodotto guadagna una scheda **AEO Schema** nel pannello dati di WooCommerce (Prodotto → Modifica).

### Campi disponibili

- **Marca**: sostituisce la marca globale per questo prodotto. In alternativa, il plugin cerca un attributo `pa_brand` o `brand`.
- **GTIN / EAN / UPC**: 8, 12, 13 o 14 cifre. La proprietà `gtin8/12/13/14` corrispondente viene aggiunta automaticamente in base alla lunghezza.
- **MPN**: codice del produttore.
- **Materiali**: separati da virgole (es. «pelle, cotone riciclato»). Un solo materiale produce una stringa, più materiali producono un array.
- **Compatibile con**: un elemento per riga. Ogni riga diventa una voce `isRelatedTo` di tipo Product.

### FAQ orientata agli agenti IA

Sotto i campi, la sezione **FAQ orientata agli agenti** permette di aggiungere coppie domanda/risposta brevi e fattuali (compatibilità esatta, dimensioni, ingredienti, certificazioni). Alimentano uno schema `FAQPage` JSON-LD separato, emesso solo sulle pagine prodotto che hanno almeno una voce. Questa FAQ è invisibile lato cliente: non viene mostrata nel tema, esiste unicamente per gli agenti.

Scrivi le risposte come fatti verificabili, non come argomenti di vendita. Un agente che legge «compatibile con i modelli X, Y e Z» citerà esattamente quei modelli; un agente che legge «compatibile con la maggior parte dei dispositivi» inventerà l'elenco.

## Campi Schema.org aggiunti

Sull'oggetto **Product**: brand, gtin (+ gtin8/12/13/14), mpn, material, color, size, weight, height, width, depth (QuantitativeValue con le unità di WooCommerce), isRelatedTo, speakable. Su ogni **Offer**: seller (Organization con il nome e l'URL del sito), hasMerchantReturnPolicy (paese, finestra in giorni, tipo di costo), shippingDetails (destinazione, deliveryTime con handlingTime di 0-1 giorno e transitTime di 1-5 giorni).

I campi color e size vengono ripresi automaticamente dagli attributi `pa_color` / `color` e `pa_size` / `size` quando presenti. Peso e dimensioni provengono dai campi di spedizione nativi del prodotto.

## Compatibilità con i plugin SEO

Il plugin agisce esclusivamente tramite il filtro nativo `woocommerce_structured_data_product`, che tocca solo il JSON-LD generato da WooCommerce stesso. Yoast SEO, RankMath e SEO Press emettono i loro blocchi in modo indipendente tramite `wp_head`: nessuna collisione. I valori già presenti nello schema di WooCommerce vengono conservati.

## Hook per sviluppatori

- `dfllmstxtaeo_llms_output`: filtra il contenuto finale del llms.txt. Argomenti: il contenuto (string) e il codice lingua.
- `dfllmstxtaeo_product_schema`: filtra l'array dello schema arricchito prima dell'output. Argomenti: l'array di markup e l'oggetto WC_Product.

```
add_filter( 'dfllmstxtaeo_product_schema', function ( $markup, $product ) {
    $markup['award'] = 'Premio design 2026';
    return $markup;
}, 10, 2 );
```

## Risoluzione dei problemi

- **/llms.txt restituisce un 404**: risalva i permalink (Impostazioni → Permalink → Salva modifiche).
- **Il file non riflette una modifica recente**: la cache si svuota alla modifica, ma puoi forzarla impostando temporaneamente la durata della cache a 0, o risalvando le impostazioni.
- **Il FAQPage non appare**: verifica che il prodotto abbia almeno una coppia domanda/risposta completa e che l'opzione «Emetti schema FAQPage» sia attiva.
- **Validare lo schema**: testa un URL prodotto con il validatore schema.org o lo strumento Rich Results di Google per ispezionare il JSON-LD completo.
