レシピを Google のインデックスに登録する

構造化データを使用してレシピのコンテンツを Google に伝え、レシピをユーザーが見つけられるようにします。レビュー投稿者の評価、調理時間、準備時間、栄養成分などの情報を提供すると、Google がレシピを理解しやすくなり、ユーザーの興味を引く方法で表示できます。レシピは Google 検索の検索結果と Google 画像検索に表示されます。

Google 検索と Google 画像検索に表示されたレシピ

コンテンツのマークアップ方法に基づき、レシピは次の機能強化の対象となります。

レシピの機能強化
ガイド付きレシピ: Recipe 構造化データを追加することにより、Google Home やスマート ディスプレイで Google アシスタントを使用してユーザーにレシピを案内できるようになります。ガイド付きレシピでは必須、Google 検索では推奨に指定されている追加プロパティがいくつかあります。ガイド付きレシピでは、recipeIngredientrecipeInstructions を必ず追加してください。video プロパティを追加する場合は、contentUrl プロパティも追加する必要があります。

Google アシスタントに表示するレシピの詳細については、ウェブ コンテンツからアクションを作成するをご覧ください。

アシスタントに表示されたレシピ
レシピのホスト カルーセル: ItemList 構造化データを追加することで、ユーザーがレシピのギャラリー ページを探索できるようにします。 Google 検索に表示されたレシピ カルーセル

JSON-LD コードを使用したレシピの例を示します。

ガイド付きレシピ

次に、Google 検索に表示され、アシスタントにはガイド付きレシピとして表示されるページの例を示します。



  

検索で表示されるレシピ

検索で表示されるページの例を示します。



  
  

itemList 構造化データを含むレシピの概要ページ(レシピのリストを含むページ)の例を示します。このコンテンツは、検索結果のグリッドに表示される可能性があります。



    

ガイドライン

レシピを検索結果に表示するには、構造化データに関する一般的なガイドラインを遵守する必要があります。レシピをアシスタントにガイド付きレシピとして表示するには、アシスタントのコンテンツ制限に関するポリシーを遵守するコンテンツである必要があります。

Recipe 構造化データには以下のガイドラインが適用されます。

  • Recipe 構造化データは特定の料理の作り方に関するコンテンツに使用します。たとえば、「スクラブ洗顔料」や「パーティーのアイデア」は有効な料理名ではありません。
  • レシピをカルーセルまたはグリッドに表示するには、以下のガイドラインを遵守する必要があります。
    • ItemList 構造化データを使用して、一連のレシピをリストにまとめます。ItemList 構造化データは、単独で使用することも、レシピの構造化データと組み合わせて使用することもできます。
    • コレクション内のすべてのレシピを一覧表示する概要ページをサイトに含める必要があります。たとえば、ユーザーが検索結果から概要のリンクをクリックすると、検索条件に関連するレシピが一覧表示されるページに移動するようにします。

構造化データタイプの定義

コンテンツが Google 検索でリッチリザルトとして表示されるようにするには、必須プロパティを含める必要があります。また、推奨プロパティを使用することでコンテンツに関する詳細情報を追加でき、ユーザー エクスペリエンスの向上につながります。

Recipe

schema.org の Recipe タイプの以下のプロパティでレシピ コンテンツをマークアップします。Recipe の定義の全文は schema.org/Recipe で確認できます。

必須プロパティ
image

URL または ImageObject

完成した料理の画像。

name

Text

レシピの名前。

推奨プロパティ
aggregateRating

AggregateRating

アイテムに割り当てられた平均レビュースコアのアノテーション。レビュー スニペットのガイドラインと、必須および推奨の AggregateRating プロパティのリストに準拠します。

Recipe 構造化データに 1 つのレビューが含まれている場合、レビュー投稿者名は有効な個人名または組織名である必要があります。たとえば、「材料 50% 減」という名称は無効です。

author

Person または Organization

レシピを作成した個人または組織の名前。

cookTime

Duration

実際に調理するのにかかる時間(ISO 8601 形式)。子要素として最小値と最大値を使用すると、時間の範囲を指定できます。

常に prepTime と組み合わせて使用します。

datePublished

Date

レシピが公開された日付(ISO 8601 形式)。

description

Text

レシピの要約文。

keywords

Text

季節(「夏」)、行事(「ハロウィーン」)、その他の説明(「時短」、「簡単」、「本格的」)などのレシピに関するその他のキーワード。

その他のガイドライン

  • 複数のキーワードを指定する場合は、カンマで区切ります。
  • recipeCategory または recipeCuisine に相当するタグはここで使用しないでください。

    非推奨

    
    "keywords": "dessert, American"
    

    推奨

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

Energy

このレシピによる 1 人分のカロリー数。nutrition.calories が定義されている場合、recipeYield はレシピでできる人数分を基に定義する必要があります。

prepTime

Duration

料理に必要な材料や作業スペースの準備にかかる時間(ISO 8601 形式)。子要素として最小値と最大値を使用すると、時間の範囲を指定できます。

常に cookTime と組み合わせて使用します。

recipeCategory

Text

レシピの食事やコースの種類。たとえば、「夕食」、「メインコース」、「デザート、軽食」などです。

recipeCuisine

Text

レシピに関連付けられている地域。例: 「フランス」、「地中海」、「アメリカ」

recipeIngredient

Text

レシピに必要な材料。

次に例を示します。


"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

HowToStepHowToSection、または Text

調理方法。

recipeInstructions の値を設定する方法は複数ありますが、HowToStep を使用することをおすすめします。レシピに複数のセクションがある場合は、HowToSteps をグループ化するために HowToSection も使用できます。

  • HowToStep: このレシピの手順を 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(レシピに複数のセクションがある場合のみ): 手順を複数のセクションにグループ化するために使用します。HowToSection の例をご覧ください。
  • text プロパティ(単一または反復): 1 つ以上の手順を含むテキストのブロック。Google は、すべての手順が単一のセクション内にあるものとして扱います。text プロパティが繰り返されている場合は、単一のブロックに連結してから、その単一ブロックのテキストを個々の手順に自動的に分割し、セクション名、手順番号、キーワードなどがテキストに含まれていないかどうか調べて削除し、それらがレシピの手順テキストに誤って表示されないようにします。最良の結果を得るために、手順は 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."
    ]
    

その他のガイドライン

  • 他の場所に属しているメタデータは含めないでください。具体的には、著者を指定するには 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 または Integer

レシピの分量このレシピで出来上がる料理が何人分かを数字だけで指定します。別の単位(個数など)を使用する場合は、追加で分量情報を含めることもできます。これは、1 人分の栄養情報(nutrition.calories など)を指定する場合には必須です。


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

Duration

料理の準備と調理にかかる合計時間(ISO 8601 形式)。子要素として最小値と最大値を使用すると、時間の範囲を指定できます。

totalTime を使用するか、cookTimeprepTime を組み合わせて使用します。

video VideoObject

調理方法を表す動画。必須および推奨の動画プロパティのリストに準拠します。

  • Video without clips
    
    {
      "@context": "https://schema.org/",
      "@type": "Recipe",
      "video": [
        {
          "@type": "VideoObject",
          "name": "Delicious PieParty Coffee Cake",
          "description": "How to make a delicious pie - quickly and easily!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": "https://www.example.com/videos/123_600x400.mp4",
          "embedUrl": "https://www.example.com/videoplayer?id=123",
          "uploadDate": "2018-02-05T08:00:00+08:00"
        }
      ]
    }
    ]
    
  • Video with clips: 動画と、その動画内のセグメントに対応するクリップを指定する場合。レシピの他の部分(手順など)から、video.hasPart で定義したこれらのクリップを参照できます。
    
    {
      "@context": "https://schema.org/",
      "@type": "Recipe",
      "video": {
        "@type": "VideoObject",
        "name": "Make a pie",
        "description": "How to make a delicious pie - quickly and easily!",
        "thumbnailUrl": "https://example.com/photos/photo.jpg",
        "contentUrl": "https://www.example.com/videos/123_600x400.mp4",
        "embedUrl": "https://www.example.com/videoplayer?id=123",
        "uploadDate": "2018-02-05T08:00:00+08:00",
        "duration": "P1MT10S",
        "hasPart": [{
          "@type": "Clip",
          "@id": "Clip1",
          "name": "Preheat oven",
          "startOffset": 20,
          "endOffset": 29
          "url": "https://www.example.com/example?t=20"
         },
         {
           "@type": "Clip",
           "@id": "Clip2",
           "name": "Arrange pie crust",
           "startOffset": 29,
           "endOffset": 36
           "url": "https://www.example.com/example?t=29"
         },
         {
           "@type": "Clip",
           "@id": "Clip3",
           "name": "Make filling",
           "startOffset": 36,
           "endOffset": 45
           "url": "https://www.example.com/example?t=36"
         },
         {
           "@type": "Clip",
           "@id": "Clip4",
           "name": "Add filling",
           "startOffset": 45,
           "endOffset": 65
           "url": "https://www.example.com/example?t=45"
         },
         {
           "@type": "Clip",
           "@id": "Clip5",
           "name": "Bake",
           "startOffset": 65,
           "endOffset": 80
           "url": "https://www.example.com/example?t=65"
         },
         {
           "@type": "Clip",
           "@id": "Clip6",
           "name": "Let cool",
           "startOffset": 80,
           "endOffset": 90
           "url": "https://www.example.com/example?t=80"
        }]
      }
    }
    
video.contentUrl

URL

実際の動画メディア ファイル(サポートされているエンコード形式)を指定する URL。動画が存在するページへのリンクではなく、動画メディア ファイルそのものの URL にする必要があります。


"contentUrl": "https://www.example.com/video/123/file.mp4"

動画のベスト プラクティスに沿っていることをご確認ください。

video.hasPart

Clip

動画全体から一部を抽出した動画クリップ。

video.hasPart.endOffset

Number

動画の先頭からの秒数で表したクリップの終了時間。

video.hasPart.name

Text

クリップの名前。たとえば、パイ生地をパイプレートに配置して押しつける方法を示すクリップの名前を「パイ生地の配置方法」とします。

video.hasPart.startOffset

Number

動画の先頭からの秒数で表したクリップの開始時間。

video.hasPart.url

URL

クリップの開始時間へのリンク。クリップの開始時間は video.hasPart.startOffset に設定されている値と一致する必要があります。次に例を示します。


"startOffset": 20,
"endOffset": 29,
"url": "https://www.example.com/example?t=20"

HowToSection

HowToSection は、レシピの手順説明の一部を構成する一連のステップ(またはサブセクション)をグループ化するために使用します。HowToSectionrecipeInstructions プロパティの定義内で直接指定するか、別の HowToSectionitemListElement として指定します。

HowToSection タイプは、1 つのレシピのセクションを定義するもので、1 つ以上のステップを含みます。同じ料理をつくる別のレシピを定義するのに HowToSection を使用しないでください。HowToSection は、あくまでも 1 つのレシピの一部分を定義するものです。料理のレシピを複数挙げる場合は、複数の Recipe オブジェクトを使用してください。たとえば、アップルパイを作るための方法が複数ある場合は、HowToSection オブジェクトではなく、複数の Recipe オブジェクトとしてリストします。

HowToSection の定義の全文は schema.org/HowToSection で確認できます。

必須プロパティ
itemListElement HowToStep

セクションやサブセクションに含まれる詳細なステップのリスト。たとえばピザのレシピでは、生地を作る手順、トッピングを準備する手順、混ぜ合わせて焼く手順がそれぞれあります。レシピにセクションがあり、HowToSections で定義されていない場合、アシスタントがセクション名を認識できず、次の手順として提示してしまう可能性があります(「生地を作る」手順の次に「小麦粉とイーストを混ぜ合わせる」手順を提示するなど)。

例:


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

セクションの名前。

HowToStep

HowToStep は、レシピの一部を行う方法を説明する 1 つ以上の文章をグループ化するために使用します。text プロパティを文章で定義するか、itemListElement を文ごとに HowToDirection または HowToTip で定義します。

HowToStep タイプの次のプロパティで、レシピのステップをマークアップします。HowToSteprecipeInstructions プロパティの定義内で直接指定するか、HowToSectionitemListElement として指定します。

HowToStep の定義の全文は schema.org/HowToStep で確認できます。

必須プロパティ
itemListElement HowToDirection または HowToTip

指示やヒントなど、詳細なサブステップのリスト。

text を使用する場合は省略可能です。

text Text

このステップの手順を完全に説明するテキスト。

itemListElement を使用する場合は省略可能です。その他のガイドライン:

  • 手順を説明するテキストのみを含め、それ以外のテキスト(「方法」、「動画を見る」、「ステップ 1」など)は含めないでください。手順説明以外のテキストは、マークアップされたプロパティ外で指定してください。

    非推奨

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

    推奨

    
    {
      "@type": "HowToStep",
      "text": "Heat oven to 425°F."
    }
    
推奨プロパティ
image ImageObject または URL

ステップを説明するための画像。画像に関するその他のガイドライン:

  • 画像の URL は、クロールやインデックス登録に対応できる必要があります。
  • 画像はマークアップされたコンテンツを表している必要があります。
  • 画像の形式は、.jpg、.png、.gif のいずれかである必要があります。
name Text

ステップを要約した単語または短いフレーズ(たとえば「パイ生地を配置する」など)。説明のないテキスト(「ステップ 1: [テキスト]」など)やその他の形式のステップ番号(「1. [テキスト]」など)は使用しないでください。

url URL

ステップに直接リンクする URL(ある場合)。たとえば、アンカーリンク フラグメントなど。

video VideoObject または Clip

このステップを説明するための動画または動画クリップ。

VideoObject については、動画またはクリップの必須プロパティと推奨プロパティのリストを使用してください。

HowToDirectionHowToTip

HowToDirectionHowToTip を使用して指示やヒントを記述します。どちらも同じ必須プロパティと推奨プロパティを持ちます。

HowToDirectionHowToTip の定義の全文は、それぞれ schema.org/HowToDirectionschema.org/HowToTip で確認できます。

必須プロパティ
text Text

指示またはヒントのテキスト。

ItemList

Recipe プロパティに加え、以下のホスト固有のリスト用プロパティを追加します。ItemList は必須ではありませんが、レシピをホスト カルーセルで表示できるようにするには、以下のプロパティを追加する必要があります。ホスト カルーセルの詳細については、カルーセルをご覧ください。

ItemList の定義の全文は schema.org/ItemList で確認できます。

必須プロパティ
itemListElement

ListItem

1 つのアイテムページのアノテーション。

ListItem.position

Integer

リスト内でのアイテムページの順序位置。次に例を示します。


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

URL

アイテムページの正規 URL。すべてのアイテムに固有の URL が必要です。