Структуровані дані для рецептів (Recipe, How, Item)

Щоб ваші рецепти було легше знайти, надайте інформацію про відгуки, час приготування та калорійність, використовуючи структуровані дані. Google буде розпізнавати їх і виділяти ваші рецепти в результатах пошуку. Рецепти можуть відображатися в результатах пошуку Google і Google Картинок.

рецепти структуровані дані

Залежно від того, яку розмітку ви використовуєте, ми можемо показувати ваші рецепти в результатах пошуку по-різному:

Як рецепти можуть виглядати в результатах пошуку
Карусель рецептів з вашого сайту. Якщо додати структуровані дані ItemList, користувачам буде зручніше переглядати ваші рецепти, оскільки вони будуть представлені у вигляді галереї.рецепти структуровані дані

Структуровані дані — стандартизований формат, який дозволяє надавати пошуковим системам інформацію про сторінку та класифікувати її вміст. Детальніше про принципи роботи структурованих даних…

Нижче в загальних рисах описано, як створити, перевірити та додати на сайт структуровані дані.

  1. Додайте обов’язкові властивості. Дізнайтеся, в яких частинах сторінки потрібно розміщувати структуровані дані обраного вами формату.
  2. Дотримуйтесь рекомендацій.
  3. Перевірте свій код за допомогою інструменту перевірки розширених результатів. Якщо будуть виявлені критичні помилки, усуньте їх. Ми також рекомендуємо усунути некритичні помилки, зазначені в інструменті. Це може призвести до підвищення якості структурованих даних, хоча сторінки будуть придатні для створення розширених результатів і без цього.
  4. Опублікуйте сторінку й за допомогою інструменту перевірки URL з’ясуйте, як вона виглядає для робота Googlebot. Переконайтеся, що доступ Google до сторінки не заблоковано файлом robots.txt або метатегом noindex і авторизація на ній не потрібна. Якщо все в порядку, то запросіть повторне сканування ваших URL.
  5. Надішліть нам файл Sitemap, щоб інформувати нас про зміни на сайті. Надсилання такого файлу можна автоматизувати за допомогою Search Console Sitemap API.

У цьому розділі зібрано кілька прикладів коду JSON-LD для рецептів.

Нижче наведено приклад сторінки, яка допущена до показу в Пошуку Google.

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

Нижче наведено приклад зведеної сторінки рецептів (сторінки зі списком рецептів) зі структурованими даними типу itemList. Цей контент може відображатися у вигляді сітки в результатах пошуку Google.

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

Щоб ваша розмітка була допущена до відображення в результатах пошуку, дотримуйтесь загальних рекомендацій щодо використання структурованих даних.

Рекомендації щодо структурованих даних Recipe:

  • Структуровані дані Recipe підходять для контенту, де розповідається про те, як приготувати конкретну страву. Їх не можна використовувати для інших матеріалів, наприклад порад щодо організації свята або з приготування скрабу для обличчя.
  • Щоб рецепти з’являлися в каруселі або сітці, дотримуйтесь наступних правил:
    • Додайте структуровані дані ItemList, щоб об’єднати рецепти в список. Структуровані дані ItemList можна додавати як окремо, так і разом зі структурованими даними для рецептів.
    • На вашому сайті повинна бути сторінка, де перераховані всі рецепти, що входять до збірки. Коли користувач натискає на загальне посилання в результатах пошуку, повинен бути виконаний перехід на сторінку зі списком рецептів, які відповідають його запиту.

Щоб ваш контент міг з’являтися в розширених результатах пошуку, необхідно встановити всі обов’язкові властивості. Ви також можете додати рекомендовані властивості, щоб користувачам було зручніше вивчати інформацію.

У розмітці schema.org Recipe для рецепта потрібно використовувати перелічені нижче властивості. Повний опис типу Recipe наведено на сторінці schema.org/Recipe. Google підтримує наступні властивості:

Обов’язкові властивості
image

URL або ImageObject

Зображення готової страви.

Додаткові рекомендації для зображень:

  • URL-адреси зображень повинні бути доступні для сканування та індексації. Перевірити, чи має пошуковий робот Google доступ до URL вашого контенту, можна за допомогою інструменту перевірки URL.
  • Зображення повинні відповідати розміченому контенту.
  • Дозволені лише графічні файли форматів, сумісних з Google Pictures.
  • Надайте кілька зображень у високій роздільній здатності (не менше 50 000 пікселів за добутком ширини та висоти) з наступним співвідношенням сторін: 16 × 9, 4 × 3 або 1 × 1.

Приклад:

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

Якщо в структурованих даних Recipe міститься тільки один відгук, як ім’я автора має бути вказано справжнє ім’я людини або назву організації. Наприклад, ім’я “Знижка 50% на інгредієнти” є неприпустимим.

author

Person або Organization

Автор рецепта (ім’я людини або назва організації). Щоб роботам Google було легше знаходити інформацію про автора серед коду, що відноситься до різних функцій, дотримуйтесь рекомендацій щодо розмітки, що відноситься до автора.

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

Кількість калорій у кожній порції страви, приготовленої за цим рецептом. Якщо задано властивість 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

HowToStep, HowToSection або Text

Етапи приготування страви.

Вказувати значення властивості recipeInstructions можна кількома способами. Ми рекомендуємо робити це за допомогою елементів HowToStep. Якщо в рецепті кілька розділів, то елементи HowToStep можна згрупувати за допомогою властивості 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.
  • Одиночна або повторювана властивість тексту — текстовий блок, який включає один або кілька етапів. Всі етапи розглядаються як такі, що належать до одного розділу. Якщо у властивості вказано кілька значень, всі вони об’єднуються в один текстовий блок. Потім Google намагається автоматично розділити цей блок на окремі етапи. Крім того, Google знаходить і видаляє назви розділів, номери етапів, ключові слова та інші дані, які можуть некоректно відображатися в тексті рецепта. Щоб структуровані дані були оброблені точно і однозначно, рекомендуємо замість текстових описів додавати властивості 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

Кількість підсумкового продукту (якщо є). Уточніть загальну кількість порцій, які будуть приготовані за цим рецептом. Якщо ви хочете вказати вихід готової страви і в інших одиницях (наприклад, не в порціях, а в штуках), то можете додати кілька елементів цього типу. Це обов’язкова властивість, якщо ви хочете вказати енергетичну цінність порцій (наприклад, за допомогою властивості nutrition.calories).

Приклад

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

Duration

Загальний час приготування страви у форматі ISO 8601 (якщо є).

Використовуйте властивість totalTime або ж комбінацію cookTime і prepTime.

video

VideoObject

Відео, що ілюструє етапи приготування страви. Ознайомтеся зі списком обов’язкових і рекомендованих властивостей для відео.

Властивість HowToSection дозволяє групувати кроки (або підрозділи), що складають частину дій за рецептом. Задайте HowToSection безпосередньо як опис властивості recipeInstructions або як елемент itemListElement іншої властивості HowToSection.

Тип HowToSection визначає розділ одного рецепта й може містити один або кілька кроків. Не використовуйте HowToSection для різних рецептів приготування однієї страви. Застосовуйте HowToSection тільки як частину одного рецепта. Якщо вам потрібно навести кілька рецептів однієї й тієї самої страви, використовуйте кілька об’єктів Recipe. Наприклад, різні способи випікання яблучного пирога слід розмічати за допомогою кількох об’єктів Recipe, а не об’єктів HowToSection.

Повний опис типу HowToSection наведено на сторінці schema.org/HowToSection.

Обов’язкові властивості
itemListElement

HowToStep

Список етапів приготування, а також підрозділів (якщо вони є). Наприклад, в описі приготування піци може бути три розділи: про тісто, начинку і випічку.

Приклад:

{
  "@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 дозволяє групувати речення, у яких описується, як виконати частину дій за рецептом, якщо це доречно для контенту. Вкажіть такі речення у властивості text або вкажіть у властивості itemListElement варіант HowToDirection або HowToTip для кожного такого речення.

У розмітці HowToStep для кроків рецепта потрібно використовувати перелічені нижче властивості. Задайте HowToStep безпосередньо як визначення властивості recipeInstructions або як елемент itemListElement властивості HowToSection.

Повний опис типу 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, вивчіть список обов’язкових і рекомендованих властивостей для відео або фрагментів.

Щоб додати описи інструкцій або порад, застосовуйте типи HowToDirection і HowToTip (якщо застосовно). У них використовуються однакові обов’язкові та рекомендовані властивості.

Повний опис типів HowToDirection і HowToTip наведено на сторінках schema.org/HowToDirection і schema.org/HowToTip.

Обов’язкові властивості
text

Text

Текст опису або поради.

Крім властивостей рецепта, для тематичних списків потрібні й інші перераховані нижче властивості. Вказувати ItemList не обов’язково, але вам потрібно додати наступні властивості, інакше Google не зможе скласти карусель рецептів з вашого сайту. Детальні відомості про карусель результатів з сайту представлені в розділі Карусель.

Повний опис типу ItemList наведено на сторінці schema.org/ItemList.

Обов’язкові властивості
itemListElement

ListItem

Опис сторінки окремого елемента списку.

ListItem.position

Integer

Порядковий номер сторінки елемента у списку. Приклад:

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

URL

Канонічний URL сторінки з інформацією про елемент. Кожен елемент повинен мати унікальний URL.

За допомогою Search Console ви можете збирати дані про ефективність сторінок вашого ресурсу в Пошуку Google. Вам не обов’язково реєструватися в цьому сервісі, щоб ваші сторінки потрапили в результати пошуку. Однак це дозволить дізнатися, як роботи Google сприймають сайт, і спростити їм його обробку. Рекомендуємо перевіряти інформацію в Search Console в наступних випадках:

  1. Після першого розміщення структурованих даних
  2. Після випуску нових шаблонів або оновлення коду
  3. При регулярному аналізі трафіку

Коли ваші сторінки будуть проіндексовані, перевірте їх на наявність помилок за допомогою звіту про стан розширених результатів. Бажано, щоб кількість об’єктів з правильною розміткою зросла, а кількість об’єктів з помилками — ні. Якщо в структурованих даних будуть виявлені помилки, вживайте наступних заходів:

  1. Усуньте проблеми в об’єктах.
  2. Перевірте виправлену сторінку, щоб дізнатися, чи виявляються помилки.
  3. Запитайте перевірку ресурсу, використовуючи звіт про стан розширених результатів.

Якщо ви внесли значні зміни на сайт, перевірте, чи не збільшилася кількість недійсних об’єктів, пов’язаних зі структурованими даними.

  • Збільшилася кількість недійсних об’єктів? Можливо, ви створили шаблон, з яким щось не так, або наявний шаблон використовується некоректно.
  • Кількість дійсних елементів зменшилася, але кількість недійсних не збільшилася? Можливо, на ваших сторінках не розміщені структуровані дані. З’ясувати, з чим пов’язані помилки, можна за допомогою інструменту перевірки URL.

Аналізувати трафік сайту з Google Пошуку можна за допомогою звіту про ефективність. З цього звіту ви дізнаєтеся, як часто сторінка з’являється в Пошуку у вигляді розширеного результату, з якою регулярністю користувачі натискають на неї і яка її середня позиція в результатах пошуку. Цю інформацію також можна автоматично отримати за допомогою Search Console API.

Якщо у вас виникли труднощі з додаванням або налагодженням структурованих даних, вам допоможуть ресурси та інформація, доступні за наведеними нижче посиланнями.