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.
![Hình minh hoạ cách thức kết quả nhiều định dạng về công thức có thể xuất hiện trên Google Tìm kiếm. Nó bao gồm 4 kết quả nhiều định dạng từ nhiều trang web, trong đó có thông tin chi tiết về thời gian chế biến, hình ảnh và thông tin đánh giá.](https://developers-dot-devsite-v2-prod.appspot.com/static/search/docs/images/recipe-rich-result-google-search.png?authuser=5&hl=vi)
![Hình minh hoạ cách công thức nấu ăn có thể xuất hiện trên Google Hình ảnh. Có 6 kết quả hình ảnh cho thấy các món ăn riêng biệt, trong đó có 3 kết quả chứa huy hiệu công thức nấu ăn cho người dùng biết đó là công thức nấu ăn](https://developers-dot-devsite-v2-prod.appspot.com/static/search/docs/images/recipes-in-google-images.png?authuser=5&hl=vi)
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 . |
![]() |
Cách thêm dữ liệu có cấu trúc
Dữ liệu có cấu trúc là một định dạng chuẩn để cung cấp thông tin về một trang và phân loại nội dung trên trang. Nếu mới làm quen với dữ liệu có cấu trúc, bạn có thể tìm hiểu thêm về cách thức hoạt động của dữ liệu có cấu trúc.
Sau đây là thông tin tổng quan về cách xây dựng, kiểm tra và phát hành dữ liệu có cấu trúc. Để xem hướng dẫn từng bước về cách thêm dữ liệu có cấu trúc vào một trang web, hãy tham khảo lớp học lập trình về dữ liệu có cấu trúc.
- Thêm các thuộc tính bắt buộc. Tùy theo định dạng bạn đang sử dụng, hãy tìm hiểu nơi chèn dữ liệu có cấu trúc trên trang.
- Tuân theo các nguyên tắc.
- Xác thực mã của bạn bằng công cụ Kiểm tra kết quả nhiều định dạng rồi sửa mọi lỗi nghiêm trọng. Bạn cũng nên cân nhắc việc khắc phục mọi vấn đề không nghiêm trọng có thể bị gắn cờ trong công cụ này, vì những vấn đề này có thể giúp cải thiện chất lượng của dữ liệu có cấu trúc của bạn (tuy nhiên, bạn không nhất thiết thực hiện việc này để nội dung đủ điều kiện xuất hiện dưới dạng kết quả nhiều định dạng).
- Triển khai một vài trang có chứa dữ liệu có cấu trúc và sử dụng Công cụ kiểm tra URL để kiểm tra xem Google nhìn thấy trang đó như thế nào. Hãy đảm bảo rằng Google có thể truy cập trang của bạn và bạn không chặn trang bằng tệp robots.txt, thẻ
noindex
hoặc yêu cầu đăng nhập. Nếu có vẻ như trang không gặp vấn đề nào, bạn có thể yêu cầu Google thu thập lại dữ liệu các URL của mình. - Để thông báo cho Google về các thay đổi sau này, bạn nên gửi một sơ đồ trang web. Bạn có thể tự động hoá quy trình này bằng 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
Recipe
cho 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úcItemList
riê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. Nguyên tắc bổ sung về hình ảnh:
Ví dụ: "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. |
Theo dõi kết quả nhiều định dạng bằng Search Console
Search Console là công cụ giúp bạn theo dõi hiệu quả hoạt động của các trang web trong Google Tìm kiếm. Bạn không cần đăng ký sử dụng Search Console để đưa trang web vào Google Tìm kiếm, nhưng việc làm vậy có thể giúp bạn hiểu và cải thiện cách Google nhìn thấy trang web của bạn. Bạn nên kiểm tra Search Console trong những trường hợp sau:
- Sau lần đầu triển khai dữ liệu có cấu trúc
- Sau khi phát hành mẫu mới hoặc cập nhật mã của bạn
- Phân tích lưu lượng truy cập định kỳ
Sau lần đầu triển khai dữ liệu có cấu trúc
Sau khi Google lập chỉ mục các trang của bạn, hãy tìm vấn đề bằng cách sử dụng Báo cáo trạng thái kết quả nhiều định dạng có liên quan. Lý tưởng nhất là số mục hợp lệ tăng lên và số mục không hợp lệ không tăng. Nếu bạn tìm thấy vấn đề trong dữ liệu có cấu trúc:
- Sửa các mục không hợp lệ.
- Kiểm tra URL đang hoạt động để xem vấn đề còn tồn tại không.
- Yêu cầu xác thực bằng cách sử dụng báo cáo trạng thái.
Sau khi phát hành các mẫu mới hoặc cập nhật mã
Khi bạn thực hiện những thay đổi đáng kể trên trang web của mình, hãy theo dõi xem số lượng mục dữ liệu có cấu trúc không hợp lệ có tăng lên hay không.- Nếu bạn thấy số mục không hợp lệ gia tăng, thì có lẽ bạn đã triển khai một mẫu mới không hoạt động được hoặc trang web của bạn tương tác với mẫu hiện có theo cách mới và không hợp lệ.
- Nếu bạn thấy số mục hợp lệ giảm (nhưng số mục không hợp lệ không tăng), thì có thể bạn không còn nhúng dữ liệu có cấu trúc trên các trang của mình nữa. Hãy sử dụng Công cụ kiểm tra URL để tìm hiểu nguyên nhân gây ra vấn đề.
Phân tích lưu lượng truy cập định kỳ
Phân tích lưu lượng truy cập bạn nhận được qua Google Tìm kiếm bằng cách sử dụng Báo cáo hiệu suất. Dữ liệu báo cáo sẽ cho bạn biết bạn tần suất trang web xuất hiện dưới dạng kết quả nhiều định dạng trong Tìm kiếm, tần suất người dùng nhấp vào trang và vị trí trung bình của trang trong kết quả tìm kiếm. Bạn cũng có thể tự động lấy các kết quả này bằng Search Console API.Khắc phục sự cố
Nếu gặp sự cố khi triển khai hoặc gỡ lỗi dữ liệu có cấu trúc, thì bạn có thể tham khảo một số tài nguyên trợ giúp sau đây.
- Nếu bạn đang sử dụng một hệ thống quản lý nội dung (CMS) hoặc có ai đó đang quản lý trang web của bạn, hãy đề nghị họ trợ giúp. Đừng quên chuyển tiếp mọi thông báo trong Search Console để nêu rõ vấn đề cho họ.
- Google không đảm bảo rằng các tính năng sử dụng dữ liệu có cấu trúc sẽ xuất hiện trong kết quả tìm kiếm. Để xem danh sách các lý do phổ biến khiến Google không thể hiển thị nội dung của bạn trong kết quả nhiều định dạng, hãy xem Nguyên tắc chung về dữ liệu có cấu trúc.
- Có thể có lỗi trong dữ liệu có cấu trúc của bạn. Xem danh sách các lỗi liên quan đến dữ liệu có cấu trúc.
- Nếu bị áp dụng biện pháp thủ công, thì dữ liệu có cấu trúc trên trang sẽ bị bỏ qua (mặc dù trang vẫn có thể xuất hiện trong các kết quả trên Google Tìm kiếm). Để khắc phục các vấn đề về dữ liệu có cấu trúc, hãy sử dụng báo cáo Biện pháp thủ công.
- Xem lại các nguyên tắc để xác định xem nội dung của bạn có tuân thủ nguyên tắc hay không. Nguyên nhân gây lỗi có thể là do bạn sử dụng nội dung không hợp lệ hoặc thẻ đánh dấu không hợp lệ. Tuy nhiên, vấn đề có thể không phải là lỗi cú pháp và do đó, Công cụ kiểm tra kết quả nhiều định dạng sẽ không thể xác định được những vấn đề như vậy.
- Khắc phục sự cố thiếu kết quả nhiều định dạng/giảm tổng số kết quả nhiều định dạng
- Hãy dành một chút thời gian để Google thu thập dữ liệu và lập chỉ mục lại. Xin lưu ý rằng có thể mất nhiều ngày sau khi bạn xuất bản một trang thì Google mới tìm được và thu thập dữ liệu trên trang đó. Đối với các câu hỏi chung về hoạt động thu thập dữ liệu và lập chỉ mục, hãy tham khảo nội dung Câu hỏi thường gặp về việc thu thập dữ liệu và lập chỉ mục trên Google Tìm kiếm.
- Đăng câu hỏi trong diễn đàn của Trung tâm Google Tìm kiếm.