Modulo Magento 2 — SEO Rich Data (JSON-LD)
- SKU
- M2-SEO-RICH-DATA
Descrizione / Modulo Magento 2 — SEO Rich Data (JSON-LD)
Che cos’è SEO Rich Data?
Il modulo SEO Rich Data per Magento 2 aggiunge al tuo negozio dati strutturati completi in formato JSON-LD, conformi allo standard schema.org e supportati da Google. In questo modo prodotti, categorie, schede e contenuti possono apparire nel motore di ricerca sotto forma di risultati avanzati (rich snippets), con un impatto diretto su visibilità, CTR e SEO.
Caratteristiche principali del modulo:
Tipi di dati supportati:
Product
Descrizione dettagliata del prodotto: nome, descrizione, prezzo, valuta, disponibilità a magazzino, produttore, marca, SKU, MPN.
Offer
Informazioni sulla disponibilità e sulle condizioni dell’offerta (novità, disponibilità, data di validità del prezzo).
Brand / Manufacturer
Marcatura automatica della marca e del produttore a partire dai dati del prodotto.
Organization
Dati della tua azienda (nome del venditore, contatto, sito web).
BreadcrumbList
Breadcrumb di navigazione che aiutano Google a comprendere meglio la struttura della pagina.
SearchAction (WebSite)
Indicazione per Google su come funziona il motore di ricerca interno del negozio.
ItemList (per le pagine di categoria)
Elenco dei prodotti nella categoria (nome, immagine, link) — accelera l’indicizzazione e offre contesto a Google.
Recensioni (Review + AggregateRating)
Generazione automatica di dati strutturati sulla base delle opinioni dei clienti: valutazioni (rating), numero di recensioni, contenuto della recensione e dati dell’autore. Il modulo crea sia singole voci Review, sia un riepilogo aggregato AggregateRating, consentendo la visualizzazione delle stelle nei risultati Google (rich snippets) e aumentando in modo significativo il CTR.
VideoObject (NOVITÀ)
Rileva i video dalla galleria del prodotto e li aggiunge come dati strutturati (miniatura, link, data).
FAQPage (COLLEGAMENTO CON IL MODULO CHIEDI INFORMAZIONI SUL PRODOTTO)
Se hai installato il nostro modulo Chiedi informazioni sul prodotto, tutte le domande con relative risposte per un determinato prodotto vengono convertite automaticamente in dati FAQPage. Questo consente a Google di mostrare la sezione con domande e risposte direttamente nei risultati di ricerca!
Integrazione con il modulo Chiedi informazioni sul prodotto
Se utilizzi il nostro secondo modulo — Chiedi informazioni sul prodotto, i dati strutturati FAQ vengono generati dinamicamente sulla base di domande e risposte reali fornite dal venditore. Questo aumenta l’autenticità dei dati e il valore SEO.
Inoltre, domande e risposte possono essere visibili come scheda nella pagina prodotto — con possibilità di attivazione e assegnazione del titolo dal livello di configurazione.
Perché usare Rich Data in Magento?
Maggiore visibilità nei risultati Google – i tuoi prodotti appariranno con prezzo, disponibilità, recensioni e altre informazioni.
CTR migliore – gli utenti cliccano più spesso sui risultati avanzati.
Maggiore indicizzabilità – Google comprende meglio la struttura della pagina e indicizza più rapidamente le novità.
Qualità dei contenuti senza pari – mostri a Google dati che in precedenza erano nascosti solo nell’HTML.
Configurazione
Possibilità di attivare/disattivare singoli componenti (ad es. FAQ, VideoObject).
Titolo personalizzato della scheda con le domande (per il modulo Chiedi informazioni sul prodotto).
Meccanismo di rilevamento e generazione automatica dei dati JSON-LD.
Requisiti
Magento 2.4.x (testato su 2.4.7)
PHP 8.1+
Consigliato: modulo Chiedi informazioni sul prodotto per funzionalità complete (FAQ)
Cosa ricevi:
Modulo pronto per l’installazione tramite Composer
Documentazione completa
Codice conforme alle linee guida Magento
Supporto tecnico durante l’implementazione
Vuoi distinguere il tuo negozio su Google? Questo modulo è il tuo SEO in versione PRO. Ordina subito e aumenta la tua visibilità!
More Information
Change Log
Versione: 1.0.17
19.05.2026
Aggiunto
- Aggiunto il supporto del campo
shippingDetailsnella strutturaoffersper i dati prodotto JSON-LD. - Aggiunto il supporto del campo
hasMerchantReturnPolicynella strutturaoffersper i dati prodotto JSON-LD. - Aggiunta la configurazione dei dati di spedizione:
- abilitazione/disabilitazione della generazione di
shippingDetails, - Paese di spedizione,
- costo di spedizione,
- tempo minimo e massimo di gestione dell’ordine,
- tempo minimo e massimo di transito.
- abilitazione/disabilitazione della generazione di
- Aggiunta la configurazione della politica di reso:
- abilitazione/disabilitazione della generazione di
hasMerchantReturnPolicy, - Paese di validità della politica,
- tipo di politica di reso,
- numero di giorni per il reso,
- metodo di reso,
- costi di reso,
- importo opzionale del costo di spedizione del reso.
- abilitazione/disabilitazione della generazione di
- Aggiunta la selezione dell’attributo EAN / GTIN nella configurazione del prodotto.
- Aggiunta la mappatura automatica dei valori EAN / GTIN alle proprietà
gtin8,gtin12,gtin13,gtin14oppuregtin, in base alla lunghezza del numero. - Aggiunti source model per le opzioni di configurazione della politica di reso:
ReturnPolicyCategory,ReturnMethod,ReturnFees.
Modificato
- Migliorato il recupero dei valori degli attributi
brandemanufacturerper JSON-LD. - Aggiunto il fallback del recupero dei valori degli attributi dal raw EAV value quando
getAttributeText()oppuregetData()non restituisce un valore. - Per i prodotti configurabili e raggruppati è stato aggiunto il fallback del recupero dei valori brand / GTIN dai prodotti semplici.
- Il metodo obsoleto
Block\Product::getResultArray()è stato spostato sulla logica comuneModel\JsonLd\ProductInfo, affinché la generazione dei dati prodotto sia coerente nella pagina prodotto e negli elenchi di categoria. - Estesa la chiave cache delle offerte con la configurazione di spedizione e della politica di reso, affinché le modifiche alla configurazione influiscano sul JSON-LD generato.
Corretto
- Corretto il caso in cui l’attributo
Brandconfigurato non compariva nel JSON-LD del prodotto. - Integrati i dati mancanti richiesti da Google Search Console per merchant listing:
shippingDetails,hasMerchantReturnPolicy,- identificatore globale del prodotto tramite EAN / GTIN.
Istruzioni per l'installazione del modulo
SEO Rich Data - installazione e configurazione
Scopo del modulo
Il modulo Kowal_SeoRichData aggiunge a Magento 2 dati strutturati schema.org in formato JSON-LD. I dati generati possono includere prodotti, offerte, prezzi, disponibilità, valutazioni, recensioni, breadcrumbs, dati dell’organizzazione, nome del sito, search box, profili social, FAQ e video.
La configurazione del modulo si trova nel pannello di amministrazione Magento:
Stores > Configuration > Kowal > SEO Rich Data
Requisiti
- Magento 2.
- Accesso alla CLI Magento.
- Accesso al Composer repository con il pacchetto
kowal/module-seo-rich-data. - Pacchetto di base richiesto:
kowal/base. - Permessi per eseguire i comandi
bin/magento.
Installazione tramite Composer
- Aggiungi il repository del pacchetto:
Riceverai via e-mail i dati di accesso al repository Composer, cioè indirizzo e-mail del cliente e token di licenza, dopo l’acquisto. Sono disponibili anche nell’area cliente dopo l’accesso su kowal.store. Sostituisci TWOJ_EMAIL_KLIENTA con l’indirizzo e-mail del tuo account e TWOJ_TOKEN con il token ricevuto. Esegui i comandi nella directory principale di Magento.
composer config repositories.kowal composer https://repo.kowal.store- Configura i dati di accesso al repository Composer Kowal:
composer config http-basic.repo.kowal.store 'TWOJ_EMAIL_KLIENTA' 'TWOJ_TOKEN'- Installa il modulo:
composer require kowal/module-seo-rich-data- Abilita il modulo:
php bin/magento module:enable Kowal_SeoRichData- Esegui l’aggiornamento di Magento:
php bin/magento setup:upgrade- In ambiente di produzione, esegui la compilazione DI:
php bin/magento setup:di:compile- In ambiente di produzione, se il progetto lo richiede, genera i file statici:
php bin/magento setup:static-content:deploy- Svuota la cache:
php bin/magento cache:flushInstallazione manuale
- Copia il modulo nella directory:
app/code/Kowal/SeoRichData- Abilita il modulo:
php bin/magento module:enable Kowal_SeoRichData- Esegui l’aggiornamento di Magento:
php bin/magento setup:upgrade- Svuota la cache:
php bin/magento cache:flushOperazioni dopo l’installazione
Dopo l’installazione il modulo aggiunge l’attributo prodotto:
| Attributo | Significato |
|---|---|
offer_item_condition | Condizione del prodotto usata per generare itemCondition in offers. |
L’attributo supporta i valori:
| Valore in Magento | Valore JSON-LD |
|---|---|
DamagedCondition | https://schema.org/DamagedCondition |
NewCondition | https://schema.org/NewCondition |
RefurbishedCondition | https://schema.org/RefurbishedCondition |
UsedCondition | https://schema.org/UsedCondition |
Se il prodotto non ha un valore dell’attributo impostato, il modulo lo considera come NewCondition.
Ambito della configurazione
Tutti i campi di configurazione sono disponibili per gli ambiti Default, Website e Store View, in conformità alle impostazioni Magento.
I campi di tipo Enabled, Show ... e simili usano i valori standard di Magento:
| Valore | Significato |
|---|---|
Yes | La funzione è abilitata e può generare dati JSON-LD. |
No | La funzione è disabilitata. |
Breadcrumbs
La sezione gestisce i dati strutturati del percorso di navigazione.
| Campo | Significato | Valori |
|---|---|---|
Enabled | Abilita la generazione dei dati BreadcrumbList. | Yes, No |
Fixed Category Path | Nella pagina prodotto usa il percorso categoria più specifico quando Magento non fornisce il contesto completo della categoria. | Yes, No |
Type | Definisce la lunghezza del percorso breadcrumbs generato per il motore di ricerca. | Default (Long), Short |
Valori del campo Type:
| Valore | Significato |
|---|---|
Default (Long) | Percorso completo, ad es. Store > Category > Subcategory > Product. |
Short | Percorso abbreviato, ad es. Store > Subcategory > Product. |
Include Your Site Name in Search Results
La sezione gestisce i dati di tipo WebSite, che possono aiutare Google a riconoscere il nome del sito.
| Campo | Significato | Valori |
|---|---|---|
Enabled | Abilita la generazione dei dati WebSite. | Yes, No |
Website Name | Nome del sito/negozio trasmesso nei dati strutturati. | Testo, ad es. il nome del negozio. |
Organization
La sezione gestisce i dati di tipo Organization.
| Campo | Significato | Valori |
|---|---|---|
Enabled | Abilita la generazione dei dati dell’organizzazione. | Yes, No |
Organization Name | Nome dell’azienda o del negozio. | Testo; campo obbligatorio dopo l’abilitazione della sezione. |
Logo Url | URL completo del logo dell’organizzazione. | URL del file grafico. |
Description | Descrizione dell’organizzazione. | Testo. |
Description Length | Numero massimo di caratteri della descrizione. | Numero; vuoto indica nessun troncamento. |
Country | Paese dell’organizzazione. | Codice paese dall’elenco Magento. |
Region/State | Regione o stato. | Testo. |
ZIP/Postal Code | Codice postale. | Testo. |
City | Città. | Testo. |
Street Address | Via e numero civico. | Testo. |
Sales | Telefono del reparto vendite. | Numero in formato internazionale, ad es. +48.... |
Technical Support | Telefono del supporto tecnico. | Numero in formato internazionale. |
Customer Service | Telefono del servizio clienti. | Numero in formato internazionale. |
Il Paese di questa sezione può essere usato come fallback per il Paese di spedizione e il Paese della politica di reso, se i campi corrispondenti nella sezione prodotto restano vuoti.
Social Profiles
La sezione aggiunge i profili social dell’organizzazione. Affinché i dati abbiano senso, la sezione Organization dovrebbe essere abilitata.
| Campo | Significato | Valori |
|---|---|---|
Enabled | Abilita la generazione dei link ai profili social. | Yes, No |
Facebook | URL del profilo Facebook. | URL completo. |
Twitter | URL del profilo Twitter / X. | URL completo. |
Google+ | URL del profilo Google+. | URL completo; campo di configurazione storico. |
Instagram | URL del profilo Instagram. | URL completo. |
YouTube | URL del canale YouTube. | URL completo. |
LinkedIn | URL del profilo LinkedIn. | URL completo. |
Myspace | URL del profilo Myspace. | URL completo; campo di configurazione storico. |
Pinterest | URL del profilo Pinterest. | URL completo. |
SoundCloud | URL del profilo SoundCloud. | URL completo. |
Tumblr | URL del profilo Tumblr. | URL completo. |
I campi vuoti vengono ignorati.
Search Box
La sezione gestisce i dati SearchAction, che possono consentire la visualizzazione del campo di ricerca del negozio nei risultati Google.
| Campo | Significato | Valori |
|---|---|---|
Enabled | Abilita la generazione dei dati del motore di ricerca del sito. | Yes, No |
Category Rich Data
La sezione gestisce la generazione dei dati dei prodotti nelle pagine di categoria.
| Campo | Significato | Valori |
|---|---|---|
Show Products Data | Aggiunge dati strutturati per i prodotti visibili nella pagina di categoria. | Yes, No |
L’abilitazione di questa opzione può peggiorare le prestazioni delle pagine di categoria, perché il modulo deve raccogliere dati per molti prodotti.
Product Rich Data
La sezione gestisce i dati principali del prodotto di tipo Product e i dati offers.
Campi prodotto di base
| Campo | Significato | Valori |
|---|---|---|
Enabled | Abilita la generazione del JSON-LD del prodotto nella pagina prodotto. | Yes, No |
Show Availability | Aggiunge availability in offers. | Yes, No |
priceValidUntil Default Value | Data di scadenza predefinita del prezzo. | Data. |
Use “Special Price To” Value for priceValidUntil Snippet | Se il prodotto ha un prezzo speciale attivo e una data Special Price To, questa data sostituisce il valore predefinito. | Yes, No |
Show Condition | Aggiunge itemCondition in offers. | Yes, No |
Description | Definisce l’origine della descrizione del prodotto nel JSON-LD. | None, Product Short Description, Product Full Description, Page Meta Description |
Valori del campo Description:
| Valore | Significato |
|---|---|
None | Non recupera la descrizione dalla configurazione; il codice può usare il nome del prodotto come fallback se la descrizione è vuota. |
Product Short Description | Usa la descrizione breve del prodotto. |
Product Full Description | Usa la descrizione completa del prodotto. |
Page Meta Description | Usa la meta description della pagina. |
Prodotti configurabili e raggruppati
| Campo | Significato | Valori |
|---|---|---|
Show Configurable Products as | Definisce il modo di generare le offerte per i prodotti configurabili. | Main Offer, List of Associated Products Offers, Aggregate Offer |
Show Grouped Products as | Definisce il modo di generare le offerte per i prodotti raggruppati. | Main Offer, List of Associated Products Offers, Aggregate Offer |
Valori:
| Valore | Significato |
|---|---|
Main Offer | Genera un’unica offerta per il prodotto principale. |
List of Associated Products Offers | Genera un’offerta separata per ogni prodotto semplice o associato. |
Aggregate Offer | Genera AggregateOffer con il prezzo più basso, il prezzo più alto e il numero di offerte. |
Valutazioni e recensioni
| Campo | Significato | Valori |
|---|---|---|
Show Rating | Aggiunge aggregateRating e review ai dati del prodotto. | Yes, No |
Use Yotpo Reviews instead of Magento Reviews | Recupera le recensioni da Yotpo invece che da Magento Reviews. | Yes, No |
Rating Format | Definisce la scala delle valutazioni. | Percentage Scale, Numeric Scale |
Number of Reviews | Limite del numero delle recensioni più recenti aggiunte al JSON-LD. | Numero; vuoto indica tutte le recensioni. |
Valori del campo Rating Format:
| Valore | Significato |
|---|---|
Percentage Scale | Le valutazioni sono interpretate in scala percentuale. |
Numeric Scale | Le valutazioni sono interpretate in scala numerica. |
L’integrazione con Yotpo richiede la disponibilità del modulo che supporta Yotpo. Se il modulo non è installato, la configurazione Yotpo non dovrebbe essere abilitata.
Brand, manufacturer e identificatori prodotto
| Campo | Significato | Valori |
|---|---|---|
Brand | Attributo prodotto usato per generare la proprietà brand. | Qualsiasi attributo prodotto dall’elenco. |
EAN / GTIN Attribute | Attributo prodotto usato come identificatore globale del prodotto. | Qualsiasi attributo prodotto dall’elenco. |
Manufacturer | Attributo prodotto usato per generare la proprietà manufacturer. | Qualsiasi attributo prodotto dall’elenco. |
Il campo EAN / GTIN Attribute genera la proprietà in base al numero di cifre:
| Numero di cifre | Proprietà JSON-LD |
|---|---|
| 8 | gtin8 |
| 12 | gtin12 |
| 13 | gtin13 |
| 14 | gtin14 |
| Altro numero positivo di cifre | gtin |
Il modulo rimuove i caratteri diversi dalle cifre dal valore EAN / GTIN prima di generare il JSON-LD.
Shipping details
La sezione spedizione gestisce la generazione di shippingDetails in offers. I dati vengono aggiunti solo quando la sezione è abilitata e dispone di tutti i valori richiesti.
| Campo | Significato | Valori |
|---|---|---|
Show Shipping Details | Abilita la generazione di shippingDetails. | Yes, No |
Shipping Country | Paese di consegna. | Codice paese dall’elenco Magento; se vuoto, viene usato il Paese della sezione Organization. |
Shipping Price | Costo di consegna. | Numero uguale o maggiore di 0; 0 indica spedizione gratuita. |
Handling Time Min Days | Tempo minimo di gestione dell’ordine. | Numero intero, giorni. |
Handling Time Max Days | Tempo massimo di gestione dell’ordine. | Numero intero, giorni. |
Transit Time Min Days | Tempo minimo di transito. | Numero intero, giorni. |
Transit Time Max Days | Tempo massimo di transito. | Numero intero, giorni. |
La valuta del costo di spedizione viene presa dalla valuta dell’offerta del prodotto.
Esempio del significato dei valori:
| Campo | Esempio | Significato |
|---|---|---|
Shipping Price | 0 | Spedizione gratuita. |
Handling Time Min Days | 0 | L’ordine può essere gestito lo stesso giorno. |
Handling Time Max Days | 1 | La gestione dell’ordine richiede al massimo 1 giorno. |
Transit Time Min Days | 1 | La consegna richiede almeno 1 giorno. |
Transit Time Max Days | 5 | La consegna richiede al massimo 5 giorni. |
Merchant return policy
La sezione della politica di reso gestisce la generazione di hasMerchantReturnPolicy in offers. I dati vengono aggiunti solo quando la sezione è abilitata e dispone dei valori richiesti.
| Campo | Significato | Valori |
|---|---|---|
Show Merchant Return Policy | Abilita la generazione di hasMerchantReturnPolicy. | Yes, No |
Return Policy Country | Paese di validità della politica di reso. | Codice paese dall’elenco Magento; se vuoto, viene usato il Paese della sezione Organization. |
Return Policy Category | Tipo di politica di reso. | Finite Return Window, Returns Not Permitted, Unlimited Return Window |
Merchant Return Days | Numero di giorni per il reso. | Numero intero; richiesto per Finite Return Window. |
Return Method | Metodo di reso supportato. | -- Empty --, Return By Mail, Return In Store, Return At Kiosk |
Return Fees | Informazione sui costi di reso. | -- Empty --, Free Return, Customer Responsibility, Return Shipping Fees |
Return Shipping Fee | Importo del costo di spedizione del reso. | Numero maggiore di 0; richiesto solo per Return Shipping Fees. |
Valori del campo Return Policy Category:
| Valore | Valore JSON-LD | Significato |
|---|---|---|
Finite Return Window | https://schema.org/MerchantReturnFiniteReturnWindow | Reso possibile per un numero definito di giorni. Richiede Merchant Return Days. |
Returns Not Permitted | https://schema.org/MerchantReturnNotPermitted | I resi non sono consentiti. |
Unlimited Return Window | https://schema.org/MerchantReturnUnlimitedWindow | Reso senza un limite di giorni definito. |
Valori del campo Return Method:
| Valore | Valore JSON-LD | Significato |
|---|---|---|
-- Empty -- | nessun valore | Il metodo di reso non viene aggiunto al JSON-LD. |
Return By Mail | https://schema.org/ReturnByMail | Reso tramite spedizione. |
Return In Store | https://schema.org/ReturnInStore | Reso in negozio fisico. |
Return At Kiosk | https://schema.org/ReturnAtKiosk | Reso presso punto/kiosk. |
Valori del campo Return Fees:
| Valore | Valore JSON-LD | Significato |
|---|---|---|
-- Empty -- | nessun valore | L’informazione sui costi non viene aggiunta al JSON-LD. |
Free Return | https://schema.org/FreeReturn | Il reso è gratuito. |
Customer Responsibility | https://schema.org/ReturnFeesCustomerResponsibility | Il costo del reso è a carico del cliente. |
Return Shipping Fees | https://schema.org/ReturnShippingFees | Il reso ha un costo definito per la spedizione di ritorno. Richiede Return Shipping Fee. |
La valuta del campo Return Shipping Fee viene presa dalla valuta dell’offerta del prodotto.
Custom Properties
Il campo Custom Properties consente di aggiungere proprietà personalizzate al JSON-LD del prodotto.
Formato:
wlasciwosc_jsonld,kod_atrybutuSe viene fornito un solo elemento, il modulo lo considera contemporaneamente come nome della proprietà JSON-LD e codice attributo.
Valore predefinito:
skumpn,skuSignificato del valore predefinito:
| Riga | Effetto |
|---|---|
sku | Aggiunge sku in base all’attributo sku. |
mpn,sku | Aggiunge mpn in base all’attributo sku. |
Esempio di aggiunta di un attributo personalizzato:
color,colormaterial,materialConfigurazione minima consigliata per i prodotti
Per ridurre gli avvisi di Google Search Console relativi ai dati prodotto, configura almeno:
| Campo | Raccomandazione |
|---|---|
Product Rich Data > Enabled | Yes |
Show Availability | Yes |
Brand | Seleziona l’attributo con il brand del prodotto. |
EAN / GTIN Attribute | Seleziona l’attributo con EAN / GTIN se i prodotti hanno un identificatore globale. |
Show Shipping Details | Yes, se il negozio ha una politica di spedizione uniforme descrivibile nella configurazione. |
Show Merchant Return Policy | Yes, se il negozio ha una politica di reso uniforme descrivibile nella configurazione. |
Custom Properties | Mantieni almeno sku; opzionalmente aggiungi mpn se il negozio dispone di questo identificatore. |
Pulizia della cache dopo modifiche alla configurazione
Dopo aver modificato la configurazione, esegui:
php bin/magento cache:flushSe il negozio utilizza una cache HTTP aggiuntiva, Varnish o CDN, svuota anche questi livelli di cache.
Verifica del funzionamento
- Apri la pagina prodotto sul frontend.
- Controlla il sorgente della pagina e trova:
- Verifica che il JSON-LD contenga i campi previsti, ad es.:
{ '@type': 'Product', 'brand': { '@type': 'Brand', 'name': 'Example Brand' }, 'gtin13': '5901234123457', 'offers': [ { '@type': 'Offer', 'shippingDetails': {}, 'hasMerchantReturnPolicy': {} } ]}- Testa l’URL del prodotto nello strumento Google Rich Results Test o in Google Search Console.
Note di implementazione
- Non abilitare
shippingDetailsnéhasMerchantReturnPolicyse i valori nella configurazione non corrispondono alla reale politica del negozio. - Se le politiche di spedizione o di reso differiscono per prodotto, regione, metodo di consegna o carrello, una sola configurazione globale potrebbe non essere sufficiente.
- Dopo aver modificato gli attributi
Brand,ManufactureroEAN / GTIN Attribute, è consigliabile reindicizzare i dati prodotto se il negozio usa cache o indici che influenzano la lettura degli attributi. - Nei negozi multilingua e multivaluta, controlla la configurazione separatamente per ogni Store View.