我是否必须创建新的可见元素才能遵守 Google 的微数据 Schema.org 要求?

Do I have to create new visible elements to abide by Google's Microdata Schema.org requirements?

我已将 Schema.org/Microdata 属性添加到我网站上的列表组件中:

// This is one item in my list:

<div itemscope 
     itemtype  = "http://schema.org/WebApplication"
  >
  <span itemprop  = "name">
    The Awesome Web App 01
  </span>
  <span 
        itemprop  = "locationCreated"
        itemscope
        itemtype = "http://schema.org/City" 
    >
    <span itemprop = "name">
      Chicago
    </span>
  </span>
</div>

当我 运行 通过 google Structured Data Testing Tool 我得到错误:

Two of operatingSystem, aggregateRating, applicationCategory, offers are required.

所以我有几个问题:

1 - 我有这个 error 重要吗?错误会强制 google 忽略其他所有内容吗?

2 - 我现在必须创建新的可见 <div> 来保存这些新字段吗?

3 - 在 4 个必填字段中,只有一个 applicationCategory 与我的情况相关...其他的不...所以我为什么要使用它们?


更新: 我想使用 Microdata 格式而不是 JSON-LD 格式(或 RDFa)。看到一个comparison of formats here.

1 - 是的,是的。

2 - 不,见下文。

3 - 好的,只需添加操作系统,如下所示。如果您支持 2+ 操作系统,请将其设为数组 (JSON-LD) 或包含另一个 <span></span>.

以下内容有效,Google 将正确解析:

<div itemscope 
     itemtype  = "http://schema.org/WebApplication"
  >
  <span itemprop  = "name">
    The Awesome Web App 01
  </span>
  <span 
        itemprop  = "locationCreated"
        itemscope
        itemtype = "http://schema.org/City" 
    >
    <span itemprop = "name">
      Chicago
    </span>
  </span>
  <span itemprop = "operatingSystem">
       Android
  </span>
  <span itemprop = "applicationCategory">
       Games
  </span>
</div>

如果要隐藏元素的值,请使用此方法:

<span>
  <meta itemprop = "operatingSystem" content="Android"/>
 </span>

您不必提供这些属性。词汇表 Schema.org 未定义任何必需的属性。

如果Google的结构化数据测试工具说需要属性,那只意味着这个属性是获得Google之一所必需的' s 搜索结果功能(例如,丰富网页摘要)。

如果您不提供属性 ,Google 将(很可能)不会显示该搜索结果功能。没有其他事情发生。完全 fine/normal 不提供 SDTT 希望看到的所有属性。

如果您可以提供属性,但不想让它们在您的页面上可见,您可以使用 link 元素(如果值是 URI)或 meta 元素(对于所有其他值)。对于微数据,这些元素可能会添加到 body,默认情况下它们是隐藏的。