Structured data for recipes: Getting content read out loud

Do you have a recipe site? If so, you might already be using structured data to mark up your recipes so they can get highlighted in the search results. Good work! But, Google recently made some changes that might make your implementation incomplete. It also expanded the possibilities of structured data for recipes by bringing guidance into the mix. The result? Google Home can now read your structured data powered recipes out loud!

Structured data, recipes and Google Home

Google is betting big on voice search. While voice search is still in its infancy, there are signs that we are moving towards a future where we are relying much less on our screens. There are many instances where talking to your digital assistant makes much more sense than typing commands. What’s more, the AI in digital assistants will become smarter and more apt at entering into a natural dialogue with you. We’re talking about a real natural language interface here.

A lot is going on right now. Take for instance that Google Duplex demo, showing a digital assistant calling a hairdresser to make an appointment. Joost wrote a post about Google Duplex and the ethics and implications. If AI is this smart, we need to take note.

To get voice search and actions to work, Google relies on structured data. Structured data makes it immediately clear what all the different parts of a page mean so search engines can use that to do cool stuff with. Google Actions, the big database featuring things you can let Assistant do, uses structured data. For instance, here is Google’s page on recipe actions — which is the same as the regular structured data for recipes documentation.

If you want to learn all about structured data, please read our Ultimate Guide to Structured Data and check our visual guide on rich results, structured data and Schema. Want to really master structured data? Check out our Structured data training which is part of the Yoast SEO Academy training subscription!

New rules, new results

In May 2018, Google announced a new and improved way of targeting people who search for recipes. By adding the correct structured data, you can get your recipes read out loud. Google even said that by implementing this you might: “receive traffic from more sources, since users can now discover your recipes through the Google Assistant on Google Home.”

But, when throwing random recipes from some of the largest recipe sites in the world into the Structured Data Testing Tool, you’ll find that hardly any fully comply with these new rules yet. What’s more, even the implementation of the recipe Schema.org itself is widely different between sites. That being said, there’s still a lot to win, even for the big boys.

As of now, Google recommends four new properties in addition to the ones you probably already use:

  • keywords: additional terms to describe the recipe
  • recipeCategory: in which category does the recipe fit?
  • recipeCuisine: from which region is the recipe?
  • video: use this if you have a video showing to make the recipe
warnings structured data testing tool

You’ll see the recommendations in Google’s Structured Data Testing Tool:

Guidance: reading it out loud

How cool would it be if your Google Home could assist while you were cooking? Not by setting timers and the like, but by reading the recipe for you. That’s now possible thanks to guidance. In addition to the four new recommended properties for structured data for recipes, Google states that:

“To enable your recipe for guidance with the Google Home and Google Assistant, make sure you add recipeIngredient and recipeInstructions. If your recipe doesn’t have these properties, the recipe isn’t eligible for guidance, but may still be eligible to appear in Search results.”

To get your Google Home to pronounce the steps of your recipes correctly, you need to set the value of recipeInstructions using HowToStep or HowToSection. The latter, of course, should be used if your recipe instructions consist of multiple parts or sections. You can also keep everything in one block of recipeInstruction, but then you are at the mercy of Google as it has to try and work everything out itself. If you have distinct steps, please use HowToStep and/or HowToSection.

Hello keywords, we meet again

In a move straight out of 1997, we see keywords pop up again. Google now recommends using the keyword property to add context for your recipes. Now, this shouldn’t be confused with the recipeCategory and recipeCuisine properties. It is an extra way of describing your articles using words that don’t relate to a category or type of cuisine. We’ll just have to wait and see if the spammers can keep themselves under control.

One of the coolest ways to discover content is the swipeable carousel you see when you search for certain types of content on mobile. To greaten the chance of your site appearing in this overview you can add an ItemList with one or more ListItems to your content.

Now, Google is quick to add that it might not be necessary to add this if you only want to appear in the regular search carousel. If you throw several well-known recipes sites into the Structured Data Testing Tool you will see that hardly any have added ItemList to their pages. Still, they rank high and appear in the carousel. If, however, you want to have site-specific entries — like your list of 5 best chocolate cheesecake recipes, or another type of landing page with recipes — into that carousel you need to add the ItemList structured data. There are several ways of doing this; you can find out more on Google’s documentation pages.

Applying structured data for recipes

If you look at Schema.org/Recipe, you might be starting to go a little bit green around the gills. Where do you even start? It’s massive! These are all the properties you could add, but that doesn’t mean that you should. Google requires just a couple but recommends a lot more.

These are the required properties:

  • @context: set to Schema.org
  • @type: set to Recipe
  • image: can be a URL or a ImageObject
  • name: name of the dish

That’s it! But, as you might have guessed, this won’t get you very far. By providing Google with as much data about your recipe as possible, you increase the chance that Google ‘gets’ your recipe. After that, it can apply the rich results and corresponding Actions accordingly.

Here are the recommended properties:

  • aggregateRating: average review score for this recipe
  • author: who made it? Use Schema.org/Person
  • cookTime: the time it takes to cook the recipe
  • datePublished: when was the recipe published?
  • description: a description of the recipe
  • keywords: terms to describe the recipe
  • nutrition.calories: the number of calories. Use Schema.org/Energy
  • prepTime: how long do the preparations take?
  • recipeCategory: is it breakfast, lunch, dinner or something else?
  • recipeCuisine: where in the world is the recipe from originally?
  • recipeIngredient: every ingredient you need to make the recipe. This property is required if you want Google Home to read your recipe out loud.
  • recipeInstructions: mark up the steps with HowToStep or HowToSection with embedded ItemistElement with a HowToStep.
  • recipeYield: for how many servings is this?
  • review: add any review you might have
  • totalTime: how long does it all take?
  • video: add a video showing how to make the recipe, if applicable

To show you how this all translates to code, we need an example. So, here’s Googles example recipe in JSON-LD format. You’ll see that it is all obvious and pretty easy to understand. If you want to implement JSON-LD code on your page, Google Tag Manager might be your best bet.

<!doctype html>
<html amp lang="en">
  <head>
    <meta charset="utf-8">
    <title>Party Coffee Cake</title>
    <link rel="canonical" href="http://example.ampproject.org/recipe-metadata.html" />
    <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
    <script type="application/ld+json">
     {
      "@context": "http://schema.org/",
      "@type": "Recipe",
      "name": "Party Coffee Cake",
      "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 coffee cake is awesome and perfect for parties.",
      "prepTime": "PT20M",
      "cookTime": "PT30M",
      "totalTime": "PT50M",
      "keywords": "cake for a party, coffee",
      "recipeYield": "10 servings",
      "recipeCategory": "Dessert",
      "recipeCuisine": "American",
      "nutrition": {
        "@type": "NutritionInformation",
        "calories": "270 calories"
         },
      "recipeIngredient": [
        "2 cups of flour",
        "3/4 cup white sugar",
        "2 teaspoons baking powder",
        "1/2 teaspoon salt",
        "1/2 cup butter",
        "2 eggs",
        "3/4 cup milk"
       ],
      "recipeInstructions": [
          {
          "@type": "HowToStep",
          "text": "Preheat the oven to 350 degrees F. Grease and flour a 9x9 inch pan."
          },
          {
          "@type": "HowToStep",
          "text": "In a large bowl, combine flour, sugar, baking powder, and salt."
          },
          {
          "@type": "HowToStep",
          "text": "Mix in the butter, eggs, and milk."
          },
          {
          "@type": "HowToStep",
          "text": "Spread into the prepared pan."
          },
          {
          "@type": "HowToStep",
          "text": "Bake for 30 to 35 minutes, or until firm."
          },
          {
          "@type": "HowToStep",
          "text": "Allow to cool."
         }
      ],
      "review": {
        "@type": "Review",
        "reviewRating": {
          "@type": "Rating",
          "ratingValue": "4",
          "bestRating": "5"
        },
        "author": {
          "@type": "Person",
          "name": "Julia Benson"
        },
        "datePublished": "2018-05-01",
        "reviewBody": "This cake is delicious!",
        "publisher": "The cake makery"
        },
      "aggregateRating": {
      "@type": "AggregateRating",
        "ratingValue": "5",
        "ratingCount": "18"
  },
  "video": [
     {
    "name": "How to make a Party Coffee Cake",
    "description": "This is how you make a Party Coffee Cake.",
    "thumbnailUrl": [
      "https://example.com/photos/1x1/photo.jpg",
      "https://example.com/photos/4x3/photo.jpg",
      "https://example.com/photos/16x9/photo.jpg"
     ],
    "contentUrl": "http://www.example.com/video123.flv",
    "embedUrl": "http://www.example.com/videoplayer.swf?video=123",
    "uploadDate": "2018-02-05T08:00:00+08:00",
    "duration": "PT1M33S",
    "interactionCount": "2347",
    "expires": "2019-02-05T08:00:00+08:00"
   }
  ]
}
</script>
  </head>
  <body>
    <h1>The best coffee cake you’ll ever try!</h1>
  </body>
</html>

Conclusion: Got a recipe site? Add structured data now!

Recipe sites are in a very cool position. It seems that they get everything first. By marking up your recipes with structured data, you can get Google to do a lot of cool stuff with your recipes. You can get them to pronounce it via Google Home or try to find other ways of interacting with them with Actions via the Assistant database. And this is probably only the beginning.

Read more: Structured data: the ultimate guide »

Coming up next!


18 Responses to Structured data for recipes: getting content read out loud

  1. S Roy
    S Roy  • 7 years ago

    Your tips are good to utilization at many works.
    Great article, keep up the good work.

  2. Tom
    Tom  • 7 years ago

    Hi, thanks for the article. Can you add a list of plugins which are doing the trick perfectly in line with the recommended schema and Google‘s recommendation?

  3. Narine
    Narine  • 7 years ago

    Hello,
    Is there any way to download the old version of Yoast like 6.0.0 ?

  4. Ahmed
    Ahmed  • 7 years ago

    Will this be used for other than just voice over for recipes? What if the for like a website with more sport related content?
    Btw I love SEO Yoast you make Seo so easy!

  5. Amanda
    Amanda  • 7 years ago

    Are there any recipe plug ins that already do this?

  6. Noor
    Noor  • 7 years ago

    Hi, Does any of your plugin support this?

    • Edwin Toonen

      Hi Noor. No, unfortunately not. We are, however, thinking hard about what we can do with structured data in our plugins, so stay tuned.

  7. vaneflaviano
    vaneflaviano  • 7 years ago

    Omg! this is so interesting, important and scary at the same time. I’m a complete newbie in blogging and my site includes recipes LOL. Thanks so much for the heads up!

    • Edwin Toonen

      Yeah, this is cool stuff. Add structured data to your recipes and you get in on it as well.

  8. PrepaidMan
    PrepaidMan  • 7 years ago

    Great article Edwin about structured data, thanks! I think people still don’t realise how big voice search is going to be.

    Besides food recipes, this will also be used for ordering stuff and making appointments and much more. Understanding this information now is essential for being ahead of the competition in the future.

    • Edwin Toonen

      Absolutely right! Voice search still feels weird for most people, but I think we’ll get used to it. Especially at home, it will be huge.

  9. Diana A Hobson
    Diana A Hobson  • 7 years ago

    Thank you for shedding light on what may be happening to my site at this time – even tho I already have structured data! Recipes out loud? A grand idea!

    • Edwin Toonen

      Hi Diana. You’re welcome! Great that you already have structured data on your site. Be sure to check your implementation in the Structured Data Testing Tool to see if there are any recommendations you can follow to improve it.

  10. Andy R
    Andy R  • 7 years ago

    It’s beginning to look a lot easier to come up with an original recipe for the menu rather than get a recipe noticed by Google! Thanks for explaining the data recipe steps needed to make it happen!! Undeterred – what should our first recipe be I wonder…

    • Edwin Toonen

      Glad to be of service, Andy!

  11. Anecia Hero
    Anecia Hero  • 7 years ago

    Great article! I’m using WPRecipe Maker… and I believe this tool meets all the structured data requirements. My question is: what do I need to do on my end to become recognized by GoogleHome, or any other voice reactive tool?

    • Edwin Toonen

      Hi Anecia. I see WPRecipe Maker added support for the necessary code starting in version 2.4, so if you’ve updated to the latest release you should be good to go. Fill in the fields for `video`, `keywords`, `recipeInstructions`, `recipeIngredient` and `HowToStep`. Test your code in the Structured Data Testing Tool and follow the recommendations. Good luck!

  12. zona
    zona  • 7 years ago

    Yoast always explains the importance of search result ranking and this post is another example of it.