为什么我的食谱需要一个网址?

时间:2017-05-10 12:02:06

标签: url schema.org linked-data

我正在使用Google的Rich Text工具 1 测试我的架构,并且它一直告诉我,我的Recipe项目需要url属性。

The documentation州:

  

错误表示缺少必填字段或语法错误。

我得到的错误是字段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&amp;autoplay=1&amp;modestbranding=1&amp;rel=0&amp;showInfo=0&amp;origin=http%3A%2F%2Flocalhost&amp;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

2 个答案:

答案 0 :(得分:2)

URL参数应包含使用浏览器查看项目的基本Web地址。

此参数对于通过智能内容工具和搜索漫游器(如Google)索引内容非常重要。提供后,Google就可以将您商品的任何引用链接到声明的网址。

当您的网络应用为不同设备在不同地址提供相同内容时,此参数非常重要。通过提供相同的URL参数,您可以避免重复内容的任何最终损失。

URL参数通常是固定链接的基础(未经修饰)版本,尤其是在使用WordPress等流行网站引擎时,您可以在其中更改永久链接结构,但基本网址方案(通常采用{{ 1}} - 其中/?p=id是文章的ID)将始终有效。通过这种方式,您可以确保即使您决定在一段时间后更改永久链接结构,您的内容排名和索引也不会受到影响,因为声明的URL将保持不变,旧的链接将起作用,无论你当前的计划是非常永久的。

声明的URL参数还避免了索引服务的另一个常见问题:

例如,如果您提供每月特色食谱的链接,如果搜索引擎使用“本月热门食谱链接”对当前食谱进行索引,那么人们将会查找它(基于索引文本或成分) )下个月,他们会找到另一个食谱,这可能不是他们想要的,所以他们会按下后退按钮 snappish,因此:

  • 找不到他们想要的东西,虽然它在你的网站上
  • 损害了您的排名,因为Google会监控用户行为,无论何时返回,都显然意味着当前索引的内容对于该搜索而言是错误的。

为食谱提供一个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>