Dati strutturati per ricette (Recipe, HowTo, ItemList)

Aiuta gli utenti a trovare i contenuti della tua ricetta comunicandone i dettagli a Google con i dati strutturati. Se fornisci informazioni quali valutazioni dei recensori, tempi di cottura e di preparazione e informazioni nutrizionali, Google può comprendere meglio la tua ricetta e presentarla agli utenti in modi interessanti. Le ricette possono essere visualizzate nei risultati della Ricerca Google e in Google Immagini.

Illustrazione di come i risultati avanzati delle ricette possono essere visualizzati nella Ricerca Google. Contiene 4 risultati avanzati di diversi siti web, con i dettagli su quanto tempo occorre per preparare la ricetta, un'immagine e informazioni sulle recensioni. Illustrazione di come una ricetta può essere visualizzata in Google Immagini. Ci sono 6 immagini che mostrano piatti diversi, con 3 risultati che mostrano un badge della ricetta che indica all'utente che si tratta di una ricetta

In base alla modalità di markup dei contenuti, le ricette possono essere idonee per i seguenti miglioramenti:

Miglioramenti delle ricette
Carosello host delle ricette: consenti agli utenti di esplorare le pagine della tua galleria di ricette aggiungendo dati strutturati ItemList. Illustrazione di come un carosello host di ricette può apparire nella Ricerca Google. Mostra 3 ricette dello stesso sito web in un formato carosello che gli utenti possono esplorare e selezionare una ricetta specifica

Come aggiungere dati strutturati

I dati strutturati sono un formato standardizzato per fornire informazioni su una pagina e classificarne i contenuti. Se non li hai mai utilizzati, scopri di più su come funzionano i dati strutturati.

Ecco una panoramica su come creare, testare e rilasciare i dati strutturati. Per una guida passo per passo su come aggiungere dati strutturati a una pagina web, consulta il codelab sui dati strutturati.

  1. Aggiungi le proprietà obbligatorie. In base al formato che utilizzi, scopri dove inserire i dati strutturati nella pagina.
  2. Segui le linee guida.
  3. Convalida il codice utilizzando lo strumento di Test dei risultati avanzati e correggi eventuali errori critici. Prendi in considerazione anche la possibilità di correggere eventuali problemi non critici che potrebbero essere segnalati nello strumento, in quanto possono contribuire a migliorare la qualità dei tuoi dati strutturati (tuttavia, questo non è necessario per l'idoneità per i risultati avanzati).
  4. Implementa alcune pagine che includono dati strutturati e utilizza lo strumento Controllo URL per verificare come Google vede la pagina. Assicurati che la pagina sia accessibile per Google e che non venga bloccata da file robots.txt, tag noindex o requisiti di accesso. Se la pagina non presenta problemi, puoi chiedere a Google di ripetere la scansione degli URL.
  5. Per tenere Google informata delle future modifiche, ti consigliamo di inviare una Sitemap. Puoi automatizzare questa operazione con l'API Search Console Sitemap.

Esempi

Ecco alcuni esempi di ricette che utilizzano il codice JSON-LD.

Ricetta nella Ricerca

Ecco un esempio di pagina idonea per essere visualizzata nella Ricerca.

<html>
  <head>
    <title>Non-Alcoholic Piña Colada</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Recipe",
      "name": "Non-Alcoholic Piña Colada",
      "image": [
      "https://example.com/photos/1x1/photo.jpg",
      "https://example.com/photos/4x3/photo.jpg",
      "https://example.com/photos/16x9/photo.jpg"
      ],
      "author": {
        "@type": "Person",
        "name": "Mary Stone"
      },
      "datePublished": "2024-03-10",
      "description": "This non-alcoholic pina colada is everyone's favorite!",
      "recipeCuisine": "American",
      "prepTime": "PT1M",
      "cookTime": "PT2M",
      "totalTime": "PT3M",
      "keywords": "non-alcoholic",
      "recipeYield": "4 servings",
      "recipeCategory": "Drink",
      "nutrition": {
        "@type": "NutritionInformation",
        "calories": "120 calories"
      },
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": 5,
        "ratingCount": 18
      },
      "recipeIngredient": [
        "400ml of pineapple juice",
        "100ml cream of coconut",
        "ice"
      ],
      "recipeInstructions": [
        {
          "@type": "HowToStep",
          "name": "Blend",
          "text": "Blend 400ml of pineapple juice and 100ml cream of coconut until smooth.",
          "url": "https://example.com/non-alcoholic-pina-colada#step1",
          "image": "https://example.com/photos/non-alcoholic-pina-colada/step1.jpg"
        },
        {
          "@type": "HowToStep",
          "name": "Fill",
          "text": "Fill a glass with ice.",
          "url": "https://example.com/non-alcoholic-pina-colada#step2",
          "image": "https://example.com/photos/non-alcoholic-pina-colada/step2.jpg"
        },
        {
          "@type": "HowToStep",
          "name": "Pour",
          "text": "Pour the pineapple juice and coconut mixture over ice.",
          "url": "https://example.com/non-alcoholic-pina-colada#step3",
          "image": "https://example.com/photos/non-alcoholic-pina-colada/step3.jpg"
        }
      ],
      "video": {
        "@type": "VideoObject",
        "name": "How to Make a Non-Alcoholic Piña Colada",
        "description": "This is how you make a non-alcoholic piña colada.",
        "thumbnailUrl": [
          "https://example.com/photos/1x1/photo.jpg",
          "https://example.com/photos/4x3/photo.jpg",
          "https://example.com/photos/16x9/photo.jpg"
         ],
        "contentUrl": "https://www.example.com/video123.mp4",
        "embedUrl": "https://www.example.com/videoplayer?video=123",
        "uploadDate": "2024-02-05T08:00:00+08:00",
        "duration": "PT1M33S",
        "interactionStatistic": {
          "@type": "InteractionCounter",
          "interactionType": { "@type": "WatchAction" },
          "userInteractionCount": 2347
        },
        "expires": "2024-02-05T08:00:00+08:00"
       }
    }
    </script>
  </head>
  <body>
  </body>
</html>

Ecco un esempio di pagina di riepilogo delle ricette (una pagina con un elenco di ricette) con dati strutturati itemList. Questi contenuti potrebbero essere idonei per essere mostrati in una griglia nei risultati di ricerca.

<html>
  <head>
    <title>Grandma's Best Pie Recipes</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "ItemList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "url": "https://example.com/apple-pie.html"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "url": "https://example.com/blueberry-pie.html"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "url": "https://example.com/cherry-pie.html"
        }]
    }
    </script>
  </head>
  <body>
  </body>
</html>

Linee guida

Devi seguire le linee guida generali sui dati strutturati affinché il tuo markup sia idoneo per essere mostrato nei risultati della Ricerca.

Le seguenti linee guida valgono per i dati strutturati Recipe.

  • Utilizza i dati strutturati Recipe per i contenuti relativi alla preparazione di un determinato piatto. Ad esempio, "scrub viso" o "idee per feste" non sono nomi validi per un piatto.
  • Per far sì che le tue ricette compaiano in un carosello o in una griglia, devi seguire queste linee guida:
    • Fornisci dati strutturati ItemList per riepilogare le ricette per il tuo elenco. Puoi fornire i dati strutturati ItemList separatamente o insieme ai dati strutturati della ricetta.
    • Il tuo sito deve avere una pagina di riepilogo che mostra tutte le ricette nella raccolta. Ad esempio, quando un utente fa clic sul link di riepilogo dai risultati della Ricerca, viene reindirizzato correttamente a una pagina sul sito che elenca le ricette correlate alla sua ricerca.

Definizioni dei tipi di dati strutturati

Affinché i tuoi contenuti siano idonei per essere mostrati come risultato avanzato nella Ricerca Google, devi includere le proprietà obbligatorie. Puoi anche includere le proprietà consigliate per aggiungere ulteriori informazioni sui tuoi contenuti, fornendo così un'esperienza utente migliore.

Recipe

Esegui il markup dei contenuti della tua ricetta con le seguenti proprietà del tipo Recipe di schema.org. La definizione completa di Recipe è disponibile all'indirizzo schema.org/Recipe. Le proprietà supportate da Google sono le seguenti:

Proprietà obbligatorie
image

URL o ImageObject

Immagine del piatto completato.

Ulteriori linee guida per le immagini:

  • Ogni pagina deve contenere almeno un'immagine (indipendentemente dal fatto che includa markup o meno). Google sceglierà l'immagine migliore da mostrare nei risultati della Ricerca in base alle proporzioni e alla risoluzione.
  • Gli URL delle immagini devono poter essere sottoposti a scansione e indicizzazione. Per verificare se Google può accedere agli URL, utilizza lo strumento Controllo URL.
  • Le immagini devono rappresentare i contenuti con markup.
  • Le immagini devono essere in un formato file supportato da Google Immagini.
  • Per ottenere risultati ottimali, consigliamo di fornire più immagini ad alta risoluzione (minimo 50.000 pixel moltiplicando larghezza e altezza) con le seguenti proporzioni: 16 x 9, 4 x 3 e 1 x 1.

Ad esempio:

"image": [
  "https://example.com/photos/1x1/photo.jpg",
  "https://example.com/photos/4x3/photo.jpg",
  "https://example.com/photos/16x9/photo.jpg"
]
name

Text

Il nome del piatto.

Proprietà consigliate
aggregateRating

AggregateRating

Annotazione per il punteggio medio delle recensioni assegnato all'elemento. Segui le linee guida sugli snippet recensione e l'elenco di proprietà AggregateRating obbligatorie e consigliate.

Se i dati strutturati Recipe contengono un'unica recensione, il nome del recensore deve essere una persona o un'organizzazione valida. Ad esempio, "50% di sconto sugli ingredienti" non è un nome valido per un recensore.

author

Person o Organization

Il nome della persona o dell'organizzazione che ha scritto la ricetta. Per aiutare Google a comprendere meglio gli autori in varie funzionalità, ti consigliamo di seguire le best practice per il markup degli autori.

cookTime

Duration

Il tempo necessario per cucinare effettivamente il piatto, nel formato ISO 8601, se applicabile.

Da usare sempre in combinazione con prepTime.

datePublished

Date

La data in cui la ricetta è stata pubblicata, nel formato ISO 8601, se applicabile.

description

Text

Un breve riassunto che descrive il piatto.

keywords

Text

Altri termini per la ricetta, come la stagione ("estate"), il periodo ("Halloween") o altri descrittori validi ("veloce", "facile", "originale").

Linee guida aggiuntive

  • Separa le varie voci in un elenco di parole chiave usando le virgole.
  • Non utilizzare un tag che corrisponda a recipeCategory o recipeCuisine.

    Non consigliato:

    "keywords": "dessert, American"
    

    Consigliato:

    "keywords": "winter apple pie, nutmeg crust"
    
nutrition.calories

Energy

Il numero di calorie di ogni porzione realizzata con questa ricetta. Se nutrition.calories è definito, recipeYield deve essere definito con il numero di porzioni.

prepTime

Duration

Il tempo necessario per preparare gli ingredienti e l'area di lavoro per il piatto, nel formato ISO 8601, se applicabile.

Da usare sempre in combinazione con cookTime.

recipeCategory

Text

Il tipo di piatto o pasto della tua ricetta. Ad esempio: "cena", "primo piatto" o "dessert".

recipeCuisine

Text

L'area geografica associata alla tua ricetta. Ad esempio, "francese", "mediterraneo" o "americano".

recipeIngredient

Text

Un ingrediente usato nella ricetta.

Ad esempio:

"recipeIngredient": [
  "1 (15 ounce) package double crust ready-to-use pie crust",
  "6 cups thinly sliced, peeled apples (6 medium)",
  "3/4 cup sugar",
  "2 tablespoons all-purpose flour",
  "3/4 teaspoon ground cinnamon",
  "1/4 teaspoon salt",
  "1/8 teaspoon ground nutmeg",
  "1 tablespoon lemon juice"
]

Linee guida aggiuntive:

  • Includi solo il testo dell'ingrediente necessario per preparare la ricetta.
  • Non includere informazioni inutili, come le definizioni degli ingredienti.
recipeInstructions

HowToStep, HowToSection o Text

I passaggi per preparare il piatto.

Esistono diverse opzioni per impostare il valore di recipeInstructions. Consigliamo di utilizzare HowToStep. HowToSection può essere utilizzato anche per raggruppare gli elementi HowToStep quando la ricetta ha delle sezioni.

  • HowToStep: specifica i passaggi di questa ricetta con HowToStep.
    "recipeInstructions": [
      {
        "@type": "HowToStep",
        "name": "Preheat",
        "text": "Heat oven to 425°F.",
        "url": "https://example.com/recipe#step1",
        "image": "https://example.com/photos/recipe/step1.jpg"
      }, {
        "@type": "HowToStep",
        "name": "Prepare crust",
        "text": "Place 1 pie crust in ungreased 9-inch glass pie plate, pressing firmly against side and bottom.",
        "url": "https://example.com/recipe#step2",
        "image": "https://example.com/photos/recipe/step2.jpg"
      }, {
        "@type": "HowToStep",
        "name": "Make filling",
        "text": "In large bowl, gently mix filling ingredients; spoon into crust-lined pie plate.",
        "url": "https://example.com/recipe#step3",
        "image": "https://example.com/photos/recipe/step3.jpg"
      }, {
        "@type": "HowToStep",
        "name": "Cover",
        "text": "Top with second crust. Cut slits or shapes in several places in top crust.",
        "url": "https://example.com/recipe#step4",
        "image": "https://example.com/photos/recipe/step4.jpg"
      }, {
        "@type": "HowToStep",
        "name": "Bake",
        "text": "Bake 40 to 45 minutes. The pie is ready when the apples are tender and the crust is golden brown.",
        "url": "https://example.com/recipe#step5",
        "image": "https://example.com/photos/recipe/step5.jpg"
      }, {
        "@type": "HowToStep",
        "name": "Cool",
        "text": "Cool on cooling rack at least 2 hours before serving.",
        "url": "https://example.com/recipe#step6",
        "image": "https://example.com/photos/recipe/step6.jpg"
      }
    ]
    
  • HowToSection (solo se una ricetta ha più sezioni): consente di raggruppare i passaggi in più sezioni. Per un esempio, vedi HowToSection.
  • Proprietà di testo singola o ripetuta: un blocco di testo che include uno o più passaggi. Google considera tutti i passaggi come una singola sezione. I valori delle proprietà ripetute sono concatenati in un singolo blocco di testo. Google quindi tenta di suddividere automaticamente il singolo blocco di testo in singoli passaggi. Google cerca di trovare e rimuovere nomi di sezioni, numeri di passaggi, parole chiave e qualsiasi altra cosa che possa apparire in modo non corretto nel testo dei passaggi della ricetta. Per ottenere risultati ottimali, ti consigliamo di specificare in modo chiaro i passaggi con HowToStep.
    "recipeInstructions": [
      "In large bowl, gently mix filling ingredients; spoon into crust-lined pie
    plate. Top with second crust. Cut slits or shapes in several places in top
    crust. Bake 40 to 45 minutes. The pie is ready when the or until apples are
    tender and the crust is golden brown. Cool on cooling rack at least 2 hours
    before serving."
    ]
    

Linee guida aggiuntive

  • Non includere metadati non pertinenti. In particolare, utilizza la proprietà author per specificare l'autore, recipeCuisine per il tipo di cucina, recipeCategory per la categoria e keywords per le altre parole chiave.
  • Non includere altro testo oltre a quello relativo a come preparare il piatto, ad esempio "Istruzioni", "Guarda il video", "Passaggio 1". Specifica queste frasi al di fuori dei dati strutturati.

    Non consigliato:

    "recipeInstructions": [{
      "@type": "HowToStep",
      "text": "Step 1. Heat oven to 425°F."
    }]
    

    Consigliato:

    "recipeInstructions": [{
      "@type": "HowToStep",
      "text": "Heat oven to 425°F."
    }]
    
recipeYield

Text o Integer

La quantità prodotta con la ricetta, se applicabile. Specifica il numero di porzioni prodotte da questa ricetta semplicemente con un numero. Se vuoi usare un'unità diversa (ad esempio, numero di elementi), potresti includere proprietà yield aggiuntive. Questa informazione è obbligatoria se specifichi informazioni nutrizionali per porzione (ad esempio nutrition.calories).

Esempio

"recipeYield": [
  "6",
  "24 cookies"
]
totalTime

Duration

Il tempo totale necessario per preparare il piatto, nel formato ISO 8601, se applicabile.

Utilizza totalTime o una combinazione di cookTime e prepTime.

video VideoObject

Un video che illustra i passaggi per preparare il piatto. Consulta l'elenco delle proprietà video obbligatorie e consigliate.

HowToSection

Utilizza HowToSection per raggruppare una sequenza di passaggi (o sottosezioni) che costituiscono parte delle istruzioni di una ricetta. Specifica HowToSection direttamente all'interno della definizione della proprietà recipeInstructions o come itemListElement di un altro HowToSection.

Il tipo HowToSection definisce una sezione di una singola ricetta e contiene uno o più passaggi. Non utilizzare HowToSection per definire ricette diverse per lo stesso piatto; invece, utilizza HowToSection come parte di una singola ricetta. Per elencare più ricette per un piatto, utilizza più oggetti Recipe. Ad esempio, elenca i diversi modi per preparare una torta di mele come più oggetti Recipe, non come oggetti HowToSection.

La definizione completa di HowToSection è disponibile all'indirizzo schema.org/HowToSection.

Proprietà obbligatorie
itemListElement HowToStep

Un elenco di passaggi dettagliati per la sezione e/o le sottosezioni. Ad esempio, una ricetta per la pizza può avere una sezione di passaggi per la preparazione della pasta, una per la preparazione dei condimenti e una per la combinazione e la cottura.

Esempio:

{
  "@type": "HowToSection",
  "name": "Assemble the pie",
  "itemListElement": [
    {
      "@type": "HowToStep",
      "text": "In large bowl, gently mix filling ingredients; spoon into crust-lined pie plate."
    }, {
      "@type": "HowToStep",
      "text": "Top with second crust. Cut slits or shapes in several places in top crust."
    }
  ]
}
name Text

Il nome della sezione.

HowToStep

Utilizza HowToStep per raggruppare una o più frasi che spiegano come eseguire una parte della ricetta, se ha senso per i tuoi contenuti. Definisci la proprietà text con le frasi o, alternativamente, definisci itemListElement con un HowToDirection o HowToTip per ogni frase.

Esegui il markup dei passaggi della ricetta con le seguenti proprietà del tipo HowToStep. Specifica un HowToStep direttamente all'interno della definizione della proprietà recipeInstructions o come un itemListElement di un HowToSection.

La definizione completa di HowToStep è disponibile all'indirizzo schema.org/HowToStep.

Proprietà obbligatorie
itemListElement HowToDirection o HowToTip

Un elenco dettagliato dei sottopassaggi, inclusi indicazioni o suggerimenti.

Facoltativo se utilizzi text.

text Text

Il testo completo delle istruzioni di questo passaggio.

Facoltativo se utilizzi itemListElement. Linee guida aggiuntive:

  • Non includere altro testo oltre a quello relativo alle istruzioni, ad esempio "Istruzioni", "Guarda il video", "Passaggio 1". Specifica queste frasi al di fuori della proprietà del markup.

    Non consigliato:

    {
      "@type": "HowToStep",
      "text": "Step 1. Heat oven to 425°F."
    }
    

    Consigliato:

    {
      "@type": "HowToStep",
      "text": "Heat oven to 425°F."
    }
    
Proprietà consigliate
image ImageObject o URL

Un'immagine per il passaggio. Ulteriori linee guida per le immagini:

  • Gli URL delle immagini devono essere scansionabili e indicizzabili.
  • Le immagini devono rappresentare i contenuti di cui è stato effettuato il markup.
  • Le immagini devono essere in formato .jpg, .png o .gif.
name Text

La parola o la breve frase che riassume il passaggio (ad esempio "Stendi la base per la torta"). Non usare testo non descrittivo (ad esempio "Passaggio 1: [testo]") o un formato diverso per il numero dei passaggi (ad esempio "1. [testo]").

url URL

Un URL che collega direttamente al passaggio (se disponibile). Ad esempio, un frammento del link di ancoraggio.

video VideoObject o Clip

Un video per questo passaggio o un clip del video.

Per VideoObject, segui l'elenco delle proprietà Video o Clip obbligatorie e consigliate.

HowToDirection e HowToTip

Utilizza HowToDirection e HowToTip per descrivere indicazioni o suggerimenti, se applicabili. Hanno le stesse proprietà obbligatorie e consigliate.

Le definizioni complete di HowToDirection e HowToTip sono disponibili agli indirizzi schema.org/HowToDirection e schema.org/HowToTip.

Proprietà obbligatorie
text Text

Il testo dell'indicazione o del suggerimento.

ItemList

Oltre alle proprietà Recipe, aggiungi le seguenti proprietà per gli elenchi specifici dell'host. Sebbene ItemList non sia obbligatorio, devi aggiungere le seguenti proprietà se vuoi che la ricetta sia idonea per un carosello host. Per scoprire di più sul carosello host, vedi Carosello.

La definizione completa di ItemList è disponibile all'indirizzo schema.org/ItemList.

Proprietà obbligatorie
itemListElement

ListItem

Annotazione per una pagina di elemento.

ListItem.position

Integer

Posizione ordinale della pagina di elemento nell'elenco. Ad esempio:

"itemListElement": [
  {
    "@type": "ListItem",
    "position": 1,
  }, {
    "@type": "ListItem",
    "position": 2,
  }
]
ListItem.url

URL

L'URL canonico della pagina elemento. Ogni elemento deve avere un URL univoco.

Monitorare i risultati avanzati con Search Console

Search Console è uno strumento che consente di monitorare il rendimento delle tue pagine in Ricerca Google. Registrarsi in Search Console non è obbligatorio per essere inclusi nei risultati di Ricerca Google, ma può aiutarti a capire e migliorare il modo in cui Google vede il tuo sito. Ti consigliamo di controllare Search Console nei seguenti casi:

  1. Dopo aver effettuato il deployment dei dati strutturati per la prima volta
  2. Dopo aver rilasciato nuovi modelli o aggiornato il codice
  3. Analisi periodica del traffico

Dopo aver effettuato il deployment dei dati strutturati per la prima volta

Dopo che Google ha indicizzato le tue pagine, cerca i problemi utilizzando il report sullo stato dei risultati avanzati pertinente. L'ideale sarebbe un aumento degli elementi validi e nessun aumento di quelli non validi. Se riscontri problemi nei dati strutturati:

  1. Correggi gli elementi non validi.
  2. Controlla un URL pubblicato per verificare se il problema persiste.
  3. Richiedi la convalida utilizzando il report sullo stato.

Dopo aver rilasciato nuovi modelli o aggiornato il codice

Quando apporti modifiche significative al tuo sito web, monitora l'aumento degli elementi non validi dei dati strutturati.
  • Se vedi un aumento di errori, forse hai reso disponibile un nuovo modello non funzionante oppure il tuo sito interagisce con il modello esistente in modo nuovo, ma non corretto.
  • Se noti una diminuzione degli elementi validi (non associata a un aumento di quelli non validi), forse non stai più incorporando dati strutturati nelle tue pagine. Utilizza lo strumento Controllo URL per scoprire la causa del problema.

Analisi periodica del traffico

Analizza il traffico di Ricerca Google utilizzando il rapporto sul rendimento. I dati mostrano la frequenza con cui la pagina viene visualizzata nei risultati multimediali nella Ricerca, la frequenza con cui gli utenti fanno clic e qual è la posizione media che visualizzi nei risultati di ricerca. Puoi anche estrarre automaticamente questi risultati con l'API Search Console.

Risoluzione dei problemi

Se hai difficoltà con l'implementazione o il debug dei dati strutturati, ecco alcune risorse che potrebbero esserti utili.