回到主页

Schema.org刚发布新餐厅菜单标记 - 以下是如何开始使用

到目前为止,大多数关注SEO的人都熟悉结构化数据,Schema.org词汇和丰富的片段。即使那些对SEO知之甚少的人也很欣赏向他们的网站添加结构化数据的好处,即他们可能能够在搜索结果中获得丰富的片段。

当然,结构化数据的主要好处是它可以帮助搜索引擎更好地理解您的内容,从而帮助他们在搜索结果中更恰当地对其进行排名。但我们不是在这里讨论结构化数据的内容和原因; 网上有很多其他文章很好地涵盖了这个主题。

现在,尽管Schema.org并不是一个专门涵盖所有类型业务的综合词汇表- 而且它并不意味着 - 任何企业都可以使用它来标记其网站的内容。但到目前为止,有一个行业对于他们可以用模式做什么相当有限:餐馆。

当然,餐馆可以随时标记通常的信息,例如姓名,地址,电话号码,营业时间等等。但是当它在他们的网站上标记最重要的信息 - 他们的菜单 - 餐馆唯一可用的东西是一个孤独的菜单属性。该属性可以指向可以找到其菜单的URL,也可以将整个菜单标记为文本。没有办法真正标记单个菜单项及其价格,更不用说指定不同类型的菜单,如早餐,午餐,晚餐等。

那么,餐馆老板(以及为餐馆做SEO的人) - 欢喜!在最新版本中,Schema.org添加了几个新属性和类型,使标记菜单真正成为“结构化”数据。虽然本文特别针对餐馆,但任何提供食品或饮料的商家(如咖啡店,面包店,咖啡馆,酒吧等)都可以使用这些新的属性和类型来标记他们的菜单。

新菜单属性和类型

当您访问schema.org/Restaurant页面时,您会注意到的第一件事是menu属性已被hasMenu属性替换。但是如果您当前的标记仍然使用旧的菜单属性,请不要担心 - 在您更新内容之前,一切都将继续有效。

以下是餐厅菜单的其他内容:

  • 一种新的菜单类型。菜单正式成为Schema.org中的实体,具有自己的属性和子类型。
  • 新的Menu类型包含hasMenuItem属性。此属性将用于指向(也是新的)MenuItem模式类型,该类型将用于标记单个菜单项。
  • 由于大多数餐厅都有一些菜单,例如一个用于早餐,一个用于午餐,一个用于晚餐,因此有一个新的hasMenuSection属性和一个MenuSection类型,可用于标记各种菜单。您还可以使用它来标记每个特定菜单的不同部分,例如开胃菜,沙拉,主菜和晚餐菜单上的甜点。
  • 对于每个MenuItem,我们都可以标记名称,描述,价格和营养信息。虽然它不是架构的新手,但您也可以使用properForDiet属性来表示菜单项是低卡路里,低脂肪,低盐,素食,无麸质,还是适合各种其他限制饮食。
如何使用Schema.org标记餐厅菜单

如您所见,我们标记菜单的能力变得更加强大。现在让我们把它们放在一起,举一些例子。我们将使用JSON-LD,因为这是Google更喜欢的,我们将标记意大利餐厅的菜单。

在主页上

在网站的每个页面上,特别是主页,我们希望将搜索引擎指向正确的方向,以便找到菜单的位置。请记住,Google的指南声明我们只应标记页面上可见的内容,除非整个菜单都在那里发布,否则我们无法将整个菜单完全包含在主页标记中。相反,我们只需使用主页上的hasMenu属性指向菜单页面,如下所示:

<script type =“application / ld + json”> { “@context”:“http://schema.org”, “@type”:“网站”, “名字”:“你的餐厅名称”, “url”:“http://your-restaurant.com/”, “发布者”:{ “@type”:“餐厅”, “名字”:“你的餐厅名称”, “hasMenu”:“http://your-restaurant.com/menu/”, “logo”:“http:// .....

实际上,在您网站的任何包含某些架构标记的页面上,您可以使用hasMenu属性指向菜单页面的URL。

当你有多个菜单时

现在,在我们的例子中,餐厅只供应晚餐,只有一个菜单。但有时餐厅供应早餐,午餐和晚餐,当然还有单独的菜单。在这种情况下,我们会在主页上执行此操作:

“hasMenu”:[ { “@type”:“菜单”, “名字”:“早餐”, “url”:“http://your-restaurant.com/breakfast-menu/” }, { “@type”:“菜单”, “名字”:“午餐”, “url”:“http://your-restaurant.com/lunch-menu/” }, { “@type”:“菜单”, “名字”:“晚餐”, “url”:“http://your-restaurant.com/dinner-menu/” } ] 启动菜单页面标记

将注意力转移到实际的菜单页面,假设菜单仅在下午5:00到晚上11:00之间提供。因此,在菜单页面上,我们的标记将如下所示:

<script type =“application / ld + json”> { “@context”:“http://schema.org”, “@type”:“菜单”, “名称”:“我们的菜单”, “mainEntityOfPage”:“http://your-restaurant.com/menu/”, “inLanguage”:“英语”, “offer”:{ “@type”:“优惠”, “availabilityStarts”:“T17:00”, “availabilityEnds”:“T23:00” }, 标记菜单的各个部分

接下来,我们可以开始标记菜单的各个部分和各个菜单项。首先,我们将从开胃菜开始。对于第一个开胃菜,我们将在标记中包含名称,简要说明和价格,这应该是任何菜单项的最小值。在我们的第二个开胃菜标记示例中,我们还将包括图像,营养信息以及无麸质的事实:

“hasMenuSection”:[ { “@type”:“MenuSection”, “名字”:“开胃菜”, “hasMenuItem”:[ { “@type”:“MenuItem”, “名字”:“炒茄子”, “描述”:“配意大利红肉汁。”, “offer”:{ “@type”:“优惠”, “价格”:“7.95”, “priceCurrency”:“美元” } }, { “@type”:“MenuItem”, “名字”:“炸鱿鱼”, “描述”:“配意大利红肉汁或蜂蜜芥末酱。”, “image”:“http://your-restaurant.com/images/fried-calamari.jpg”, “properForDiet”:“http://schema.org/GlutenFreeDiet”, “营养”:{ “@type”:“营养信息”, “卡路里”:“573卡路里”, “fatContent”:“25克”, “碳水化合物含量”:“26克”, “蛋白质含量”:“61克” }, “offer”:{ “@type”:“优惠”, “价格”:“7.95”, “priceCurrency”:“美元” } } ] },

顺便说一下,模式饮食限制枚举还包括DiabeticDiet,HalalDiet,HinduDiet,KosherDiet,LowCalorieDiet,LowFatDiet,LowLactoseDiet,LowSaltDiet,VeganDiet和VegetarianDiet。在申请时,请随意使用这些枚举中的一个或多个。

标记菜单项

假设我们已经标记了所有的开胃菜,我们已准备好开始标记下一个菜单部分,在我们的例子中是汤。有时,诸如汤之类的菜单项有两种或更多种尺寸。我们可以使用单独的商品标记以及qualifiedQuantity属性来标记可用选项,如下所示:

{ “@type”:“MenuSection”, “名字”:“汤”, “hasMenuItem”:[ { “@type”:“MenuItem”, “名字”:“龙虾浓汤”, “优惠”:[ { “@type”:“优惠”, “价格”:“6.75”, “priceCurrency”:“美元”, “qualifiedQuantity”:{ “@type”:“QuantitativeValue”, “名字”:“杯子” } }, { “@type”:“优惠”, “价格”:“9.95”, “priceCurrency”:“美元”, “qualifiedQuantity”:{ “@type”:“QuantitativeValue”, “名字”:“碗” } } ] }, { “@type”:“MenuItem”, “名字”:“克里奥尔海鲜浓汤”, “优惠”:[ { “@type”:“优惠”, “价格”:“6.75”, “priceCurrency”:“美元”, “qualifiedQuantity”:{ “@type”:“QuantitativeValue”, “名字”:“杯子” } }, { “@type”:“优惠”, “名字”:“碗”, “价格”:“9.95”, “priceCurrency”:“美元”, “qualifiedQuantity”:{ “@type”:“QuantitativeValue”, “名字”:“碗” } } ] } ] }, 把它们放在一起

在我们标记了所有汤项之后,我们可以继续使用相同的格式标记其他菜单部分和项目。就是这样。总而言之,我们的JSON-LD菜单标记看起来像这样:

<script type =“application / ld + json”> { “@context”: “http://schema.org” “@type”: “菜单”, “名称”:“我们的菜单”, “url”:“http://your-restaurant.com/menu/”, “mainEntityOfPage”:“http://your-restaurant.com/menu/”, “inLanguage”: “英语”, “offer”:{ “@type”:“优惠”, “availabilityStarts”:“T17:00”, “availabilityEnds”:“T23:00” }, “hasMenuSection”:[ { “@type”:“MenuSection”, “名字”:“开胃菜”, “hasMenuItem”:[ { “@type”:“MenuItem”, “名字”:“炒茄子”, “描述”:“配意大利红肉汁。”, “offer”:{ “@type”:“优惠”, “价格”:“7.95”, “priceCurrency”:“美元” } }, { “@type”:“MenuItem”, “名字”:“炸鱿鱼”, “描述”:“配意大利红肉汁或蜂蜜芥末酱。”, “image”:“http://your-restaurant.com/images/fried-calamari.jpg”, “properForDiet”:“http://schema.org/GlutenFreeDiet”, “营养”:{ “@type”:“营养信息”, “卡路里”:“573卡路里”, “fatContent”:“25克”, “碳水化合物含量”:“26克”, “蛋白质含量”:“61克” }, “offer”:{ “@type”:“优惠”, “价格”:“7.95”, “priceCurrency”:“美元” } } ] }, { “@type”:“MenuSection”, “名字”:“汤”, “hasMenuItem”:[ { “@type”:“MenuItem”, “名字”:“龙虾浓汤”, “优惠”:[ { “@type”:“优惠”, “价格”:“6.75”, “priceCurrency”:“美元”, “qualifiedQuantity”:{ “@type”:“QuantitativeValue”, “名字”:“杯子” } }, { “@type”:“优惠”, “价格”:“9.95”, “priceCurrency”:“美元”, “qualifiedQuantity”:{ “@type”:“QuantitativeValue”, “名字”:“碗” } } ] }, { “@type”:“MenuItem”, “名字”:“克里奥尔海鲜浓汤”, “优惠”:[ { “@type”:“优惠”, “价格”:“6.75”, “priceCurrency”:“美元”, “qualifiedQuantity”:{ “@type”:“QuantitativeValue”, “名字”:“杯子” } }, { “@type”:“优惠”, “名字”:“碗”, “价格”:“9.95”, “priceCurrency”:“美元”, “qualifiedQuantity”:{ “@type”:“QuantitativeValue”, “名字”:“碗” } } ] } ] }, { “@type”:“MenuSection”, “名字”:“意大利面”, “描述”:“Entrées提供晚餐沙拉或当天的一杯汤。”, “hasMenuItem”:[ { “@type”:“MenuItem”, “名字”:“小牛肉Parmigiana”, “描述”:“用金黄色的炸茄子,意大利红色肉汁,马苏里拉奶酪和干酪加工的切面小牛肉切成小块;配上意大利面。”, “offer”:{ “@type”:“优惠”, “价格”:“17.95”, “priceCurrency”:“美元” } }, { “@type”:“MenuItem”, “名称”:“茄子Parmigiana”, “描述”:“煎茄子分层,上面撒上意大利红色肉汁,马苏里拉奶酪和巴马干酪,直至起泡;配上意大利面。”, “offer”:{ “@type”:“优惠”, “价格”:“14.95”, “priceCurrency”:“美元” } } ] } ] } </ SCRIPT>

当然,这只是标记菜单的缩写示例; 我们肯定会包含有关餐厅的更多信息。但希望您现在了解如何标记各种菜单部分和项目。

所以,经过所有这些,你现在可能想知道的是......

谷歌会用这个吗?

好问题。说实话,现在提供一个明确的答案是不可能的。但如果被迫,我会说,“是的,这很有可能。”

考虑谷歌已经知道的和餐馆菜单内容。如果餐馆在SinglePlatform等第三方网站上发布了他们的菜单,Google可以提取数据并将其显示在搜索结果中:

幸运的是,SinglePlatform使用结构化数据标记餐馆菜单,尽管使用ItemList和ItemListElement模式类型是“旧方法”。但Google使用SinglePlatform的结构化数据这一事实很好地预示了这些新的菜单类型和属性,因为它们是专门为菜单创建的,并且比我们以前拥有的更强大。现在,餐馆可以做结构化数据之前无法做到的事情。

我们也知道Google的目标是显示尽可能准确的搜索结果。在第三方网站上发布的菜单问题是它们通常不会保持最新。餐厅菜单不断变化; 哪个餐厅老板或经理有时间更新他们网站,单一平台,Yelp以及其菜单发布的任何其他网站上的菜单?我不是要告诉餐馆停止在这些网站上发布菜单; 他们肯定还应该。但是,通过使用已经可用的结构化数据标记,餐馆网站现在可以成为Google用于收集有关其服务内容的数据的主要来源。

也许谷歌将开始为餐馆菜单和菜单项目实施新的丰富网页摘要 - 谁知道呢?但至少我们现在可以为他们提供他们想要的一切。

我们也不要忘记语音搜索的增长程度。如果说比萨饼餐厅可以立即吸引新顾客,那会不会很棒,因为有人说,“嘿谷歌,新奥尔良的哪些餐厅供应无麸质比萨饼?”谷歌确切地知道哪些餐馆做了什么以及什么样的面筋 - 他们提供的免费比萨饼,都是因为他们提供了完全标记的菜单?这是我可以预见的情况。

餐厅和菜单标记的未来

我意识到并不是每个餐厅菜单场景都完全覆盖了这些新的菜单属性和类型,但希望你现在至少有足够的开始。请记住,Schema.org词汇表也在不断发展,这个特定的架构领域也将如此发展。欢迎您通过Github上的讨论参与Schema.org的演变。

所有文章
×

还剩一步!

确认邮件已发至你的邮箱。 请点击邮件中的确认链接,完成订阅。

好的