XooCode(){

NutritionInformation

NutritionInformation is a StructuredValue that carries a full nutrition-facts label. It appears as a property on Recipe, on MenuItem, and on any Product that represents a packaged food.

It adds 12 direct properties:

  • servingSize (Text): the portion the label describes (e.g. "1 cup (240 ml)").
  • calories (Energy): energy per serving.
  • carbohydrateContent, sugarContent, fiberContent (Mass): carbs breakdown.
  • fatContent, saturatedFatContent, transFatContent, unsaturatedFatContent (Mass): fats breakdown.
  • proteinContent (Mass), cholesterolContent (Mass), sodiumContent (Mass).

Full example of schema.org/NutritionInformation json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/NutritionInformation
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Structured Data Chili",
  "recipeYield": "6 servings",
  "nutrition": {
    "@type": "NutritionInformation",
    "servingSize": "1 bowl (340 g)",
    "calories": "420 calories",
    "fatContent": "14 g",
    "saturatedFatContent": "5 g",
    "transFatContent": "0 g",
    "unsaturatedFatContent": "8 g",
    "cholesterolContent": "65 mg",
    "sodiumContent": "780 mg",
    "carbohydrateContent": "41 g",
    "fiberContent": "11 g",
    "sugarContent": "6 g",
    "proteinContent": "28 g"
  },
  "suitableForDiet": ["https://schema.org/GlutenFreeDiet", "https://schema.org/LowFatDiet"]
}
</script>

Value format: "240 calories", "9 grams"

Schema.org types the nutrient properties as Energy and Mass, but the practical convention Google and most consumers follow is a plain text value with the unit appended: "calories": "240 calories", "fatContent": "9 g". Numeric-only values or missing units make the data unreadable for the recipe rich result.

Where it gets used

On Recipe: Google's recipe rich result surfaces calories prominently. On MenuItem: restaurant schema and menu-aggregator consumers read it for allergen-aware filtering. On packaged Product: grocery aggregators and AI shopping assistants use it for dietary fit.

Minimal valid version

The smallest markup that still produces a valid NutritionInformation entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/NutritionInformation (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "NutritionInformation",
  "servingSize": "1 bowl (340 g)",
  "calories": "420 calories",
  "fatContent": "14 g",
  "proteinContent": "28 g"
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • Recipe rich result (via containing Recipe)primary
    Google docs

Common NutritionInformation mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Numeric-only nutrient values

    Wrong
    "fatContent": 14
    Right
    "fatContent": "14 g"

    Google's recipe parser expects the unit in the string. A bare number is ambiguous (grams? ounces? milligrams?) and is skipped by the rich result.

  2. 02

    Missing servingSize

    Wrong
    Nutrition data with no servingSize
    Right
    Always publish servingSize so consumers can normalise the figures

    Without servingSize, 'calories: 420' is meaningless. The whole label is a per-serving statement.

  3. 03

    Calories as kcal / kJ inconsistency

    Wrong
    Mixing kcal and kJ across siblings
    Right
    Pick one unit per site (US: calories / kcal; EU: often both kJ and kcal)

    The property name is calories; if you publish kJ, say so in the string. Consistency matters for diet-tracker consumers.

  4. 04

    Putting NutritionInformation on the Product parent for a recipe page

    Wrong
    Product.nutrition on a recipe
    Right
    Recipe.nutrition (the recipe owns the figures; the sold product may be a separate bundle)

    Recipe has nutrition as a first-class property. Use it on Recipe to light up the rich result.

About the example data

The nutrition panel for Xoo Code's "Structured Data Chili," served at the Riverfront Food Hall during Xoo Code Quarterly events.

Comments

Loading comments...

Leave a comment