Dữ liệu có cấu trúc Công thức nấu ăn (Recipe, HowTo, ItemList)
Giúp người dùng tìm thấy nội dung công thức nấu ăn của bạn bằng cách sử dụng dữ liệu có cấu trúc để cho Google biết về công thức nấu ăn đó. Khi bạn cung cấp thông tin như điểm xếp hạng của người đánh giá, thời gian nấu và chuẩn bị cũng như thông tin dinh dưỡng, Google có thể hiểu rõ hơn công thức nấu ăn của bạn và trình bày cho người dùng theo những cách thú vị. Công thức nấu ăn có thể xuất hiện trong kết quả của Google Tìm kiếm và Google Hình ảnh.
Dựa trên cách bạn đánh dấu nội dung, công thức nấu ăn của bạn có thể đủ điều kiện xuất hiện kèm theo các tính năng nâng cao sau đây:
| Các tính năng nâng cao cho công thức nấu ăn | |
|---|---|
Băng chuyền dành riêng cho công thức nấu ăn: Cho phép người dùng khám phá các trang trong thư viện công thức của bạn bằng cách thêm dữ liệu có cấu trúc ItemList. |
|
如何添加结构化数据
结构化数据是一种提供网页相关信息并对网页内容进行分类的标准化格式。如果您不熟悉结构化数据,可以详细了解结构化数据的运作方式。
下面概述了如何构建、测试和发布结构化数据。如需获得向网页添加结构化数据的分步指南,请查看结构化数据 Codelab。
- 添加必要属性。根据您使用的格式,了解在网页上的什么位置插入结构化数据。
- 遵循指南。
- 使用富媒体搜索结果测试验证您的代码,并修复所有严重错误。此外,您还可以考虑修正该工具中可能会标记的任何非严重问题,因为这些这样有助于提升结构化数据的质量(不过,要使内容能够显示为富媒体搜索结果,并非必须这么做)。
- 部署一些包含您的结构化数据的网页,然后使用网址检查工具测试 Google 看到的网页样貌。请确保您的网页可供 Google 访问,不会因 robots.txt 文件、
noindex标记或登录要求而被屏蔽。如果网页看起来没有问题,您可以请求 Google 重新抓取您的网址。 - 为了让 Google 随时了解日后发生的更改,我们建议您提交站点地图。Search Console Sitemap API 可以帮助您自动执行此操作。
Ví dụ
Dưới đây là một số ví dụ về công thức nấu ăn sử dụng mã JSON-LD.
Công thức nấu ăn trên Tìm kiếm
Dưới đây là ví dụ về một trang đủ điều kiện xuất hiện trên Tìm kiếm.
<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>Băng chuyền
Dưới đây là ví dụ về một trang tóm tắt công thức nấu ăn (một trang có danh sách các công thức nấu ăn) kèm theo dữ liệu có cấu trúc itemList. Nội dung này có thể đủ điều kiện hiển thị ở dạng lưới trong kết quả Tìm kiếm.
<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>Nguyên tắc
Bạn phải tuân theo nguyên tắc chung về dữ liệu có cấu trúc để mã đánh dấu của bạn đủ điều kiện xuất hiện trong kết quả Tìm kiếm.
Các nguyên tắc sau áp dụng cho dữ liệu có cấu trúc Recipe.
- Sử dụng dữ liệu có cấu trúc
Recipecho nội dung về việc chế biến một món ăn cụ thể. Ví dụ: "tẩy da chết cho mặt" hoặc "ý tưởng tiệc tùng" không phải là tên hợp lệ cho một món ăn. - Để công thức nấu ăn của bạn đủ điều kiện xuất hiện trong băng chuyền hoặc lưới, bạn phải tuân theo các nguyên tắc sau:
- Cung cấp dữ liệu có cấu trúc
ItemListđể tóm tắt các công thức nấu ăn cho danh sách. Bạn có thể cung cấp dữ liệu có cấu trúcItemListriêng hoặc cùng với dữ liệu có cấu trúc cho công thức nấu ăn. - Trang web của bạn phải có một trang tóm tắt liệt kê tất cả các công thức nấu ăn trong tuyển tập. Ví dụ: khi nhấp vào đường liên kết tóm tắt từ kết quả Tìm kiếm, người dùng sẽ được chuyển hướng đến đúng trang trên trang web của bạn, tại đó liệt kê các công thức nấu ăn liên quan đến nội dung tìm kiếm của người dùng.
- Cung cấp dữ liệu có cấu trúc
Định nghĩa các loại dữ liệu có cấu trúc
Bạn phải sử dụng các thuộc tính bắt buộc để nội dung của mình đủ điều kiện xuất hiện dưới dạng kết quả nhiều định dạng trong Google Tìm kiếm. Bạn cũng có thể thêm các thuộc tính mà chúng tôi khuyên dùng để bổ sung thông tin về nội dung nhằm mang lại trải nghiệm tốt hơn cho người dùng.
Recipe
Hãy đánh dấu nội dung công thức nấu ăn của bạn bằng các thuộc tính sau đây của loại dữ liệu schema.org Recipe. Bạn có thể xem định nghĩa đầy đủ về Recipe tại schema.org/Recipe.
Sau đây là các thuộc tính được Google hỗ trợ:
| Thuộc tính bắt buộc | |
|---|---|
image
|
Hình ảnh của món ăn đã hoàn thành. 其他的图片指南:
例如: "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ] |
name |
Tên của món ăn. |
| Thuộc tính nên có | |
|---|---|
aggregateRating |
Chú thích về điểm đánh giá trung bình được gán cho mục. Hãy tuân thủ các Nguyên tắc về đoạn trích thông tin đánh giá và danh sách các thuộc tính Nếu dữ liệu có cấu trúc |
author |
Tên của người hoặc tổ chức đã viết công thức nấu ăn này. Để giúp Google hiểu rõ về tác giả trên nhiều khía cạnh, hãy cân nhắc làm theo các phương pháp hay nhất về mã đánh dấu tác giả. |
cookTime |
Thời gian cần thiết để nấu món ăn trong thực tế, ở định dạng ISO 8601 (nếu có). Luôn sử dụng kết hợp với |
datePublished |
Ngày xuất bản công thức nấu ăn, ở định dạng ISO 8601 (nếu có). |
description |
Tóm tắt ngắn mô tả món ăn. |
keywords
|
Các cụm từ khác về công thức nấu ăn, chẳng hạn như mùa ("mùa hè"), ngày lễ ("Halloween") hoặc các từ mô tả khác ("nhanh", "dễ dàng", "chính hiệu"). Nguyên tắc bổ sung
|
nutrition.calories |
Lượng calo trong mỗi khẩu phần làm ra từ công thức này. Nếu xác định |
prepTime |
Thời gian chuẩn bị nguyên liệu và không gian chế biến món ăn, ở định dạng ISO 8601 (nếu có). Luôn sử dụng kết hợp với |
recipeCategory |
Loại món ăn của công thức. Ví dụ: "món ăn tối", "món chính" hoặc "món tráng miệng, món ăn nhẹ". |
recipeCuisine |
Vùng miền đặc trưng của công thức nấu ăn này. Ví dụ: "Pháp", Địa Trung Hải "hoặc" Mỹ ". |
recipeIngredient |
Nguyên liệu chế biến được sử dụng trong công thức. Ví dụ: "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" ] Nguyên tắc bổ sung:
|
recipeInstructions
|
Các bước chế biến món ăn. Có một số lựa chọn để thiết lập giá trị của
Nguyên tắc bổ sung
|
recipeYield |
Lượng công thức nấu ăn tạo ra theo công thức này (nếu có). Hãy sử dụng một con số duy nhất để chỉ định số lượng khẩu phần làm ra từ công thức. Nếu muốn chỉ định số phần ăn theo cách khác, bạn có thể thêm thông tin. Thuộc tính này là bắt buộc nếu bạn cung cấp thông tin dinh dưỡng trên mỗi khẩu phần (chẳng hạn như Ví dụ "recipeYield": [ "6", "24 cookies" ] |
totalTime |
Tổng thời gian cần thiết để chuẩn bị món ăn, ở định dạng ISO 8601 (nếu có). Sử dụng |
video
|
VideoObject
Một video mô tả các bước làm món ăn. Hãy tham khảo danh sách thuộc tính Video bắt buộc và nên có. |
HowToSection
Sử dụng HowToSection để nhóm các bước theo trình tự (hoặc các phần phụ) tạo nên một phần của hướng dẫn chế biến trong công thức. Hãy chỉ định HowToSection trực tiếp trong định nghĩa của thuộc tính recipeInstructions hoặc dưới dạng itemListElement của HowToSection khác.
Loại HowToSection xác định một phần của một công thức nấu ăn và chứa một hoặc nhiều bước. Đừng sử dụng HowToSection để xác định các công thức khác nhau cho cùng một món; thay vào đó, hãy sử dụng HowToSection dưới dạng một phần của một công thức duy nhất. Để liệt kê nhiều công thức cho một món, hãy sử dụng nhiều đối tượng Recipe. Ví dụ: đối với cách làm bánh táo, hãy liệt kê dưới dạng nhiều đối tượng Recipe thay vì đối tượng HowToSection.
Bạn có thể xem định nghĩa đầy đủ về HowToSection tại
schema.org/HowToSection.
| Thuộc tính bắt buộc | |
|---|---|
itemListElement
|
HowToStep
Danh sách các bước chi tiết cho phần và/hoặc các phần phụ. Ví dụ: một công thức làm pizza có thể gồm một phần về các bước làm đế bánh, một phần về cách sơ chế nhân và một phần về cách cho nhân lên đế và nướng. Ví dụ: { "@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
Tên của mục. |
HowToStep
Sử dụng HowToStep để nhóm một hoặc nhiều câu giải thích cách chế biến một phần trong công thức nếu thông tin này phù hợp với nội dung của bạn. Xác định thuộc tính text bằng một số câu hoặc xác định itemListElement bằng HowToDirection hoặc HowToTip cho mỗi câu.
Bạn nên đánh dấu các bước trong công thức của bạn bằng các thuộc tính sau của loại HowToStep. Hãy chỉ định HowToStep trực tiếp trong định nghĩa của thuộc tính recipeInstructions hoặc dưới dạng itemListElement của HowToSection.
Bạn có thể xem định nghĩa đầy đủ về HowToStep tại
schema.org/HowToStep.
| Thuộc tính bắt buộc | |
|---|---|
itemListElement
|
HowToDirection hoặc HowToTip
Danh sách các bước phụ chi tiết, bao gồm cả các chỉ dẫn hoặc mẹo. Không bắt buộc nếu bạn sử dụng |
text
|
Text
Toàn văn hướng dẫn của bước này. Không bắt buộc nếu bạn sử dụng
|
| Thuộc tính nên có | |
|---|---|
image
|
ImageObject hoặc URL
Một hình ảnh của bước. Nguyên tắc bổ sung về hình ảnh:
|
name
|
Text
Từ hoặc cụm từ ngắn tóm tắt nội dung của bước (ví dụ: "Làm vỏ bánh"). Đừng sử dụng văn bản không mang tính mô tả (ví dụ, "Bước 1: [văn bản]") hoặc số thứ tự của bước ở dạng khác (ví dụ: "1. [văn bản]"). |
url
|
URL
Một |
video
|
VideoObject hoặc Clip
Một video cho bước này hoặc một đoạn của video. Đối với |
HowToDirection và HowToTip
Sử dụng HowToDirection và HowToTip để mô tả các chỉ dẫn hoặc mẹo, nếu có.
Hai loại dữ liệu này có các thuộc tính bắt buộc và nên có giống nhau.
Bạn có thể xem định nghĩa đầy đủ về HowToDirection và HowToTip tại
schema.org/HowToDirection và
schema.org/HowToTip.
| Thuộc tính bắt buộc | |
|---|---|
text
|
Text
Toàn bộ văn bản chỉ dẫn hoặc mẹo. |
ItemList
Ngoài các thuộc tính Recipe, hãy thêm các thuộc tính sau cho danh sách theo loại nội dung. Mặc dù ItemList là không bắt buộc, bạn phải thêm các thuộc tính sau nếu muốn công thức nấu ăn của mình đủ điều kiện xuất hiện trong băng chuyền theo loại nội dung. Để biết thêm thông tin về băng chuyền theo loại nội dung, hãy xem Băng chuyền.
Bạn có thể xem định nghĩa đầy đủ về ItemList tại
schema.org/ItemList.
| Thuộc tính bắt buộc | |
|---|---|
itemListElement
|
Chú thích cho mỗi trang chứa một mục. |
ListItem.position
|
Số thứ tự của trang chứa mục đó trong danh sách. Ví dụ:
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
}, {
"@type": "ListItem",
"position": 2,
}
]
|
ListItem.url
|
URL chính tắc của trang chứa mục đó. Mỗi mục phải có một URL riêng biệt. |
使用 Search Console 监控富媒体搜索结果
Search Console 是一款工具,可帮助您监控网页在 Google 搜索结果中的显示效果。即使没有注册 Search Console,您的网页也可能会显示在 Google 搜索结果中,但注册 Search Console 能够帮助您了解 Google 如何查看您的网站并做出相应的改进。建议您在以下情况下查看 Search Console:
首次部署结构化数据后
等 Google 将网页编入索引后,请在相关的富媒体搜索结果状态报告中查看是否存在问题。 理想情况下,有效项目数量会增加,而无效项目数量不会增加。如果您发现结构化数据存在问题,请执行以下操作:
发布新模板或更新代码后
如果对网站进行重大更改,请监控结构化数据无效项目的增幅。- 如果您发现无效项目增多了,可能是因为您推出的某个新模板无法正常工作,或者您的网站以一种新的错误方式与现有模板交互。
- 如果您发现有效项目减少了(但无效项目的增加情况并不对应),可能是因为您的网页中未再嵌入结构化数据。请通过网址检查工具了解导致此问题的原因。
定期分析流量时
请使用效果报告分析您的 Google 搜索流量。数据将显示您的网页在 Google 搜索结果中显示为富媒体搜索结果的频率、用户点击该网页的频率以及网页在搜索结果中的平均排名。您还可以使用 Search Console API 自动提取这些结果。问题排查
如果您在实施或调试结构化数据时遇到问题,请查看下面列出的一些实用资源。
- 如果您使用了内容管理系统 (CMS) 或其他人负责管理您的网站,请向其寻求帮助。请务必向其转发列明问题细节的任何 Search Console 消息。
- Google 不能保证使用结构化数据的功能一定会显示在搜索结果中。如需查看导致 Google 无法将您的内容显示为富媒体搜索结果的各种常见原因,请参阅结构化数据常规指南。
- 您的结构化数据可能存在错误。请参阅结构化数据错误列表。
- 如果您的网页受到结构化数据手动操作的影响,其中的结构化数据将会被忽略(但该网页仍可能会出现在 Google 搜索结果中)。如需修正结构化数据问题,请使用“人工处置措施”报告。
- 再次查看相关指南,确认您的内容是否未遵循指南。问题可能是因为出现垃圾内容或使用垃圾标记导致的。不过,问题可能不是语法问题,因此富媒体搜索结果测试无法识别这些问题。
- 针对富媒体搜索结果缺失/富媒体搜索结果总数下降进行问题排查。
- 请等待一段时间,以便 Google 重新抓取您的网页并重新将其编入索引。请注意,网页发布后,Google 可能需要几天时间才会找到和抓取该网页。有关抓取和索引编制的常见问题,请参阅 Google 搜索抓取和索引编制常见问题解答。
- 在 Google 搜索中心论坛中发帖提问。