HowTo (HowTo
) 结构化数据
请使用 HowTo
结构化数据明确告诉 Google 您的内容是 HowTo 内容。HowTo 内容旨在引导用户通过一系列步骤成功完成某项任务,HowTo 中可以包含视频、图片和文字。例如,“如何打领带”或“如何铺设厨房防溅墙瓷砖”。如果用户必须按顺序阅读 HowTo 中的每个步骤,您最好添加 HowTo
结构化数据,使您的内容更有吸引力。HowTo
结构化数据非常适用于重点内容是 HowTo 的网页。
如果您正确标记了 HowTo 网页,则其可能会在 Google 搜索中显示为富媒体搜索结果,并且系统可能会为其生成适用于 Google 助理的 Action,而这有助于您的网站触及合适的用户。
如何添加结构化数据
结构化数据是一种提供网页相关信息并对网页内容进行分类的标准化格式。如果您不熟悉结构化数据,可以详细了解结构化数据的运作方式。
下面概述了如何构建、测试和发布结构化数据。如需获得向网页添加结构化数据的分步指南,请查看结构化数据 Codelab。
- 添加必要属性。根据您使用的格式,了解在网页上的什么位置插入结构化数据。
- 遵循指南。
- 使用富媒体搜索结果测试验证您的代码,并修复所有严重错误。此外,您还可以考虑修正该工具中可能会标记的任何非严重问题,因为这些这样有助于提升结构化数据的质量(不过,要使内容能够显示为富媒体搜索结果,并非必须这么做)。
- 部署一些包含您的结构化数据的网页,然后使用网址检查工具测试 Google 看到的网页样貌。请确保您的网页可供 Google 访问,不会因 robots.txt 文件、
noindex
标记或登录要求而被屏蔽。如果网页看起来没有问题,您可以请求 Google 重新抓取您的网址。 - 为了让 Google 随时了解日后发生的更改,我们建议您提交站点地图。Search Console Sitemap API 可以帮助您自动执行此操作。
功能可用性
目前,HowTo 富媒体搜索结果适用于 Google 搜索支持的所有语言以及国家/地区。此功能既支持移动设备,也支持桌面设备。
示例
下面这些示例展示了您的内容在 HowTo 富媒体搜索结果中可能会如何呈现。如果您的 HowTo 中包含一张 HowTo 操作完成后的图片以及每个步骤的图片,则您的内容可能会以更加直观的方式进行呈现。请务必添加尽可能多的必需属性和建议属性,以便您的 HowTo 能够以最有效的方式显示在 Google 搜索结果中。
标准 HowTo 富媒体搜索结果

下面是一个使用 JSON-LD 的文本型 HowTo 网页示例。此示例仅包含 1 张代表 HowTo 最终状态的图片。在此结果中,用户可以看到某些步骤的内容预览。
<html> <head> <title>How to tile a kitchen backsplash</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "HowTo", "name": "How to tile a kitchen backsplash", "image": { "@type": "ImageObject", "url": "https://example.com/photos/1x1/photo.jpg", "height": "406", "width": "305" }, "estimatedCost": { "@type": "MonetaryAmount", "currency": "USD", "value": "100" }, "supply": [ { "@type": "HowToSupply", "name": "tiles" }, { "@type": "HowToSupply", "name": "thin-set mortar" }, { "@type": "HowToSupply", "name": "tile grout" }, { "@type": "HowToSupply", "name": "grout sealer" } ], "tool": [ { "@type": "HowToTool", "name": "notched trowel" }, { "@type": "HowToTool", "name": "bucket" },{ "@type": "HowToTool", "name": "large sponge" } ], "step": [ { "@type": "HowToStep", "url": "https://example.com/kitchen#step1", "name": "Prepare the surfaces", "itemListElement": [{ "@type": "HowToDirection", "text": "Turn off the power to the kitchen and then remove everything that is on the wall, such as outlet covers, switchplates, and any other item in the area that is to be tiled." }, { "@type": "HowToDirection", "text": "Then clean the surface thoroughly to remove any grease or other debris and tape off the area." }], "image": { "@type": "ImageObject", "url": "https://example.com/photos/1x1/photo-step1.jpg", "height": "406", "width": "305" } }, { "@type": "HowToStep", "name": "Plan your layout", "url": "https://example.com/kitchen#step2", "itemListElement": [{ "@type": "HowToTip", "text": "The creases created up until this point will be guiding lines for creating the four walls of your planter box." }, { "@type": "HowToDirection", "text": "Lift one side at a 90-degree angle, and fold it in place so that the point on the paper matches the other two points already in the center." }, { "@type": "HowToDirection", "text": "Repeat on the other side." }], "image": { "@type": "ImageObject", "url": "https://example.com/photos/1x1/photo-step2.jpg", "height": "406", "width": "305" } }, { "@type": "HowToStep", "name": "Prepare your and apply mortar (or choose adhesive tile)", "url": "https://example.com/kitchen#step3", "itemListElement": [{ "@type": "HowToDirection", "text": "Follow the instructions on your thin-set mortar to determine the right amount of water to fill in your bucket. Once done, add the powder gradually and make sure it is thoroughly mixed." }, { "@type": "HowToDirection", "text": "Once mixed, let it stand for a few minutes before mixing it again. This time do not add more water. Double check your thin-set mortar instructions to make sure the consistency is right." }, { "@type": "HowToDirection", "text": "Spread the mortar on a small section of the wall with a trowel." }, { "@type": "HowToTip", "text": "Thinset and other adhesives set quickly so make sure to work in a small area." }, { "@type": "HowToDirection", "text": "Once it's applied, comb over it with a notched trowel." }], "image": { "@type": "ImageObject", "url": "https://example.com/photos/1x1/photo-step3.jpg", "height": "406", "width": "305" } }, { "@type": "HowToStep", "name": "Add your tile to the wall", "url": "https://example.com/kitchen#step4", "itemListElement": [{ "@type": "HowToDirection", "text": "Place the tile sheets along the wall, making sure to add spacers so the tiles remain lined up." }, { "@type": "HowToDirection", "text": "Press the first piece of tile into the wall with a little twist, leaving a small (usually one-eight inch) gap at the countertop to account for expansion. use a rubber float to press the tile and ensure it sets in the adhesive." }, { "@type": "HowToDirection", "text": "Repeat the mortar and tiling until your wall is completely tiled, Working in small sections." }], "image": { "@type": "ImageObject", "url": "https://example.com/photos/1x1/photo-step4.jpg", "height": "406", "width": "305" } }, { "@type": "HowToStep", "name": "Apply the grout", "url": "https://example.com/kitchen#step5", "itemListElement": [{ "@type": "HowToDirection", "text": "Allow the thin-set mortar to set. This usually takes about 12 hours. Don't mix the grout before the mortar is set, because you don't want the grout to dry out!" }, { "@type": "HowToDirection", "text": "To apply, cover the area thoroughly with grout and make sure you fill all the joints by spreading it across the tiles vertically, horizontally, and diagonally. Then fill any remaining voids with grout." }, { "@type": "HowToDirection", "text": "Then, with a moist sponge, sponge away the excess grout and then wipe clean with a towel. For easier maintenance in the future, think about applying a grout sealer." }], "image": { "@type": "ImageObject", "url": "https://example.com/photos/1x1/photo-step5.jpg", "height": "406", "width": "305" } } ], "totalTime": "P2D" } </script> </head> <body> </body> </html>
下面是一个使用微数据的文本型 HowTo 网页示例。此示例仅包含 1 张代表 HowTo 最终状态的图片。在此结果中,用户可以看到某些步骤的内容预览。
<html> <head> <title>How to tile a kitchen backsplash</title> </head> <body> <div itemscope itemtype="https://schema.org/HowTo"> <b><span itemprop="name">How to tile a kitchen backsplash</span></b> <div>About <span itemprop="estimatedCost" itemscope itemtype="https://schema.org/MonetaryAmount"> <meta itemprop="currency" content="USD"/> <meta itemprop="value" content="100"/> $100 </span> </div> <div>About <span itemprop="totalTime" content="P2D">2 days</span></div> <div>Necessary Items:</div> <div itemprop="supply" itemscope itemtype="https://schema.org/HowToSupply"> <a itemprop="url" href="https://example.com/supplies?id=1"> <span itemprop="name">tiles</span> </a> <img alt="Blue kitchen tiles with scalloped edges" itemprop="image" src="https://example.com/photos/1x1/photo.jpg"/> </div> <div itemprop="supply" itemscope itemtype="https://schema.org/HowToSupply"> <a itemprop="url" href="https://example.com/supplies?id=2"> <span itemprop="name">thin-set mortar</span> </a> <img alt="Thin-set mortar" itemprop="image" src="https://example.com/photos/1x1/photo.jpg"/> </div> <div itemprop="supply" itemscope itemtype="https://schema.org/HowToSupply"> <a itemprop="url" href="https://example.com/supplies?id=3"> <span itemprop="name">tile grout</span> </a> <img alt="White tile grout" itemprop="image" src="https://example.com/photos/1x1/photo.jpg"/> </div> <div itemprop="supply" itemscope itemtype="https://schema.org/HowToSupply"> <a itemprop="url" href="https://example.com/supplies?id=4"> <span itemprop="name">grout sealer</span> </a> <img alt="Grout sealer" itemprop="image" src="https://example.com/photos/1x1/photo.jpg"/> </div> <div itemprop="tool" itemscope itemtype="https://schema.org/HowToTool"> <a itemprop="url" href="https://example.com/supplies?id=5"> <span itemprop="name">notched trowel</span> </a> <img alt="Notched trowel with a red handle" itemprop="image" src="https://example.com/photos/1x1/photo.jpg"/> </div> <div itemprop="tool" itemscope itemtype="https://schema.org/HowToTool"> <a itemprop="url" href="https://example.com/tools?id=6"> <span itemprop="name">bucket</span> </a> <img alt="Medium-sized blue bucket" itemprop="image" src="https://example.com/photos/1x1/photo.jpg"/> </div> <div itemprop="tool" itemscope itemtype="https://schema.org/HowToTool"> <a itemprop="url" href="https://example.com/tools?id=7"> <span itemprop="name">large sponge</span> </a> <img alt="Large yellow sponge" itemprop="image" src="https://example.com/photos/1x1/photo.jpg"/> </div> <div itemprop="step" itemscope itemtype="https://schema.org/HowToStep"> <link itemprop="url" href="https://example.com/example#step1" /> <div itemprop="name">Preparation</div> <img itemprop="image" alt="image showing preparation" src="https://example.com/photos/1x1/photo-step1.jpg"/> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/HowToDirection"> <div itemprop="text">Turn off the power to the kitchen and then remove everything that is on the wall, such as outlet covers, switchplates, and any other item in the area that is to be tiled. Then clean the surface thoroughly to remove any grease or other debris and tape off the area. </div> </div> </div> <div itemprop="step" itemscope itemtype="https://schema.org/HowToStep"> <link itemprop="url" href="https://example.com/example#step2" /> <div itemprop="name">Plan your Layout</div> <img itemprop="image" alt="image showing layout planning" src="https://example.com/photos/1x1/photo-step2.jpg"/> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/HowToDirection"> <div itemprop="text">Lay out your tile horizontally below the wall where you're going to place it. This makes it easy to ensure that your pattern will fit in the space provided. Also it helps you double check that you have enough tile and know exactly where each piece will go. </div> </div> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/HowToDirection"> <div itemprop="text">Spread the mortar on a small section of the wall with a trowel. Thinset and other adhesives set quickly so make sure to work in a small area. Once it's applied, comb over it with a notched trowel. </div> </div> </div> <div itemprop="step" itemscope itemtype="https://schema.org/HowToStep"> <link itemprop="url" href="https://example.com/example#step3" /> <div itemprop="name">Add your tile to the wall</div> <img itemprop="image" alt="image grout application" src="https://example.com/photos/1x1/photo-step3.jpg"/> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/HowToDirection"> <div itemprop="text">Place the tile sheets along the wall, making sure to add spacers so the tiles remain lined up. Press the first piece of tile into the wall with a little twist, leaving a small (usually one-eight inch) gap at the countertop to account for expansion. use a rubber float to press the tile and ensure it sets in the adhesive. Repeat the mortar and tiling until your wall is completely tiled, working in small sections. </div> </div> </div> <div itemprop="step" itemscope itemtype="https://schema.org/HowToStep"> <link itemprop="url" href="https://example.com/example#step4" /> <div itemprop="name">Apply the grout</div> <img itemprop="image" alt="image grout application" src="https://example.com/photos/1x1/photo-step4.jpg"/> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/HowToDirection"> <div itemprop="text">Allow the thin-set mortar to set. This usually takes about 12 hours. Don't mix the grout before the mortar is set, because you don't want the grout to dry out! To apply, cover the area thoroughly with grout and make sure you fill all the joints by spreading it across the tiles vertically, horizontally, and diagonally. Then fill any remaining voids with grout. </div> </div> <div itemprop="itemListElement" itemscope itemtype="https://schema.org/HowToDirection"> <div itemprop="text">Then, with a moist sponge, sponge away the excess grout and then wipe clean with a towel. For easier maintenance in the future, think about applying a grout sealer. </div> </div> </div> </div> </body> </html>
附有各步骤图片的 HowTo 富媒体搜索结果

下面是一个使用 JSON-LD 且附有各步骤图片的 HowTo 网页示例。网页中包含每个步骤的图片时,用户可以通过图片轮播界面查看预览。
<html> <head> <title>How to tie a tie</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "HowTo", "image": { "@type": "ImageObject", "url": "https://example.com/1x1/photo.jpg" }, "name": "How to tie a tie", "totalTime": "PT2M", "video": { "@type": "VideoObject", "name": "Tie a Tie", "description": "How to tie a four-in-hand knot.", "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": "2019-01-05T08:00:00+08:00", "duration": "P1MT10S" }, "supply": [ { "@type": "HowToSupply", "name": "A tie" }, { "@type": "HowToSupply", "name": "A collared shirt" } ], "tool": [ { "@type": "HowToTool", "name": "A mirror" } ], "step":[ { "@type": "HowToStep", "name": "Preparations", "text": "Button your shirt how you'd like to wear it, then drape the tie around your neck. Make the thick end about 1/3rd longer than the short end. For formal button down shirts, it usually works best with the small end of the tie between 4th and 5th button.", "image": "https://example.com/1x1/step1.jpg", "url": "https://example.com/tie#step1" }, { "@type": "HowToStep", "name": "Crossing once", "text": "Cross the long end over the short end. This will form the basis for your knot.", "image": "https://example.com/1x1/step2.jpg", "url": "https://example.com/tie#step2" }, { "@type": "HowToStep", "name": "Second crossing", "text": "Bring the long end back under the short end, then throw it back over the top of the short end in the other direction.", "image": "https://example.com/1x1/step3.jpg", "url": "https://example.com/tie#step3" }, { "@type": "HowToStep", "name": "Loop in", "text": "Now pull the long end through the loop near your neck, forming another loop near your neck.", "image": "https://example.com/1x1/step4.jpg", "url": "https://example.com/tie#step4" }, { "@type": "HowToStep", "name": "Pull and tighten", "text": "Pull the long end through that new loop and tighten to fit!", "image": "https://example.com/1x1/step5.jpg", "url": "https://example.com/tie#step5" } ] } </script> </head> <body> </body> </html>
下面是一个使用微数据且附有各步骤图片的 HowTo 网页示例。网页中包含每个步骤的图片时,用户可以通过图片轮播界面查看预览。
<html> <head> <title>How to tie a tie</title> </head> <body> <div itemscope itemtype="https://schema.org/HowTo"> <b><span itemprop="name">How to tie a tie</span></b> <div>About <span itemprop="totalTime" content="PT2M">2 minutes</span></div> <div itemprop="video" itemscope itemtype="https://schema.org/VideoObject"> <meta itemprop="name" content="Tie a Tie" /> <meta itemprop="description" content="How to tie a four-in-hand knot." /> <link itemprop="thumbnailUrl" content="https://example.com/photos/photo.jpg" /> <link itemprop="contentUrl" content="https://www.example.com/videos/123_600x400.mp4" /> <link itemprop="embedUrl" content="https://www.example.com/videoplayer?id=123" /> <meta itemprop="duration" content="P1MT10S" /> <meta itemprop="uploadDate" content="2019-01-05T08:00:00+08:00" /> <video>...</video> </div> <div>Necessary Items:</div> <div itemprop="supply" itemtype="https://schema.org/HowToSupply">A tie</div> <div itemprop="supply" itemtype="https://schema.org/HowToSupply">A collared Shirt</div> <div itemprop="tool" itemtype="https://schema.org/HowToTool">A mirror</div> <div> <div itemprop="step" itemscope itemtype="https://schema.org/HowToStep"> <div itemprop="name">Preparations</div> <div itemprop="text">Button your shirt how you'd like to wear it, then drape the tie around your neck. Make the thick end about 1/3rd longer than the short end. For formal button down shirts, it usually works best with the small end of the tie between 4th and 5th button.</div> <div itemprop="image">https://example.com/1x1/photo1.jpg</div> <meta itemprop="url" content="https://example.com/tie#step1" /> </div> <div itemprop="step" itemscope itemtype="https://schema.org/HowToStep"> <div itemprop="name">Crossing once</div> <div itemprop="text">Cross the long end over the short end. This will form the basis for your knot.</div> <div itemprop="image">https://example.com/1x1/photo2.jpg</div> <meta itemprop="url" content="https://example.com/tie#step2" /> </div> <div itemprop="step" itemscope itemtype="https://schema.org/HowToStep"> <div itemprop="name">Second crossing</div> <div itemprop="text">Bring the long end back under the short end, then throw it back over the top of the short end in the other direction.</div> <div itemprop="image">https://example.com/1x1/photo3.jpg</div> <meta itemprop="url" content="https://example.com/tie#step3" /> </div> <div itemprop="step" itemscope itemtype="https://schema.org/HowToStep"> <div itemprop="name">Loop in</div> <div itemprop="text">Now pull the long end through the loop near your neck, forming another loop near your neck.</div> <div itemprop="image">https://example.com/1x1/photo4.jpg</div> <meta itemprop="url" content="https://example.com/tie#step4" /> </div> <div itemprop="step" itemscope itemtype="https://schema.org/HowToStep"> <div itemprop="name">Pull and tighten</div> <div itemprop="text">Pull the long end through that new loop and tighten to fit!</div> <div itemprop="image">https://example.com/1x1/photo5.jpg</div> <meta itemprop="url" content="https://example.com/tie#step5" /> </div> </div> </div> </body> </html>
包含视频的 HowTo 富媒体搜索结果
下面是一个使用 JSON-LD 且同时包含文字、图片和视频剪辑的 HowTo 网页示例。该示例包含 1 个 HowTo 视频,并且视频中的各个步骤都带有 Clip
标记 structured data.
<html>
<head>
<title>How to create a Trivia action</title>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HowTo",
"image": {
"@type": "ImageObject",
"url": "https://example.com/1x1/photo.jpg"
},
"name": "How to create a Trivia action",
"totalTime": "PT2M",
"video": {
"@type": "VideoObject",
"name": "Build a Trivia Game for the Google Assistant with No Code",
"description": "Learn how to create a Trivia action for Assistant within minutes.",
"thumbnailUrl": "https://example.com/photos/photo.jpg",
"contentUrl": "https://www.youtube.com/watch?v=4AOI1tZrgMI",
"embedUrl": "https://www.youtube.com/embed/4AOI1tZrgMI",
"uploadDate": "2019-01-05T08:00:00+08:00",
"duration": "P1MT10S",
"hasPart": [
{
"@type": "Clip",
"@id": "Clip1",
"name": "Open Actions on Google Console",
"startOffset": 29,
"endOffset": 36,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI&t=29"
},
{
"@type": "Clip",
"@id": "Clip2",
"name": "Select Trivia Template",
"startOffset": 36,
"endOffset": 45,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI&t=36"
},
{
"@type": "Clip",
"@id": "Clip3",
"name": "Choose a Personality",
"startOffset": 45,
"endOffset": 65,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI&t=45"
},
{
"@type": "Clip",
"@id": "Clip4",
"name": "Feed your content",
"startOffset": 65,
"endOffset": 154,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI&t=65"
},
{
"@type": "Clip",
"@id": "Clip5",
"name": "Create the action",
"startOffset": 154,
"endOffset": 172,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI&t=154"
},
{
"@type": "Clip",
"@id": "Clip6",
"name": "Test your action",
"startOffset": 172,
"endOffset": 212,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI&t=172"
},
{
"@type": "Clip",
"@id": "Clip7",
"name": "Submit your action",
"startOffset": 212,
"endOffset": 285,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI&t=212"
}
]
},
"step": [
{
"@type": "HowToStep",
"name": "Open Actions on Google Console",
"text": "Navigate to https://console.actions.google.com to get started.",
"image": "https://example.com/1x1/step1.jpg",
"url": "https://example.com/tie#step1",
"video": {
"@id": "Clip1"
}
},
{
"@type": "HowToStep",
"name": "Select Trivia Template",
"text": "Create a new project and select Templates | You have a choice to select between Trivia, Flashcard or Personality Quiz.",
"image": "https://example.com/1x1/step2.jpg",
"url": "https://example.com/tie#step2",
"video": {
"@id": "Clip2"
}
},
{
"@type": "HowToStep",
"name": "Choose a Personality",
"text": "Select one of the three personalities- Mr, Montgomery, Regal Queen, or the Trivia Bot.",
"image": "https://example.com/1x1/step3.jpg",
"url": "https://example.com/tie#step3",
"video": {
"@id": "Clip3"
}
},
{
"@type": "HowToStep",
"name": "Feed your content",
"itemListElement": [
{
"@type": "HowToDirection",
"text": "Make a copy of our pre-filled sheet and replace with your content."
},
{
"@type": "HowToDirection",
"text": "Ensure you make the sheet publicly accessible. Copy the URL of the sheet and paste it into the Console."
}
],
"image": "https://example.com/1x1/step4.jpg",
"url": "https://example.com/tie#step4",
"video": {
"@id": "Clip4"
}
},
{
"@type": "HowToStep",
"name": "Create the action",
"text": "Create the action. Once content is successfully uploaded, it will take couple of minutes to create the action.",
"image": "https://example.com/1x1/step5.jpg",
"url": "https://example.com/tie#step5",
"video": {
"@id": "Clip5"
}
},
{
"@type": "HowToStep",
"name": "Test your action",
"text": "Navigate to the Simulator to test your action and simulate various surfaces, locations and locales.",
"image": "https://example.com/1x1/step6.jpg",
"url": "https://example.com/tie#step6",
"video": {
"@id": "Clip6"
}
},
{
"@type": "HowToStep",
"name": "Submit your action",
"text": "Once you complete directory information and invocation names, submit your action for all Assistant users to see and use your action.",
"image": "https://example.com/1x1/step7.jpg",
"url": "https://example.com/tie#step7",
"video": {
"@id": "Clip7"
}
}
]
}
</script>
</head>
<body>
</body>
</html>
Microdata
Here's an example of a how-to page that contains a mix of text, images, and video clips using Microdata. The example contains 1 video of the how-to, with steps in that same video marked up with Clip structured data.
<html>
<head>
<title>How to create a Trivia action</title>
</head>
<body>
<div itemscope itemtype="https://schema.org/HowTo">
<b><span itemprop="name">How to create a Trivia action</span></b>
<div>About <span itemprop="totalTime" content="PT2M">2 minutes</span></div>
<div itemprop="video" itemscope itemtype="https://schema.org/VideoObject">
<meta itemprop="name" content="Tie a Tie" />
<meta itemprop="description" content="How to tie a four-in-hand knot." />
<link itemprop="thumbnailUrl" content="https://example.com/photos/photo.jpg" />
<link itemprop="contentUrl" content="https://www.example.com/videos/123_600x400.mp4" />
<link itemprop="embedUrl" content="https://www.example.com/videoplayer?id=123" />
<meta itemprop="duration" content="P1MT10S" />
<meta itemprop="uploadDate" content="2019-01-05T08:00:00+08:00" />
<div>
<div itemprop="hasPart" itemscope itemtype="https://schema.org/Clip" itemid="Clip1">
<div itemprop="name">Open Actions on Google Console</div>
<div itemprop="startOffset">29</div>
<div itemprop="endOffset">36</div>
<div itemprop="url">https://www.youtube.com/watch?v=4AOI1tZrgMI&t=29</div>
</div>
<div itemprop="hasPart" itemscope itemtype="https://schema.org/Clip" itemid="Clip2">
<div itemprop="name">Select Trivia Template</div>
<div itemprop="startOffset">36</div>
<div itemprop="endOffset">45</div>
<div itemprop="url">https://www.youtube.com/watch?v=4AOI1tZrgMI&t=36</div>
</div>
<div itemprop="hasPart" itemscope itemtype="https://schema.org/Clip" itemid="Clip3">
<div itemprop="name">Choose a Personality</div>
<div itemprop="startOffset">45</div>
<div itemprop="endOffset">65</div>
<div itemprop="url">https://www.youtube.com/watch?v=4AOI1tZrgMI&t=45</div>
</div>
<div itemprop="hasPart" itemscope itemtype="https://schema.org/Clip" itemid="Clip4">
<div itemprop="name">Feed your content</div>
<div itemprop="startOffset">65</div>
<div itemprop="endOffset">154</div>
<div itemprop="url">https://www.youtube.com/watch?v=4AOI1tZrgMI&t=65</div>
</div>
<div itemprop="hasPart" itemscope itemtype="https://schema.org/Clip" itemid="Clip5">
<div itemprop="name">Create the action</div>
<div itemprop="startOffset">154</div>
<div itemprop="endOffset">172</div>
<div itemprop="url">https://www.youtube.com/watch?v=4AOI1tZrgMI&t=154</div>
</div>
<div itemprop="hasPart" itemscope itemtype="https://schema.org/Clip" itemid="Clip6">
<div itemprop="name">Test your action</div>
<div itemprop="startOffset">172</div>
<div itemprop="endOffset">212</div>
<div itemprop="url">https://www.youtube.com/watch?v=4AOI1tZrgMI&t=172</div>
</div>
<div itemprop="hasPart" itemscope itemtype="https://schema.org/Clip" itemid="Clip7">
<div itemprop="name">Submit your action</div>
<div itemprop="startOffset">212</div>
<div itemprop="endOffset">285</div>
<div itemprop="url">https://www.youtube.com/watch?v=4AOI1tZrgMI&t=212</div>
</div>
</div>
<video>...</video>
</div>
<div itemprop="step" itemscope itemtype="https://schema.org/HowToStep">
<div itemprop="name">Open Actions on Google Console</div>
<div itemprop="text">Navigate to https://console.actions.google.com to get started.</div>
<div itemprop="image">https://example.com/1x1/photo1.jpg</div>
<meta itemprop="url" content="https://example.com/tie#step1" />
<link itemprop="video" href="Clip1" />
</div>
<div itemprop="step" itemscope itemtype="https://schema.org/HowToStep">
<div itemprop="name">Select Trivia Template</div>
<div itemprop="text">Create a new project and select Templates | You have a choice to select between Trivia, Flashcard or Personality Quiz.</div>
<div itemprop="image">https://example.com/1x1/photo2.jpg</div>
<meta itemprop="url" content="https://example.com/tie#step2" />
<link itemprop="video" href="Clip2" />
</div>
<div itemprop="step" itemscope itemtype="https://schema.org/HowToStep">
<div itemprop="name">Choose a Personality</div>
<div itemprop="text">Select one of the three personalities- Mr, Montgomery, Regal Queen, or the Trivia Bot.</div>
<div itemprop="image">https://example.com/1x1/photo3.jpg</div>
<meta itemprop="url" content="https://example.com/tie#step3" />
<link itemprop="video" href="Clip3" />
</div>
<div itemprop="step" itemscope itemtype="https://schema.org/HowToStep">
<div itemprop="name">Feed your content</div>
<div itemprop="itemListElement" itemscope itemtype="https://schema.org/HowToDirection">
<div itemprop="text">Make a copy of our pre-filled sheet and replace with your content.</div>
</div>
<div itemprop="itemListElement" itemscope itemtype="https://schema.org/HowToDirection">
<div itemprop="text">Ensure you make the sheet publicly accessible. Copy the URL of the sheet and paste it into the Console.</div>
</div>
<div itemprop="image">https://example.com/1x1/photo4.jpg</div>
<meta itemprop="url" content="https://example.com/tie#step4" />
<link itemprop="video" href="Clip4" />
</div>
<div itemprop="step" itemscope itemtype="https://schema.org/HowToStep">
<div itemprop="name">Create the action</div>
<div itemprop="text">Create the action. Once content is successfully uploaded, it will take couple of minutes to create the action.</div>
<div itemprop="image">https://example.com/1x1/photo5.jpg</div>
<meta itemprop="url" content="https://example.com/tie#step5" />
<link itemprop="video" href="Clip5" />
</div>
<div itemprop="step" itemscope itemtype="https://schema.org/HowToStep">
<div itemprop="name">Test your action</div>
<div itemprop="text">PNavigate to the Simulator to test your action and simulate various surfaces, locations and locales.</div>
<div itemprop="image">https://example.com/1x1/photo6.jpg</div>
<meta itemprop="url" content="https://example.com/tie#step6" />
<link itemprop="video" href="Clip6" />
</div>
<div itemprop="step" itemscope itemtype="https://schema.org/HowToStep">
<div itemprop="name">Submit your action</div>
<div itemprop="text">Once you complete directory information and invocation names, submit your action for all Assistant users to see and use your action.</div>
<div itemprop="image">https://example.com/1x1/photo7.jpg</div>
<meta itemprop="url" content="https://example.com/tie#step7" />
<link itemprop="video" href="Clip7" />
</div>
</div>
</body>
</html>
Guidelines
For your page to be eligible for How-to rich results and a How-to Action for the Google
Assistant, you must follow these guidelines:
- General structured data guidelines
- Search Essentials
- Content restrictions policy for Actions on Google
- How-to content guidelines
Content guidelines
- Advertising: Don't use
HowTo
structured data for advertising purposes.
- Ineligible Content: How-to rich results may not be displayed if the content
is obscene, profane, sexually explicit, or graphically violent; or if it promotes dangerous or
illegal activities or has hateful or harassing language.
- Source: All
HowTo
content must be visible to the user on
the source page. Make sure that the how-to is the main focus of the source page. Don't include more
than one HowTo
for a certain page.
- Materials and Tools: Add structured data to all materials and tools necessary
to complete the task.
- Steps: Each
HowToStep
must include the entire contents of the
source step. Don't mark up non-step data such as a summary or introduction section as a step.
- Step images: If the steps are best represented visually, ensure the images
in these steps are marked up for each
HowToStep
. Only mark up the instructional
step images that are specific for each step and don't use the same image in multiple steps for
the same how-to. Use the same images that correspond to the content on your page. Don't
use images that don't reflect the how-to content, or use different images to optimize the
rich-result.
- Final image: If the end result can be accurately described by an image,
ensure this image is present on the page, and your
HowTo
markup includes it using
the image
property. This image may be the same as the one marked up for the last
step.
- Content: Don't use
HowTo
markup for recipes; instead,
use Recipe structured data
.
Articles and general advice content that is not a specific set of instructions are not
appropriate for HowTo
markup.
Structured data type definitions
You must include the required properties for your content to be eligible for display as a rich
result. You can also include the recommended properties to add more information to your structured
data, which could provide a better user experience.
HowTo
The full definition of HowTo
is available at
schema.org/HowTo.
The HowTo
type indicates that the page contains a how-to. There
must be one HowTo
type definition per page.
Required properties
name
The title of the how-to. For example, "How to tie a tie".
step
HowToStep
or HowToSection
An array of HowToStep
elements which comprise
the full instructions of the how-to. Each step
element must correspond to
an individual step in the instructions. Don't mark up non-step data such as a summary or
introduction section, using this property.
For example:
-
You can specify the complete text for each step
by setting the
text
of each HowToStep
. An image
,
the title of a step given as name
, and url
are optional, but
recommended, since optional properties may contribute to a rich presentation of the search result.
"step":[
{
"@type": "HowToStep",
"text": "Button your shirt how you'd like to wear it, then drape the tie around your neck. Make the thick end about 1/3rd longer than the short end. For formal button down shirts, it usually works best with the small end of the tie between 4th and 5th button.",
"image": "https://example.com/1x1/photo.jpg"
}, {
"@type": "HowToStep",
"text": "Cross the long end over the short end. This will form the basis for your knot.",
"image": "https://example.com/1x1/photo.jpg"
}, {
"@type": "HowToStep",
"text": "Bring the long end back under the short end, then throw it back over the top of the short end in the other direction. ",
"image": "https://example.com/1x1/photo.jpg"
}, {
"@type": "HowToStep",
"text": "Now pull the long and through the loop near your neck, forming another loop near your neck.",
"image": "https://example.com/1x1/photo.jpg"
}, {
"@type": "HowToStep",
"text": "Pull the long end through that new loop and tighten to fit! ",
"image": "https://example.com/1x1/photo.jpg"
}
]
-
For complex steps, you can provide a step
name
and list individual substeps using HowToDirection
or
HowToTip
.
"step": [
{
"@type": "HowToStep",
"name": "Prepare the surfaces",
"itemListElement": [{
"@type": "HowToDirection",
"text": "First please turn off the power to the kitchen and then remove everything that is on the wall, such as outlet covers, switchplates, and any other item in the area that is to be tiled."
}, {
"@type": "HowToDirection",
"text": "Then clean the surface thoroughly to remove any grease or other debris and tape off the area."
}],
"image": {
"@type": "ImageObject",
"url": "https://example.com/photos/1x1/photo.jpg",
"height": "406",
"width": "305"
}
}, {
"@type": "HowToStep",
"name": "Plan your layout",
"itemListElement": [{
"@type": "HowToTip",
"text": "The creases created up until this point will be guiding lines for creating the four walls of your planter box."
}, {
"@type": "HowToDirection",
"text": "Lift one side at a 90-degree angle, and fold it in place so that the point on the paper matches the other two points already in the center."
}, {
"@type": "HowToDirection",
"text": "Repeat on the other side."
}],
"image": {
"@type": "ImageObject",
"url": "https://example.com/photos/1x1/photo.jpg",
"height": "406",
"width": "305"
}
}, {
"@type": "HowToStep",
"name": "Prepare your and apply mortar (or choose adhesive tile)",
"itemListElement": [{
"@type": "HowToDirection",
"text": "Follow the instructions on your thin-set mortar to determine the right amount of water to fill in your bucket. Once done, add the powder gradually and make sure it is thoroughly mixed."
}, {
"@type": "HowToDirection",
"text": "Once mixed, let it stand for a few minutes before mixing it again. This time don't add more water. Double check your thin-set mortar instructions to make sure the consistency is right."
}, {
"@type": "HowToDirection",
"text": "Spread the mortar on a small section of the wall with a trowel."
}, {
"@type": "HowToTip",
"text": "Thinset and other adhesives set quickly so make sure to work in a small area."
}, {
"@type": "HowToDirection",
"text": "Once it's applied, comb over it with a notched trowel."
}],
"image": {
"@type": "ImageObject",
"url": "https://example.com/photos/1x1/photo.jpg",
"height": "406",
"width": "305"
}
}, {
"@type": "HowToStep",
"name": "Add your tile to the wall",
"itemListElement": [{
"@type": "HowToDirection",
"text": "Place the tile sheets along the wall, making sure to add spacers so the tiles remain lined up."
}, {
"@type": "HowToDirection",
"text": "Press the first piece of tile into the wall with a little twist, leaving a small (usually one-eight inch) gap at the countertop to account for expansion. use a rubber float to press the tile and ensure it sets in the adhesive."
}, {
"@type": "HowToDirection",
"text": "Repeat the mortar and tiling until your wall is completely tiled, Working in small sections."
}],
"image": {
"@type": "ImageObject",
"url": "https://example.com/photos/1x1/photo.jpg",
"height": "406",
"width": "305"
}
}, {
"@type": "HowToStep",
"name": "Apply the grout",
"itemListElement": [{
"@type": "HowToDirection",
"text": "Allow the thin-set mortar to set. This usually takes about 12 hours. Don't mix the grout before the mortar is set, because you don't want the grout to dry out!"
}, {
"@type": "HowToDirection",
"text": "To apply, cover the area thoroughly with grout and make sure you fill all the joints by spreading it across the tiles vertically, horizontally, and diagonally. Then fill any remaining voids with grout."
}, {
"@type": "HowToDirection",
"text": "Then, with a moist sponge, sponge away the excess grout and then wipe clean with a towel. For easier maintenance in the future, think about applying a grout sealer."
}],
"image": {
"@type": "ImageObject",
"url": "https://example.com/photos/1x1/photo.jpg",
"height": "406",
"width": "305"
}
}
]
An array of HowToSection
elements which comprise
the full instructions of this HowTo
. For example:
"step":[
{
"@type": "HowToSection",
"name": "Choose a Tie",
"itemListElement": [
{
"@type": "HowToStep",
"name": "Choose a color",
"text": "Pick a tie that matches your shirt color. Contrasting colors can be fun!"
},
{
"@type": "HowToStep",
"name": "Choose a pattern",
"text": "A tie with a pattern can add flare to your outfit. Make sure the pattern is not
too noisy against your shirt"
}
]
},
{
"@type": "HowToSection",
"name": "Put on the Tie",
"itemListElement": [
{
"@type": "HowToStep",
"name": "Arrange the Tie",
"text": "Stand in front of the mirror with the tie around your neck."
},
{
"@type": "HowToStep",
"name": "Tie the Tie",
"text": "Use your hands to tie the tie into a neat knot around your neck. Looking sharp!"
}
]
}
]
Recommended properties
estimatedCost
MonetaryAmount
or Text
The estimated cost of the supplies consumed when performing instructions.
image
ImageObject
or URL
Image of the completed how-to. Additional image guidelines:
- Image URLs must be crawlable and indexable.
- Images must represent the marked up content.
- Images must be in .jpg, .png, or. gif format.
supply
HowToSupply
or Text
A supply consumed when performing instructions or a direction.
tool
HowToTool
or Text
An object used (but not consumed) when performing instructions or a direction.
totalTime
Duration
The total time required to perform all instructions or directions (including time to
prepare the supplies), in ISO 8601 duration format.
video
VideoObject
A video of the how-to. Follow the list of required and recommended
Video properties. Mark the steps
within a video with hasPart
.
{
"@context": "https://schema.org",
"@type": "HowTo",
"video": {
"@type": "VideoObject",
"name": "Build a Trivia Game for the Google Assistant with No Code",
"description": "Learn how to create a Trivia action for Assistant within minutes.",
"thumbnailUrl": "https://example.com/photos/photo.jpg",
"contentUrl": "https://www.youtube.com/watch?v=4AOI1tZrgMI",
"embedUrl": "https://www.youtube.com/embed/4AOI1tZrgMI",
"uploadDate": "2019-01-05T08:00:00+08:00",
"duration": "P1MT10S",
"hasPart": [
{
"@type": "Clip",
"@id": "Clip1",
"name": "Open Actions on Google Console",
"startOffset": 29,
"endOffset": 36,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI?t=29"
},
{
"@type": "Clip",
"@id": "Clip2",
"name": "Select Trivia Template",
"startOffset": 36,
"endOffset": 45,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI?t=36"
}
]
}
}
video.hasPart
A video clip that is part of the entire video.
video.hasPart.endOffset
The end time of the clip expressed as the number of seconds from the beginning of the video.
video.hasPart.name
The name of the clip. For example, "Pull and tighten" could be the name of the clip that
shows how to pull and tighten a tie.
video.hasPart.startOffset
The start time of the clip expressed as the number of seconds from the beginning of the video.
video.hasPart.url
A link to the start time of the clip. The start time must match the value set in
video.hasPart.startOffset
. For example:
"startOffset": 30,
"endOffset": 45,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI&t=30"
HowToSection
The full definition of HowToSection
is available at
schema.org/HowToSection.
The HowToSection
type defines a section of a single how-to and
contains one or multiple steps. Don't use HowToSection
to define different solutions
to complete a task; instead, use HowToSection
as part of a single solution. For listing
multiple ways to complete a task, use multiple HowTo
objects. For example,
multiple ways to change a flat tire are listed as multiple HowTo
objects, not
HowToSection
objects.
Required properties
itemListElement
HowToStep
A list of detailed steps for the section.
name
Text
The name of the section.
HowToStep
The full definition of HowToStep
is available at
schema.org/HowToStep.
The HowToStep
type defines the simple textual step in a how-to, and may
include an image.
Required properties
itemListElement
HowToDirection
or HowToTip
A list of detailed substeps, including directions or tips.
Optional if text
is used.
text
Text
The full instruction text of this step.
Optional if itemListElement
is used. Additional guidelines:
- Include only instructional text and don't include other text such as
"Directions", "Watch the video", "Step 1". Specify those phrases outside of the marked
up property.
Not recommended:
{
"@type": "HowToStep",
"text": "Step 1. Drape the tie around your neck."
}
Recommended:
{
"@type": "HowToStep",
"text": "Drape the tie around your neck."
}
Recommended properties
image
ImageObject
or URL
An image for the step. Additional image guidelines:
- Image URLs must be crawlable and indexable.
- Images must represent the marked up content.
- Images must be in .jpg, .png, or. gif format.
name
Text
The word or short phrase summarizing the step (for example, "Attach wires to post" or "Dig").
Don't use non-descriptive text (for example, "Step 1: [text]") or other form of step number
(for example, "1. [text]").
url
URL
A URL
that directly links to the step (if one is available). For example,
an anchor link fragment.
video
VideoObject
or Clip
A video for this step of the how-to, or a clip from one video that shows the entire how-to.
For VideoObject
, follow the list of required and recommended
Video properties.
Here's an example using VideoObject
:
{
"@type": "HowToStep",
"video": {
"name": "Drape the tie",
"description": "Drape the tie.",
"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": "2019-01-05T08:00:00+08:00",
"duration": "PT12S"
}
}
Here's an example using Clip
:
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "Build a Trivia Game for the Google Assistant with No Code",
"video": {
"@type": "VideoObject",
"name": "Build a Trivia Game for the Google Assistant with No Code",
"description": "Learn how to create a Trivia action for Assistant within minutes.",
"thumbnailUrl": "https://example.com/photos/photo.jpg",
"contentUrl": "https://www.youtube.com/watch?v=4AOI1tZrgMI",
"embedUrl": "https://www.youtube.com/embed/4AOI1tZrgMI",
"uploadDate": "2019-01-05T08:00:00+08:00",
"duration": "P1MT10S",
"hasPart": [
{
"@type": "Clip",
"@id": "Clip1",
"name": "Open Actions on Google Console",
"startOffset": 29,
"endOffset": 36,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI?t=29"
},
{
"@type": "Clip",
"@id": "Clip2",
"name": "Select Trivia Template",
"startOffset": 36,
"endOffset": 45,
"url": "https://www.youtube.com/watch?v=4AOI1tZrgMI?t=36"
}
]
},
"step": [
{
"@type": "HowToStep",
"name": "Open Actions on Google Console",
"video": { "@id": "Clip1" }
},
{
"@type": "HowToStep",
"name": "Select Trivia Template",
"video": { "@id": "Clip2" }
}
]
}
HowToSupply
, HowToTool
The full definitions of HowToSupply
and HowToTool
are available at
schema.org/HowToSupply and
schema.org/HowToTool.
HowToSupply
and HowToTool
are used to complete the HowTo
.
They have the same required and recommended properties.
Required properties
name
Text
The name of the supply or tool.
Recommended properties
image
ImageObject
or URL
An image of the supply or tool. Additional image guidelines:
- Image URLs must be crawlable and indexable.
- Images must represent the marked up content.
- Images must be in .jpg, .png, or. gif format.
HowToDirection
, HowToTip
The full definitions of HowToDirection
and HowToTip
are available at
schema.org/HowToDirection and
schema.org/HowToTip.
Use HowToDirection
and HowToTip
to describe directions or tips.
They have the same required and recommended properties.
Required properties
text
Text
The text of the direction or tip.
Monitor rich results with Search Console
Search Console is a tool that helps you monitor how your pages perform in Google Search.
You don't have to sign up for Search Console to be included in Google Search results,
but it can help you understand and improve how Google sees your site. We
recommend checking Search Console in the following cases:
- After deploying structured data for the first time
- After releasing new templates or updating your code
- Analyzing traffic periodically
After deploying structured data for the first time
After Google has indexed your pages, look for issues using the relevant
Rich result status report.
Ideally, there will be an increase of valid items, and no increase in invalid items. If you find issues
in your structured data:
- Fix the invalid items.
- Inspect a live URL to check if the issue persists.
- Request validation using the status report.
After releasing new templates or updating your code
When you make significant changes to your website, monitor for increases in structured data invalid items.
- If you see an increase in invalid items, perhaps you rolled out a new template that doesn't work, or your site interacts with the existing
template in a new and bad way.
- If you see a decrease in valid items (not matched by an increase in invalid items), perhaps you are
no longer embedding structured data in your pages. Use the
URL Inspection tool to learn what is causing the issue.
Analyzing traffic periodically
Analyze your Google Search traffic using the Performance Report.
The data will show you how often your page appears as a rich result in Search, how often users click on it and what is
the average position you appear on search results. You can also automatically pull these
results with the Search Console API.
问题排查
如果您在实施或调试结构化数据时遇到问题,请查看下面列出的一些实用资源。
- 如果您使用了内容管理系统 (CMS) 或其他人负责管理您的网站,请向其寻求帮助。请务必向其转发列明问题细节的任何 Search Console 消息。
- Google 不能保证使用结构化数据的功能一定会显示在搜索结果中。如需查看导致 Google 无法将您的内容显示为富媒体搜索结果的各种常见原因,请参阅结构化数据常规指南。
- 您的结构化数据可能存在错误。请参阅结构化数据错误列表。
- 如果您的网页受到结构化数据手动操作的影响,其中的结构化数据将会被忽略(但该网页仍可能会出现在 Google 搜索结果中)。如需修正结构化数据问题,请使用“人工处置措施”报告。
- 再次查看相关指南,确认您的内容是否未遵循指南。问题可能是因为出现垃圾内容或使用垃圾标记导致的。不过,问题可能不是语法问题,因此富媒体搜索结果测试无法识别这些问题。
- 针对富媒体搜索结果缺失/富媒体搜索结果总数下降进行问题排查。
- 请等待一段时间,以便 Google 重新抓取您的网页并重新将其编入索引。请注意,网页发布后,Google 可能需要几天时间才会找到和抓取该网页。有关抓取和索引编制的常见问题,请参阅 Google 搜索抓取和索引编制常见问题解答。
- 在 Google 搜索中心论坛中发帖提问。