Dados estruturados de receita (Recipe, HowTo, ItemList)

Use dados estruturados para informar o Google sobre suas receitas e ajudar os usuários a encontrar esse conteúdo. Quando você fornece informações como avaliações, tempo de preparo e informações nutricionais, o Google entende melhor a receita e a apresenta aos usuários de uma maneira mais interessante. As receitas aparecem nos resultados da pesquisa do Google e no Imagens do Google.

Uma ilustração de como a pesquisa aprimorada de receitas pode aparecer na Pesquisa Google. Ela tem quatro pesquisas aprimoradas de diferentes sites, com detalhes sobre quanto tempo leva para cozinhar, uma imagem e informações de avaliações. Uma ilustração de como uma receita pode aparecer no Imagens do Google. Há seis resultados de imagens mostrando diferentes pratos, sendo que três deles são identificados com um selo de receita.

Com base na marcação do conteúdo, suas receitas podem se qualificar para as seguintes melhorias:

Melhorias de receitas
Carrossel de host de receitas: adicione dados estruturados ItemList para que os usuários explorem sua galeria de receitas. Uma ilustração de como um carrossel de host de receitas pode aparecer na Pesquisa Google. Ela mostra três receitas diferentes do mesmo site em um formato de carrossel que os usuários podem explorar e selecionar uma receita específica.

Como adicionar dados estruturados

Os dados estruturados são um formato padronizado para fornecer informações sobre uma página e classificar o conteúdo dela. Caso você não saiba muito sobre o assunto, veja como os dados estruturados funcionam.

Esta é uma visão geral de como criar, testar e lançar dados estruturados.

  1. Adicione as propriedades obrigatórias. Com base no formato que você está usando, saiba onde inserir dados estruturados na página.
  2. Siga as diretrizes.
  3. Valide o código com o Teste de pesquisa aprimorada e corrija os erros críticos. Corrija também os problemas não críticos que possam ser sinalizados na ferramenta, porque eles podem melhorar a qualidade dos dados estruturados, mas isso não é necessário para se qualificar para pesquisas aprimoradas.
  4. Implante algumas páginas que incluam os dados estruturados e use a Ferramenta de inspeção de URL para testar como o Google vê a página. Verifique se a página está acessível ao Google e se não está bloqueada por um arquivo robots.txt, pela tag noindex ou por requisitos de login. Se estiver tudo certo, peça ao Google para rastrear novamente seus URLs.
  5. Para informar o Google sobre mudanças futuras, recomendamos que você envie um sitemap. É possível automatizar isso com a API Search Console Sitemap.

Exemplos

Veja alguns exemplos de receitas que usam código JSON-LD.

Receita na Pesquisa

Veja um exemplo de página qualificada para ser exibida na Pesquisa.

<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": "2018-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": "2018-02-05T08:00:00+08:00",
        "duration": "PT1M33S",
        "interactionStatistic": {
          "@type": "InteractionCounter",
          "interactionType": { "@type": "WatchAction" },
          "userInteractionCount": 2347
        },
        "expires": "2019-02-05T08:00:00+08:00"
       }
    }
    </script>
  </head>
  <body>
  </body>
</html>

Veja um exemplo de página de resumo de receitas (uma página com uma lista de receitas) com dados estruturados de itemList. Esse conteúdo pode ser exibido em uma grade nos resultados da Pesquisa.

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

Diretrizes

É preciso seguir as diretrizes gerais de dados estruturados para que sua marcação possa ser exibida nos resultados da Pesquisa.

As diretrizes a seguir se aplicam aos dados estruturados Recipe.

  • Use dados estruturados Recipe em conteúdos sobre como preparar determinado prato. Por exemplo, "esfoliante facial" ou "ideias para festas" não são nomes válidos para um prato.
  • Para que as receitas apareçam em um carrossel ou em uma grade, siga estas diretrizes:
    • Forneça dados estruturados de ItemList para resumir as receitas na sua lista. É possível fornecer dados estruturados de ItemList separadamente ou em conjunto com os dados estruturados de receita.
    • Seu site precisa ter uma página de resumo que liste todas as receitas da coleção. Por exemplo, quando um usuário clicar no link de resumo dos resultados da Pesquisa, será direcionado corretamente para uma página no seu site que lista as receitas relacionadas à pesquisa.

Definições de tipos de dados estruturados

É necessário incluir as propriedades obrigatórias para que seu conteúdo seja qualificado para exibição como uma pesquisa aprimorada. Também é possível incluir as propriedades recomendadas para dar mais informações sobre o conteúdo, o que pode proporcionar uma melhor experiência do usuário.

Recipe

Marque o conteúdo da receita com as seguintes propriedades do tipo Recipe do schema.org. A definição completa de Recipe está disponível em schema.org/Recipe. Veja as propriedades aceitas pelo Google:

Propriedades obrigatórias
image

URL ou ImageObject

É a imagem do prato pronto.

Outras diretrizes para imagens:

  • Cada página precisa conter pelo menos uma imagem, tendo marcação ou não. O Google escolherá a melhor imagem para exibir nos resultados da Pesquisa com base na proporção e na resolução.
  • Os URLs das imagens precisam ser rastreáveis e indexáveis. Para verificar se o Google consegue acessar os URLs, use a Ferramenta de inspeção de URL.
  • As imagens precisam representar o conteúdo marcado.
  • O formato do arquivo precisa ser compatível com o Imagens do Google.
  • Para conseguir os melhores resultados, recomendamos fornecer várias imagens de alta resolução, com no mínimo 50 mil pixels ao multiplicar a largura e a altura, nas seguintes proporções: 16 x 9, 4 x 3 e 1 x 1.

Exemplo:

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

Text

É o nome do prato.

Propriedades recomendadas
aggregateRating

AggregateRating

É a nota da avaliação média atribuída ao item. Siga as diretrizes de snippet de avaliação e a lista de propriedades AggregateRating obrigatórias e recomendadas.

Se os dados estruturados Recipe tiverem uma única avaliação, o nome do avaliador terá que ser de uma pessoa ou organização válida. Por exemplo, "50% de desconto e ingredientes" não é um nome válido para um avaliador.

author

Person ou Organization

É o nome da pessoa ou organização que escreveu a receita. Para ajudar o Google a entender melhor a autoria dos vários recursos, siga as práticas recomendadas de marcação de autores.

cookTime

Duration

O tempo que leva para cozinhar o prato, no formato ISO 8601, se aplicável.

Use sempre em combinação com prepTime.

datePublished

Date

É a data em que a receita foi publicada, no formato ISO 8601, se aplicável.

description

Text

É um pequeno resumo descrevendo o prato.

keywords

Text

São outros termos para a receita, como uma estação do ano ("verão"), uma data comemorativa ("Natal") ou outros descritores ("rápido", "fácil", "autêntico").

Diretrizes adicionais

  • Separe várias entradas em uma lista de palavras-chave com vírgulas.
  • Não use uma tag que seja, na verdade, recipeCategory ou recipeCuisine.

    Não recomendado:

    "keywords": "dessert, American"
    

    Recomendado:

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

Energy

É a quantidade de calorias em cada porção desta receita. Se nutrition.calories estiver definido, recipeYield precisa ser definido com o número de porções.

prepTime

Duration

É o tempo que leva para preparar os ingredientes e o espaço de trabalho do prato, no formato ISO 8601, se aplicável.

Use sempre em combinação com cookTime.

recipeCategory

Text

É o tipo de refeição ou prato da receita. Por exemplo: "jantar", "prato principal" ou "sobremesa, lanche".

recipeCuisine

Text

É a região associada à receita. Por exemplo, "francesa", "mediterrânea" ou "americana".

recipeIngredient

Text

É um ingrediente usado na receita.

Exemplo:

"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"
]

Diretrizes adicionais:

  • Inclua somente os ingredientes necessários para fazer a receita.
  • Não inclua informações desnecessárias, como uma definição do ingrediente.
recipeInstructions

HowToStep, HowToSection ou Text

São as etapas para preparar o prato.

Existem várias opções para definir o valor de recipeInstructions. Recomendamos o uso de HowToStep HowToSection também pode ser usado para agrupar HowToSteps se a receita tiver seções.

  • HowToStep: especifique as etapas da receita com 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 (somente se uma receita tiver várias seções): use para agrupar as etapas em várias seções. Visite HowToSection para ver um exemplo.
  • Propriedade de texto única ou repetida: é um bloco de texto que inclui uma ou mais etapas. O Google trata todas as etapas como uma única seção. Os valores de propriedade repetida são concatenados em um único bloco de texto. Depois disso, o Google tenta dividir automaticamente esse bloco em etapas individuais. O Google tenta encontrar e remover nomes de seção, números de etapas, palavras-chave e outros itens que possam aparecer incorretamente no texto da etapa da receita. Para melhores resultados, recomendamos que você use HowToStep para especificar etapas sem ambiguidade.
    "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."
    ]
    

Diretrizes adicionais

  • Não inclua metadados que pertençam a outro lugar. Use a propriedade author para especificar o autor, recipeCuisine para o tipo de culinária, recipeCategory para a categoria e keywords para outras palavras-chave.
  • Inclua somente texto sobre como fazer o prato, e não outros trechos, como "Instruções", "Assista ao vídeo", "Etapa 1". Especifique essas frases fora dos dados estruturados.

    Não recomendado:

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

    Recomendado:

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

Text ou Integer

A quantidade produzida pela receita, se aplicável. Especifique o número de porções produzidas a partir dessa receita com apenas um número. Se você quiser usar uma unidade diferente (por exemplo, o número de itens), inclua rendimentos adicionais. Isso é necessário se você especificar qualquer informação alimentar por porção (como nutrition.calories).

Exemplo

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

Duration

O tempo total necessário para preparar e cozinhar o prato, no formato ISO 8601, se aplicável.

Use totalTime ou uma combinação de cookTime e prepTime.

video VideoObject

É um vídeo que demonstra as etapas de preparação do prato. Siga a lista de propriedades de vídeo obrigatórias e recomendadas.

HowToSection

Use HowToSection para agrupar uma sequência de etapas (ou subseções) que compõem parte das instruções de uma receita. Especifique HowToSection diretamente na definição da propriedade recipeInstructions ou como itemListElement de outro HowToSection.

O tipo HowToSection define uma seção de uma única receita e contém uma ou várias etapas. Não use HowToSection para definir receitas diferentes para o mesmo prato. Em vez disso, use HowToSection como parte de uma única receita. Para listar diversas receitas de um mesmo prato, use vários objetos Recipe. Por exemplo, para várias maneiras de fazer uma torta de maçã, liste-as como vários objetos Recipe, e não HowToSection.

A definição completa de HowToSection está disponível em schema.org/HowToSection (em inglês).

Propriedades obrigatórias
itemListElement HowToStep

É uma lista de etapas detalhadas para a seção e/ou as subseções. Por exemplo, uma receita de pizza pode ter uma seção de etapas para fazer a massa, uma para preparar o recheio e outra para montar e assar.

Exemplo:

{
  "@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

É o nome da seção.

HowToStep

Use HowToStep para agrupar uma ou mais frases que expliquem como fazer parte da receita, se isso fizer sentido para seu conteúdo. Defina a propriedade text com as frases ou, alternativamente, defina itemListElement com HowToDirection ou HowToTip para cada uma delas.

Marque as etapas da receita com as seguintes propriedades do tipo HowToStep. Especifique HowToStep diretamente na definição da propriedade recipeInstructions ou como itemListElement de HowToSection.

A definição completa de HowToStep está disponível em schema.org/HowToStep (em inglês).

Propriedades obrigatórias
itemListElement HowToDirection ou HowToTip

É uma lista de subetapas detalhadas, incluindo orientações ou dicas.

Essa propriedade é opcional quando text é usado.

text Text

É o texto de instruções completo desta etapa.

Essa propriedade é opcional quando itemListElement é usado. Diretrizes adicionais:

  • Inclua somente texto de instruções e não inclua outros textos, como "Instruções", "Assista o vídeo", "Etapa 1". Especifique essas frases fora da propriedade marcada.

    Não recomendado:

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

    Recomendado:

    {
      "@type": "HowToStep",
      "text": "Heat oven to 425°F."
    }
    
Propriedades recomendadas
image ImageObject ou URL

É a imagem da etapa. Outras diretrizes para imagens:

  • Os URLs das imagens precisam ser rastreáveis e indexáveis.
  • As imagens precisam representar o conteúdo marcado.
  • Elas têm que estar em formato .jpg, .png ou .gif.
name Text

É uma palavra ou frase curta que resume a etapa (por exemplo, "sovar a massa"). Evite usar texto não descritivo (por exemplo, "Etapa 1: [texto]") ou outra forma de numeração (por exemplo, "1. [texto]").

url URL

É o URL que direciona à etapa (se houver). Por exemplo: um fragmento de link âncora.

video VideoObject ou Clip

É um vídeo da etapa ou um clipe do vídeo.

Para VideoObject, siga a lista de propriedades de vídeo ou clipe obrigatórias e recomendadas.

HowToDirection e HowToTip

Use HowToDirection e HowToTip para descrever orientações ou dicas, se aplicável. Eles têm as mesmas propriedades obrigatórias e recomendadas.

As definições completas de HowToDirection e HowToTip estão disponíveis em schema.org/HowToDirection e schema.org/HowToTip (páginas em inglês).

Propriedades obrigatórias
text Text

É o texto da orientação ou dica.

ItemList

Além das propriedades de receita, adicione as propriedades a seguir para listas específicas de host. Ainda que ItemList não seja obrigatória, é necessário adicionar as seguintes propriedades se quiser que sua receita seja qualificada para um carrossel de host. Para mais informações sobre o carrossel do host, consulte Carrossel.

A definição completa de ItemList está disponível em schema.org/ItemList (em inglês).

Propriedades obrigatórias
itemListElement

ListItem

É a anotação para uma única página de itens.

ListItem.position

Integer

É a posição ordinal da página de itens na lista. Exemplo:

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

URL

É o URL canônico da página de itens. Cada item precisa ter um URL exclusivo.

Monitorar pesquisas aprimoradas com o Search Console

O Search Console é uma ferramenta que ajuda você a monitorar o desempenho das suas páginas na Pesquisa Google. Não é preciso se inscrever na plataforma para ser incluído nos resultados da Pesquisa Google, mas isso pode ajudar você a entender e melhorar como vemos seu site. Recomendamos verificar o Search Console nos seguintes casos:

  1. Depois de implantar os dados estruturados pela primeira vez
  2. Depois de lançar novos modelos ou atualizar o código
  3. Análise periódica do tráfego

Depois de implantar os dados estruturados pela primeira vez

Depois que o Google indexar as páginas, procure problemas com o relatório de status da pesquisa aprimorada relevante. Em condições ideais, vai haver um aumento de itens válidos e nenhum aumento de itens inválidos. Se você encontrar problemas nos dados estruturados, faça o seguinte:

  1. Corrija os itens inválidos.
  2. Inspecione um URL ativo para verificar se o problema persiste.
  3. Solicite a validação com o relatório de status.

Depois de lançar novos modelos ou atualizar o código

Ao fazer mudanças significativas no site, monitore aumentos nos itens inválidos de dados estruturados.
  • Caso você perceba um aumento nos itens inválidos, talvez tenha lançado um novo modelo que não funcione ou o site esteja interagindo com o modelo existente de uma maneira nova e incorreta.
  • Caso você veja uma diminuição nos itens válidos (não correspondidos por um aumento nos itens inválidos), talvez não esteja mais incorporando os dados estruturados às páginas. Use a Ferramenta de inspeção de URL para saber o que está causando o problema.

Análise periódica do tráfego

Analise o tráfego da Pesquisa Google com o Relatório de desempenho. Os dados vão mostrar com que frequência sua página aparece como aprimorada na Pesquisa, com que frequência os usuários clicam nela e qual é a posição média dela nos resultados. Também é possível extrair automaticamente esses resultados com a API Search Console.

Solução de problemas

Se você tiver problemas para implementar ou depurar dados estruturados, veja alguns recursos que podem ajudar.