Microdata/Schema.org/SEO: 如何正确设置 ContactPoint

Microdata/Schema.org/SEO: How to properly set a ContactPoint

将微数据添加到页面后,我通常会去:https://developers.google.com/webmasters/structured-data/testing-tool/ 进行测试并确保没有遗漏任何内容。

我收到以下错误:

"ContactPoint must be attached to a parent with a declared type"

我不确定我错过了什么...?

样本HTML

<div itemscope itemtype="http://schema.org/Person">
    <p>
        <span itemprop="description">Webmaster</span>: 
        <span itemprop="name">Omar</span>
        <br/><a itemprop="url" href="https://plus.google.com/+Omar/">Profile</a>
    </p>

    <p itemscope itemtype="http://schema.org/ContactPoint">
        To contact me please email me at 
            <a itemprop="email" href="mailto:omar@somewhere.com">omar@somewhere.com</a>
            <meta itemprop="contactType" content="Webmaster"/>
            <meta itemprop="sameAs" content="https://plus.google.com/+OmarJuvera"/>
            <meta itemprop="availableLanguage" content="English"/>
            <meta itemprop="availableLanguage" content="Spanish"/>
            <meta itemprop="availableLanguage" content="Japanese"/>
    </p>
</div>

(虽然 Google 的测试工具将此报告为 错误 ,但它不是实际错误。它应该是警告。您的代码是有效的 Microdata并且您正确使用了 Schema.org 词汇。)

  1. 您有两个顶级项目(一个 Person 和一个 ContactPoint),也就是说,它们没有任何关系。

  2. 如果要说ContactPointPerson的联系点,那么就需要一个属性来连接这两个项目( HTML级嵌套在这里不相关)。

  3. 查看 Person, you can find the contactPoint property 的定义属性,它以 ContactPoint 作为值并定义为:

    A contact point for a person or organization.

    所以这个 属性 适合你的情况。

  4. contactPoint 属性 添加到 Person 项,引用 ContactPoint 项:

    <div itemscope itemtype="http://schema.org/Person">
      …
      <p itemprop="contactPoint" itemscope itemtype="http://schema.org/ContactPoint">
      …
      </p>
    </div>