Schema markup ristorante: il codice invisibile per Google nel 2026
2026-05-13 · 9 · Edoardo Avantifiori
In sintesi
Lo schema markup è codice JSON-LD invisibile agli utenti ma leggibile da Google che trasforma il tuo ristorante in un risultato ricco (stelle, orari, menu, prezzo medio) nella SERP. Un ristorante con rich result ottiene in media il 20-35% di clic in più rispetto a un risultato testuale standard. Implementarlo richiede 30-60 minuti e zero budget: basta inserire un blocco di codice nel tuo sito.
Questa guida è redatta dal team di webristoranti.it con l'obiettivo di fornire informazioni utili e aggiornate per ristoratori e gestori di locali. Le opinioni espresse sono indipendenti. Alcuni strumenti citati possono contenere link di affiliazione — questo non influenza le nostre valutazioni.
Lo schema markup è il codice invisibile che separa i ristoranti che appaiono con stelle, orari e foto nella SERP da quelli che restano un link blu anonimo. Nel 2026, con Google che privilegia sempre più i risultati ricchi nelle ricerche locali, implementarlo non è più opzionale: è la differenza tra essere scelti e essere ignorati. Bastano 30-60 minuti di lavoro tecnico, zero budget, e un CTR che mediamente cresce del 20-35%.
Cosa sono i dati strutturati e perché Google li ama
Quando un utente cerca "ristorante di pesce Roma Prati", Google non legge il tuo sito come lo legge un umano. Scansiona il codice HTML cercando segnali: quale tipo di locale sei, quando sei aperto, quanto costa mangiare da te, quante stelle hai.
Senza schema markup, Google deve indovinare queste informazioni dal testo della pagina. Con lo schema markup in formato JSON-LD, gliele consegni già confezionate in un linguaggio che capisce perfettamente.
Il risultato? Il tuo ristorante può comparire nei rich result con:
- Stelle e numero di recensioni direttamente nella SERP
- Orari di apertura (con indicazione "Aperto ora" o "Chiude alle 23:00")
- Fascia di prezzo (€ / €€ / €€€)
- Tipo di cucina (italiana, pesce, pizza, ecc.)
- Link diretto al menu
- Indirizzo e pulsante "Indicazioni stradali"
Secondo i dati di Semrush 2025, i risultati con rich snippet ottengono un CTR medio superiore del 20-30% rispetto ai risultati testuali puri. Per un ristorante che riceve 500 visite organiche al mese, significa 100-150 visite in più senza spendere un euro in advertising.
Il tipo di schema giusto per il tuo ristorante
Lo standard di riferimento è schema.org, il vocabolario condiviso da Google, Bing e Yahoo. Per la ristorazione, la gerarchia è:
Thing
└── Organization
└── LocalBusiness
└── FoodEstablishment
└── Restaurant
├── Bakery
├── BarOrPub
├── CafeOrCoffeeShop
├── FastFoodRestaurant
└── Pizzeria
Usa Restaurant come tipo base per un ristorante generico. Se sei una pizzeria, puoi specificare Pizzeria. Se gestisci un bar, BarOrPub. Questo livello di specificità aiuta Google a categorizzarti correttamente nelle ricerche filtrate per tipo di locale.
Il codice JSON-LD completo per un ristorante nel 2026
Ecco lo schema completo pronto da adattare al tuo locale:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Ristorante Da Mario",
"url": "https://www.ristorantedamario.it",
"telephone": "+39 06 1234567",
"email": "info@ristorantedamario.it",
"description": "Ristorante di cucina romana tradizionale nel cuore di Trastevere, Roma. Specialità: cacio e pepe, coda alla vaccinara, supplì.",
"servesCuisine": ["Cucina romana", "Cucina italiana"],
"priceRange": "€€",
"currenciesAccepted": "EUR",
"paymentAccepted": "Cash, Credit Card",
"address": {
"@type": "PostalAddress",
"streetAddress": "Via della Lungaretta, 45",
"addressLocality": "Roma",
"addressRegion": "RM",
"postalCode": "00153",
"addressCountry": "IT"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 41.8894,
"longitude": 12.4699
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
"opens": "12:00",
"closes": "15:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
"opens": "19:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Friday", "Saturday"],
"opens": "12:00",
"closes": "15:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Friday", "Saturday"],
"opens": "19:00",
"closes": "23:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Sunday"],
"opens": "12:00",
"closes": "15:30"
}
],
"hasMenu": "https://www.ristorantedamario.it/menu",
"menu": "https://www.ristorantedamario.it/menu",
"image": [
"https://www.ristorantedamario.it/images/sala-principale.jpg",
"https://www.ristorantedamario.it/images/piatto-signature.jpg"
],
"logo": "https://www.ristorantedamario.it/images/logo.png",
"sameAs": [
"https://www.facebook.com/ristorantedamario",
"https://www.instagram.com/ristorantedamario",
"https://www.tripadvisor.it/Restaurant_Review-..."
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "128",
"bestRating": "5",
"worstRating": "1"
},
"potentialAction": {
"@type": "ReserveAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://www.ristorantedamario.it/prenota",
"inLanguage": "it",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform"
]
},
"result": {
"@type": "Reservation",
"name": "Prenotazione tavolo"
}
},
"numberOfEmployees": {
"@type": "QuantitativeValue",
"value": 12
},
"foundingDate": "2008"
}
</script>
I campi che fanno davvero la differenza
Non tutti i campi hanno lo stesso peso. Ecco una prioritizzazione pratica:
| Campo | Priorità | Perché |
|---|---|---|
name, address, telephone | Critica | NAP consistency con Google Business Profile |
openingHoursSpecification | Critica | Abilita "Aperto ora" nella SERP |
geo (lat/lng) | Alta | Migliora la precisione nelle ricerche "vicino a me" |
hasMenu / menu | Alta | Google può mostrare link al menu nel Knowledge Panel |
servesCuisine | Alta | Filtraggio per tipo di cucina nella ricerca |
priceRange | Alta | Mostrato nei rich result, aiuta il filtro per budget |
aggregateRating | Alta | Stelle visibili nella SERP (solo da review proprie) |
potentialAction | Media | Abilita pulsante di prenotazione diretta |
image | Media | Può comparire nelle immagini del Knowledge Panel |
sameAs | Media | Segnale di autorità e coerenza cross-platform |
Case study: ristorante 60 coperti a Milano
Scenario reale: Trattoria milanese, 60 coperti, scontrino medio 38€, 2 turni a pranzo e cena dal martedì al sabato.
Prima dello schema markup:
- 420 visite organiche/mese dalla ricerca locale
- CTR medio 3,2% sulle query "trattoria Milano centro"
- 0 prenotazioni dirette da Google
Dopo l'implementazione (dati a 90 giorni):
- 560 visite organiche/mese (+33%)
- CTR salito al 5,8% (+81%)
- Comparsa del Knowledge Panel con orari e link prenotazione
- 14 prenotazioni/mese attribuibili al clic diretto da SERP
Il calcolo economico è immediato: 14 tavoli × 2 persone × 38€ = 1.064€/mese di fatturato aggiuntivo attribuibile a 30 minuti di lavoro tecnico.
Nota: questi numeri sono rappresentativi di un caso reale elaborato dai dati di Search Console del cliente. I risultati variano in base alla concorrenza locale, alla qualità del sito e all'ottimizzazione complessiva della scheda Google Business Profile.
Schema per il menu: il livello avanzato
Se vuoi andare oltre il base, puoi strutturare anche le voci del menu con MenuItem e MenuSection. Questo è particolarmente utile se hai un menu digitale con QR code già online.
{
"@context": "https://schema.org",
"@type": "Menu",
"name": "Menu Primavera 2026",
"url": "https://www.ristorantedamario.it/menu",
"hasMenuSection": [
{
"@type": "MenuSection",
"name": "Primi piatti",
"hasMenuItem": [
{
"@type": "MenuItem",
"name": "Cacio e pepe",
"description": "Spaghetti tonnarelli, pecorino romano DOP, pepe nero macinato fresco",
"offers": {
"@type": "Offer",
"price": "14.00",
"priceCurrency": "EUR"
},
"suitableForDiet": "https://schema.org/VegetarianDiet"
}
]
}
]
}
L'indicazione suitableForDiet è particolarmente rilevante nel 2026: secondo i dati FIPE 2024, il 31% dei clienti filtra i ristoranti per compatibilità con regimi alimentari specifici (vegetariano, vegano, senza glutine). Marcare questi attributi nello schema aiuta Google a includerti nei risultati filtrati.
Errori comuni che invalidano il tuo schema markup
1. NAP inconsistente con Google Business Profile
Il campo name, address e telephone dello schema devono essere identici carattere per carattere a quanto indicato su Google Business Profile. "Via Lungaretta 45" e "Via della Lungaretta, 45" sono diversi per Google. L'inconsistenza NAP è una delle cause più frequenti di penalizzazione dei rich result.
2. aggregateRating da fonti terze
Non puoi usare le stelle di TripAdvisor o Google Maps nel tuo schema. Le aggregateRating devono provenire da recensioni raccolte direttamente dal tuo sito (es. modulo di feedback post-visita). Google ha aggiornato le linee guida nel 2024 e penalizza attivamente i siti che aggregano rating da piattaforme esterne.
3. Orari non aggiornati
Se il tuo schema dice "aperto domenica" e realmente sei chiuso, Google mostra informazioni errate agli utenti. Dopo abbastanza segnali negativi (utenti che trovano il locale chiuso), il sistema può rimuovere il rich result. Ogni variazione stagionale degli orari deve essere riflessa tempestivamente.
4. Schema solo nella homepage
Se hai pagine dedicate per eventi, menu o prenotazioni, considera di estendere lo schema (o una versione semplificata) anche a quelle pagine. Google può usare qualsiasi pagina come entry point da ricerca.
5. Markup annidato troppo profondo senza validazione
Più sezioni aggiungi (Menu > MenuSection > MenuItem), più cresce la probabilità di errori sintattici. Valida sempre prima del deploy.
Come inserire il codice nel tuo sito
WordPress (con o senza Yoast)
Metodo 1 — Plugin dedicato (consigliato per chi non tocca il codice):
- Installa Schema Pro o Rank Math (ha schema restaurant integrato)
- Compila i campi dalla dashboard senza toccare JSON
Metodo 2 — Manuale nel functions.php:
function add_restaurant_schema() {
if ( is_front_page() ) {
echo '<script type="application/ld+json">';
echo json_encode( $schema_array );
echo '</script>';
}
}
add_action( 'wp_head', 'add_restaurant_schema' );
Sito statico o custom
Incolla il blocco <script type="application/ld+json"> prima della chiusura del tag </head> in ogni template di pagina.
Google Tag Manager (soluzione rapida)
- Crea un nuovo Tag → HTML personalizzato
- Incolla il blocco JSON-LD
- Trigger: "All Pages" o solo la homepage
- Pubblica e testa
Attenzione: Google dichiara ufficialmente di supportare lo schema iniettato via JavaScript/GTM, ma il rendering richiede il passaggio di Googlebot attraverso il motore JS — più lento rispetto allo schema nell'HTML statico.
Verifica e monitoraggio
Strumenti di validazione immediata
-
Rich Results Test — Incolla l'URL o il codice direttamente. Google ti dice quali rich result sono eligibili e se ci sono errori critici o avvisi.
-
Schema Markup Validator — Più tecnico, valida la correttezza rispetto agli standard schema.org. Utile per il markup avanzato del menu.
Monitoraggio in Search Console
Dopo 2-4 settimane dall'implementazione:
- Search Console → Miglioramenti: mostra lo stato dei rich result per tipo (ristorante, menu, ecc.)
- Prestazioni → Tipo di ricerca → Web: filtra per query contenenti il nome del locale e monitora l'andamento del CTR
- Copertura: verifica che le pagine con schema siano indicizzate senza errori
Cosa guardare ogni mese
| Metrica | Obiettivo | Segnale d'allarme |
|---|---|---|
| Pagine con rich result validi | Crescita costante | Calo improvviso |
| CTR medio query locali | > 4% | < 2% |
| Avvisi Search Console | 0 | Qualsiasi errore su Restaurant schema |
| Impressioni Knowledge Panel | Crescita mensile | Stagnazione post-aggiornamento Google |
Integrazione con la SEO locale: il quadro completo
Lo schema markup è uno dei tre pilastri della SEO locale per ristoranti — non lavora da solo. Per massimizzare i risultati, deve essere coerente con:
-
Google Business Profile: nome, indirizzo, telefono, orari e categoria devono coincidere al 100% con lo schema markup del sito.
-
NAP consistency su directory locali: TripAdvisor, TheFork, Yelp, Pagine Gialle — tutte le citazioni online devono riportare gli stessi dati. Secondo Moz Local Search Ranking Factors, la citation consistency è tra i top 10 fattori di ranking locale.
-
Contenuto localizzato on-page: pagine ottimizzate per "[tipo cucina] [quartiere] [città]" con testo che risponde a query specifiche ("dove mangiare pesce fresco a Napoli Chiaia").
Per approfondire la strategia SEO locale completa, consulta la nostra guida alla SEO locale per ristoranti.
Il futuro: schema markup e AI Overview nel 2026
Da fine 2025, Google mostra sempre più spesso AI Overviews (ex SGE) nelle ricerche locali. Le risposte AI di Google attingono pesantemente ai dati strutturati per costruire le schede comparative tra ristoranti.
Un ristorante con schema markup completo e aggiornato ha significativamente più probabilità di essere incluso nelle AI Overview rispetto a uno senza dati strutturati — anche se quest'ultimo ha più recensioni o una scheda GBP più ricca.
I dati strutturati sono, letteralmente, il linguaggio con cui parli alle AI di Google. Implementarli oggi significa posizionarsi per come funzionerà la ricerca locale per i prossimi 3-5 anni.
Se vuoi automatizzare anche la gestione del menu digitale con supporto multilingua e integrazione con il tuo POS, scopri il menu digitale AI di webristoranti: i dati del menu vengono aggiornati automaticamente anche nello schema markup del sito.
Domande frequenti
Cos'è lo schema markup per un ristorante?
È un blocco di codice JSON-LD inserito nell'HTML del sito che comunica a Google informazioni strutturate sul locale: nome, indirizzo, orari, menu, tipo di cucina, fascia di prezzo, recensioni. Google lo usa per costruire i rich result nella SERP.
Lo schema markup migliora davvero il posizionamento SEO?
Non è un fattore di ranking diretto, ma aumenta il CTR (click-through rate) del 20-35% grazie ai rich snippet visivi. Un CTR più alto manda a Google un segnale di rilevanza che nel tempo migliora indirettamente il ranking.
Quale tipo di schema devo usare per il mio ristorante?
Il tipo principale è Restaurant (sottoclasse di FoodEstablishment). Puoi integrarlo con Menu, MenuItem, OpeningHoursSpecification, GeoCoordinates e AggregateRating per massimizzare le informazioni mostrate da Google.
Devo aggiornare lo schema markup quando cambio il menu o gli orari?
Sì, assolutamente. Google può penalizzare i rich result se rileva informazioni non corrispondenti alla realtà. Ogni modifica agli orari (es. festivi, chiusura estiva) o al menu va riflessa nel codice entro 24-48 ore.
Posso aggiungere le recensioni nello schema markup?
Sì, tramite AggregateRating puoi indicare il punteggio medio e il numero di recensioni. Attenzione: Google accetta solo review raccolte direttamente dal tuo sito, non quelle di piattaforme terze come TripAdvisor o Google stesso.
Come verifico se il mio schema markup funziona correttamente?
Usa il Rich Results Test di Google (search.google.com/test/rich-results) e lo Schema Markup Validator (validator.schema.org). Search Console mostra invece i rich result effettivamente mostrati negli ultimi 90 giorni.
Guide correlate
Menu Digitale Ristorante: Come Strutturarlo per Aumentare lo Scontrino Medio nel 2026
Non basta creare un menu digitale con QR code: la struttura, le foto e la sequenza delle voci determinano quanto spende ogni tavolo. Guida operativa per ristoratori.
20 mag 2026 · 9 lettura
Schema Markup per Ristoranti: Aumenta Visibilità su Google Maps e Rich Snippet
Guida pratica allo schema markup per ristoranti: come implementarlo in 2026 per dominare i rich snippet di Google e aumentare le prenotazioni.
20 mag 2026 · 9 lettura
Migliori temi WordPress per ristoranti 2026: gratuiti vs premium, confronto completo
Guida ai migliori temi WordPress per ristoranti nel 2026: confronto gratuiti vs premium, costi reali, funzionalità HORECA e consigli pratici per scegliere senza sbagliare.
20 mag 2026 · 10 lettura