Vai al contenuto
webristoranti
RistorantiSEO Locale

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:

CampoPrioritàPerché
name, address, telephoneCriticaNAP consistency con Google Business Profile
openingHoursSpecificationCriticaAbilita "Aperto ora" nella SERP
geo (lat/lng)AltaMigliora la precisione nelle ricerche "vicino a me"
hasMenu / menuAltaGoogle può mostrare link al menu nel Knowledge Panel
servesCuisineAltaFiltraggio per tipo di cucina nella ricerca
priceRangeAltaMostrato nei rich result, aiuta il filtro per budget
aggregateRatingAltaStelle visibili nella SERP (solo da review proprie)
potentialActionMediaAbilita pulsante di prenotazione diretta
imageMediaPuò comparire nelle immagini del Knowledge Panel
sameAsMediaSegnale 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)

  1. Crea un nuovo Tag → HTML personalizzato
  2. Incolla il blocco JSON-LD
  3. Trigger: "All Pages" o solo la homepage
  4. 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

  1. 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.

  2. 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

MetricaObiettivoSegnale d'allarme
Pagine con rich result validiCrescita costanteCalo improvviso
CTR medio query locali> 4%< 2%
Avvisi Search Console0Qualsiasi errore su Restaurant schema
Impressioni Knowledge PanelCrescita mensileStagnazione 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:

  1. Google Business Profile: nome, indirizzo, telefono, orari e categoria devono coincidere al 100% con lo schema markup del sito.

  2. 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.

  3. 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.