食谱

移动设备上的图片搜索示例和富媒体搜索结果示例

您可以使用结构化数据来标记您的食谱内容,以便为您的食谱提供富媒体搜索结果和托管专用列表,如评价者评分、烹饪和准备时长以及营养信息。您的网页所能使用的功能因您向网页添加结构化数据的方式而异:

  • 搜索:添加食谱结构化数据,以吸引用户在 Google 搜索中与相应富媒体搜索结果进行互动。
  • 语音引导:启用 Google 助理,以引导用户在 Google Home 和智能显示屏上浏览您的食谱。
  • 轮播界面:添加轮播界面结构化数据,以使您的食谱能够显示在富媒体搜索结果的轮播界面中。这可能包括图片、网页徽标和其他有趣的搜索结果功能。
  • AMP:使用 AMP 构建食谱网页,以提供能即时加载的食谱。

如果您遵照本指南构建内容,您的内容可能会自动启用以下功能:

  • 移动版 Google 图片搜索结果中的食谱徽章
  • Google 助理上的内容操作

示例

下面是一些使用了 JSON-LD 代码的食谱示例(在结构化数据测试工具中)。

食谱示例

下面是一个包含 recipeguidance 结构化数据的网页示例。此内容既能在 Google 搜索结果中显示为富媒体搜索结果,也能在 Google Home 和智能显示屏上利用 Google 助理为用户提供语音引导服务。

下面是一个包含 itemList 结构化数据的食谱摘要网页(一个包含食谱列表的网页)示例。此内容能够显示在 Google 搜索结果中的轮播界面内。

指南

您必须遵循结构化数据常规指南,您的食谱才能显示在 Google 搜索结果中。要使您的食谱能够在 Google Home 和智能显示屏上利用 Google 助理为用户提供语音引导服务,请确保您的内容遵循 Actions on Google 内容限制政策

以下指南适用于食谱结构化数据。

  • 仅对与准备特定菜肴相关的内容使用食谱结构化数据。例如,“磨砂膏”或“聚会创意”就不是有效的菜肴名称。
  • 要使您的食谱能够显示在托管专用列表中,您必须遵循以下指南:
    • 提供 ItemList 结构化数据来为您的列表汇总食谱。您可将 ItemList 结构化数据和食谱结构化数据分开提供,也可将它们一起提供。
    • 您的网站必须有一个摘要网页,以用于列出集合内的所有食谱。例如,当用户点击 Google 搜索结果中的摘要链接时,他们便会被定向到您网站上的适当网页(其中列出了与其搜索相关的食谱)。

结构化数据类型定义

若想使您的内容能够作为富媒体搜索结果或其他体验显示在 Google 搜索结果中,您必须为相应内容添加必需的属性。您还可添加建议的属性,以便添加与您的内容相关的更多信息,从而提供更好的用户体验。

ItemList

如需了解 ItemList 的完整定义,请访问 schema.org/ItemList

除了 Recipe 属性之外,您还可为托管专用列表添加以下属性。虽然 ItemList 不是必需的,但如果您希望您的食谱能够显示在托管轮播界面中,则必须添加以下属性。要详细了解托管专用列表,请参阅轮播界面

必需的属性
itemListElement

ListItem

单个项目网页的注释。

ListItem.position

Integer

列表中相应项目网页的序数位置。例如:


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

URL

项目网页的规范网址。每个项目都应具备一个独一无二的网址。

Recipe

如需了解 Recipe 的完整定义,请访问 schema.org/Recipe。请使用 schema.org Recipe 类型的以下属性来标记您的食谱内容。除了必填字段之外,请也标记尽可能多的建议字段,以改善 Google 搜索中的用户互动情况。

要使您的食谱能够在 Google Home 和智能显示屏上利用 Google 助理为用户提供语音引导服务,请务必添加 recipeIngredientrecipeInstructions。如果您的食谱不具备这些属性,就无法利用语音引导服务,但或许仍能显示在 Google 搜索结果中。

必需的属性
image

URLImageObject

做好的菜肴的图片。

其他的图片指南:

  • 每个网页必须包含至少 1 张图片(无论您是否添加了标记)。Google 将根据宽高比和分辨率来挑选最合适的图片,让其显示在搜索结果中。
  • 图片网址必须可抓取且可编入索引
  • 图片必须代表已标记的内容。
  • 图片必须采用 .jpg、.png 或 .gif 格式。
  • 为了获得最佳效果,请按以下宽高比提供多张高分辨率图片(宽度乘以高度至少为 50K 像素):16x9、4x3 和 1x1。

例如:

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

Text

菜肴的名称。

建议的属性
aggregateRating

AggregateRating

相应项目所获得的平均评价分数的注释。请遵循评价摘要指南并查看必需的和建议的 AggregateRating 属性列表。

如果食谱结构化数据包含一条评价,那么评价者的名称必须是一个有效的个人或组织名称。例如,“配料减少 50%”就不是有效的评价者名称。

author

Person

食谱的创作者。

cookTime

Duration

实际烹饪菜肴所需的时间,采用 ISO 8601 格式。您可以使用 min 和 max 作为子元素来指定时间范围。

始终与 prepTime 结合使用。

datePublished

Date

食谱的发布日期,采用 ISO 8601 格式

description

Text

一段用于描述菜肴的简短摘要。

keywords

Text

用来描述您的食谱的其他字词,如季节(“夏季”)、假日(“万圣节”)或其他描述词(“快速”、“简单”、“正宗”)。

其他指南

  • 用英文逗号分隔关键字列表中的多个条目。
  • 不要使用应在 recipeCategoryrecipeCuisine 中出现的标记。

    不推荐

    "keywords": "dessert, American"

    推荐

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

Energy

每份菜肴所含的卡路里数。

prepTime

Duration

准备菜肴所需的时间,采用 ISO 8601 格式。您可以使用 min 和 max 作为子元素来指定时间范围。

始终与 cookTime 结合使用。

recipeCategory

Text

您的食谱是关于三餐中的哪一餐或哪道菜。例如,“晚餐”、“主菜”或“甜点/点心”。

recipeCuisine

Text

与您的食谱相关的地理区域。例如,“法国菜”、“地中海菜”或“美国菜”。

recipeIngredient

Text

食谱中用到的配料。若想使食谱能够显示在 Google 搜索结果中,此属性只是建议的属性;但若想使食谱能够在 Google Home 和智能显示屏上利用 Google 助理为用户提供语音引导服务,此属性则是必需的属性。

例如:

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

其他指南

  • 仅添加按食谱烹制菜肴所必需的配料。
  • 不要添加无关紧要的信息,如配料的定义。
recipeInstructions

Text

菜肴的烹制步骤。若想使食谱能够显示在 Google 搜索结果中,此属性只是建议的属性;但若想使食谱能够在 Google Home 和智能显示屏上利用 Google 助理为用户提供语音引导服务,此属性则是必需的属性。

有几个选项可用于设置 recipeInstructions 的值。我们建议您使用 HowToStepHowToSection

  • HowToStep:您可以设置每个 HowToStep 的值,从而指定每个步骤语句的确切文本。这会为 Google 助理提供提示,但请注意,它可能会根据上下文以不同的方式对食谱步骤进行分组。
  • HowToSection(仅当食谱包含多个部分时):用于将步骤组合成多个部分。在每个部分的名称字段中指定相应的部分名称(例如,“制作比萨皮”),并将每个 HowToStep 指定为一个 itemListElement。然后,设置每个 HowToStep 的文本字段。

    例如,在某道比萨食谱中,可能有一个部分会介绍比萨皮制作步骤,有一个部分会介绍馅料准备步骤,还有一个部分会介绍拌匀和烘焙步骤。如果您未指明多个部分,Google 助理可能会误将某个部分名称说成是另一个步骤(例如,“制作比萨皮”步骤后跟“将面粉和酵母拌匀”步骤)。

  • 单个或重复的文本字段:包含一个或多个步骤的文本块。Google 会将所有步骤视为在一个部分中。重复的字段值会连接成一个文本块。然后,Google 会尝试自动将这个文本块拆分为多个步骤。Google 会设法找到并移除任何部分名称、步骤编号、关键字以及其他所有可能会错误地显示在食谱步骤文本中的内容。为获得最佳效果,我们建议您使用 HowToStep 明确指定各个步骤语句,如上所述。

其他指南

  • 不要添加应在别处使用的元数据。特别需要指出的是,应使用 author 字段指定作者,使用 recipeCuisine 字段指定菜系,使用 recipeCategory 字段指定类别,并使用 keywords 字段指定其他关键字。
  • 仅添加与如何按照食谱烹制菜肴相关的文本,不要添加其他文本(如“说明”、“观看视频”或“第 1 步”)。应在结构化数据之外指定这些短语。

    不推荐

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

    推荐

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

Text

食谱的份量。例如:食用人数或份数。

totalTime

Duration

准备和烹饪菜肴所需的总时间,采用 ISO 8601 格式。您可以使用 min 和 max 作为子元素来指定时间范围。

使用 totalTime,或者将 cookTimeprepTime 搭配使用。

video

VideoObject

一系列视频属性,用来描述网页上的食谱。请查看必需的和建议的 Video 属性列表。

示例如下:

{
  "@context": "https://schema.org/",
  "@type": "Recipe",
  "video": [
    {
      "name": "Party Coffee Cake",
      "description": "How to make 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/videos/123_600x400.mp4",
      "embedUrl": "http://www.example.com/videoplayer?id=123",
      "uploadDate": "2018-02-05T08:00:00+08:00"
    }
  ]
}

发送以下问题的反馈:

此网页