Sintomi tipici e perché sono frequenti
“Prezzo non corrispondente” e “Disponibilità non corrispondente” non sono bug “misteriosi”. Sono quasi sempre l’effetto di almeno due fonti che non si aggiornano insieme: pagina HTML, JSON-LD e feed.
- Prezzo non corrispondente: feed diverso dal prezzo mostrato (o dal prezzo “letto” nello schema).
- Disponibilità non corrispondente: feed “in stock” ma prodotto esaurito (o viceversa).
- Errore presente solo su alcune varianti (taglia/colore/memoria).
- Errore che compare solo in certe geolocalizzazioni o con multi-currency.
- Errore intermittente (oggi c’è, domani sparisce): tipico di cache/CDN.
Cause principali (le 9 più comuni)
| # | Causa | Come la riconosci | Fix pratico |
|---|---|---|---|
| 1 | Cache (CDN o plugin) | Prezzo/stock diversi tra browser o reti | Purge + regole di bypass su pagine prodotto / varianti |
| 2 | Varianti non allineate | Manca update di Offer quando cambi variante | URL per variante o aggiornamento server-side/markup affidabile |
| 3 | Markup duplicato | 2+ JSON-LD Product/Offer in pagina con valori diversi | Lascia 1 sola fonte di schema (tema o plugin, non entrambi) |
| 4 | Prezzi via JS | UI aggiorna, JSON-LD resta fermo | Stabilizza la fonte (server-side) o rivedi architettura varianti |
| 5 | Currency switcher / geo-pricing | Stesso URL mostra prezzi diversi per paese | Regola chiara: URL per mercato o feed/markup per mercato |
| 6 | Sconti gestiti male | Prezzo barrato e reale invertiti / promo “fantasma” | Allinea sale_price e prezzo base (UI + markup + feed) |
| 7 | Stock asincrono (ERP/warehouse) | Disponibile in pagina, ma stock reale cambia con ritardo | Riduci latency sync o imposta regole conservative di availability |
| 8 | Bundle/configuratori | Prezzo vero solo a fine flusso (checkout) | Prezzo “a partire da” esplicito + schema coerente |
| 9 | Redirect/parametri/canonical | URL feed porta a variante diversa o canonical errato | Canonical stabile + URL prodotto in feed coerente |
Shopify: dove si rompe la coerenza
Su Shopify i mismatch arrivano spesso da: app che modificano prezzi (bundle, upsell), script del tema sulle varianti, o schema generato contemporaneamente da tema + app.
2) Cerca
application/ld+json: quanti Product vedi?3) Multi-currency: stesso URL, prezzi diversi? allora serve strategia per mercato.
- Verifica se un’app SEO/structured data aggiunge un secondo JSON-LD Product.
- Se usi multi-currency: definisci se i prezzi sono fissi per paese o conversione live. Poi allinea feed e markup.
- Se hai bundle/upsell: controlla che non cambino il prezzo “mostrato” senza aggiornare la fonte usata dallo schema.
WooCommerce: plugin e cache che fanno danni
WooCommerce è potente, ma il rischio è avere troppi plugin che toccano: prezzi, stock, schema e caching. Il risultato: la pagina mostra una cosa e lo schema/Google ne leggono un’altra.
- Cache full page (anche via server/CDN)
- Plugin sconti / regole prezzo
- Plugin schema extra + SEO plugin (duplicati)
- Multi-currency / geo-pricing
- Bypass cache su pagine prodotto se prezzo/stock cambiano spesso
- Lascia 1 sola fonte di schema Product/Offer
- Verifica che le varianti aggiornino anche Offer (non solo l’HTML)
Markup schema Product: duplicati e JS dinamico
Il pattern più pericoloso è: UI mostra prezzo A, JSON-LD dichiara prezzo B. Succede quando il JSON-LD è stampato server-side e poi il prezzo cambia via JS (varianti, promo, currency, bundle).
Procedura di fix step-by-step
- Scegli 3 prodotti: (1) semplice, (2) variabile, (3) in promo.
- Incognito: annota prezzo e stock visibili (desktop + mobile).
- Controlla JSON-LD: quanti Product trovi? i valori coincidono col visibile?
- Purge cache/CDN: ripeti i test da due reti/browser.
- Varianti: cambia 3 varianti e verifica Offer.price + Offer.availability (o URL variante).
- Disattiva il “doppione”: elimina la seconda fonte di schema (tema/plugin/app).
- Stabilizza: solo dopo, riallinea feed e pianifica la richiesta di review.
Test di verifica (prima di richiedere review)
- 2 browser diversi + 2 reti diverse
- Hard refresh + nuova sessione incognito
- Purge CDN (se presente) e ripeti
- 3 varianti: prezzo/stock coerenti
- Offer coerente o URL variante stabile
- Out of stock chiaramente comunicato
- Contatti, resi e spedizioni raggiungibili e coerenti (anche da mobile)
- Nessun claim ambiguo su garanzia/condizione prodotto
- Pagine policy indicizzabili e non bloccate (robots/noindex)
Registrati gratis e genera un report: trust signals, pagine policy, coerenza prezzo/disponibilità e check schema.org Product. Nessuna carta richiesta.