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

Oma*_*mar 4 html seo microdata schema.org

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

我收到以下错误:

"ContactPoint必须附加到具有声明类型的父级"

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

示例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>
Run Code Online (Sandbox Code Playgroud)

uno*_*nor 6

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

  1. 你有两个顶级项目(a Person和a ContactPoint),即它们没有任何关联.

  2. 如果你想说ContactPoint是它的联系点Person,那么你需要一个属性来连接这两个项目(HTML级别的嵌套在这里不相关).

  3. 查看已定义的属性Person,您可以找到contactPoint属性,该属性采用ContactPointas值并定义为:

    个人或组织的联络点.

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

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

    <div itemscope itemtype="http://schema.org/Person">
      …
      <p itemprop="contactPoint" itemscope itemtype="http://schema.org/ContactPoint">
      …
      </p>
    </div>
    
    Run Code Online (Sandbox Code Playgroud)