我正在使用Google的Rich Text工具 1 测试我的架构,并且它一直告诉我,我的Recipe
项目需要url
属性。
错误表示缺少必填字段或语法错误。
我得到的错误是字段url
是空的,不应该是。但是,我不知道应该填写什么。我的意思是,显然该工具需要一个URL,但是 - 从语义上说 - 该URL应该去哪里?如果我没有指向的网址该怎么办?
如果我决定将所谓的必填字段留空,这是否意味着完整的Recipe
将不是有效的架构?或者只是它错过了一个字段?
<body itemscope itemtype="http://schema.org/WebPage">
<main>
<header itemscope itemtype="http://schema.org/Country" itemprop="about">
<h1 itemprop="name">France</h1>
<p>
<span class="capital" title="Capital" itemprop="containsPlace">Paris</span>
<span title="Member of the EU since 1958" itemprop="additionalProperty" itemscope itemtype="http://schema.org/PropertyValue">
<meta itemprop="name" content="Member of the EU since">
<span itemprop="value" class="member-since">1958</span>
</span>
</p>
</header>
<div itemprop="mainEntity" itemscope itemtype="http://schema.org/ItemList">
<meta itemprop="description" content="Recipes that are particular for France">
<article class="recipe loading" id="recipe-1" data-recipe="" itemref="img-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/Recipe">
<meta itemprop="position" content="1">
<aside class="media">
<img itemprop="image" id="img-0" src="https://s-media-cache-ak0.pinimg.com/originals/ef/4c/5c/ef4c5c0b008d11710caa7a10f502d288.jpg">
<div itemscope itemtype="http://schema.org/VideoObject" class="youtube">
<a itemprop="contentUrl" href="https://www.youtube.com/watch?v=fHgULHwyZJo" title="Watch a video on how to make Eclair">
<meta itemprop="name" content="Making éclairs">
<meta itemprop="uploadDate" content="2016-07-12">
<meta itemprop="description" content="In this video you'll learn how to make éclairs">
<img itemprop="thumbnailUrl" src="https://i.ytimg.com/vi/fHgULHwyZJo/maxresdefault.jpg" alt="Eclairs tutorial">
</a>
<iframe href="https://www.youtube.com/watch?v=fHgULHwyZJo" title="YouTube video player" frameborder="0" allowfullscreen="1" width="640" height="360" src="https://www.youtube.com/embed/fHgULHwyZJo?enablejsapi=1&autoplay=1&modestbranding=1&rel=0&showInfo=0&origin=http%3A%2F%2Flocalhost&widgetid=1"></iframe>
</div>
</aside>
<div class="text">
<div class="wiki-text">
<h1 itemprop="name">Eclairs</h1>
<p itemprop="description">An éclair is an oblong pastry made with choux dough filled with a cream and topped with icing. The dough, which is the same as that used for profiterole, is typically piped into an oblong shape with a pastry bag and baked until it is crisp and hollow
inside. </p>
<p class="read-more">For more information about <span class="recipe-name">Éclair</span>, read the <a href="https://en.wikipedia.org/wiki/%C3%89clair" title="Wikipedia page about %C3%89clair" itemprop="sameAs">Wiki</a>.</p>
</div>
<div class="rating" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
Rated <span itemprop="ratingValue">3.5</span>/5 based on <span itemprop="reviewCount">11</span> customer reviews
</div>
<div class="cooking">
<h2>Bake it yourself!</h2>
<div>
<meta itemprop="cookTime" content="PT50M">
<span>Bake time: 50 minutes</span>
</div>
</div>
</div>
</article>
</div>
</main>
</body>
1 相关问题:Defining a relationship between a country and a recipe with Schema
答案 0 :(得分:2)
URL参数应包含使用浏览器查看项目的基本Web地址。
此参数对于通过智能内容工具和搜索漫游器(如Google)索引内容非常重要。提供后,Google就可以将您商品的任何引用链接到声明的网址。
当您的网络应用为不同设备在不同地址提供相同内容时,此参数非常重要。通过提供相同的URL参数,您可以避免重复内容的任何最终损失。
URL参数通常是固定链接的基础(未经修饰)版本,尤其是在使用WordPress等流行网站引擎时,您可以在其中更改永久链接结构,但基本网址方案(通常采用{{ 1}} - 其中/?p=id
是文章的ID)将始终有效。通过这种方式,您可以确保即使您决定在一段时间后更改永久链接结构,您的内容排名和索引也不会受到影响,因为声明的URL将保持不变,旧的链接将起作用,无论你当前的计划是非常永久的。
声明的URL参数还避免了索引服务的另一个常见问题:
例如,如果您提供每月特色食谱的链接,如果搜索引擎使用“本月热门食谱链接”对当前食谱进行索引,那么人们将会查找它(基于索引文本或成分) )下个月,他们会找到另一个食谱,这可能不是他们想要的,所以他们会按下后退按钮 snappish,因此:
为食谱提供一个URL将允许搜索引擎正确地对其进行索引和链接,以便想要查看它的人可以看到它,这样当他们在您的网站上花时间阅读食谱或书签时,您的排名会上升它
答案 1 :(得分:2)
Google的SDTT中显示的错误并不意味着您的Schema.org标记中存在实际错误(因为不提供url
属性完全正常)。它会检查您的标记是否符合Google针对其Recipes富卡的指导原则。如果你不关心它,你不必做任何事情。
如果你关心Recipes rich card:
Google要求list of recipes中每个url
(即每个ListItem
)的Recipe
属性:
ListItem.url
网址,必需项目页面的规范URL。每个项目都应该有一个唯一的网址。
虽然您可以使用片段(例如#recipe-2
,#recipe-3
等)获得“唯一网址[s]”,但指南会显示“商品页面”,因此Google似乎希望看到专门的每个食谱的页面。
然而,他们更通用的Mark Up Your Lists文档描述了标记主机特定列表的“组合”方式,这允许这样做(大胆强调我的):
如果单个页面上有多个配方,请使用列表页面标记,它既可以逐项列出数据类型,也可以在项目字段中公开它们的属性。
在这种情况下,请务必为每个项目添加唯一的网址,在这种情况下可能包含锚标记。
因此,如果这也适用于他们的Recipes富卡,那么在您的情况下可能会将片段提供为URL:
<article id="recipe-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/Recipe http://schema.org/ListItem">
<link itemprop="url" href="#recipe-1" />
<!-- … -->
</article>
<article id="recipe-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/Recipe http://schema.org/ListItem">
<link itemprop="url" href="#recipe-2" />
<!-- … -->
</article>