如何使用跨站点结构化数据与Schema.org连接主页和博客?

时间:2016-06-06 10:18:49

标签: blogs schema.org json-ld

我有一个网站,一个博客和一些社交媒体资料。我想用Schema.org解释这些在线存在与搜索引擎之间的关系。

从Google的文档和示例中,我知道以下代码将网站和社交媒体资料连接到我的名字:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Person",
  "name": "your name",
  "url": "http://www.your-site.com",             //  <= homepage
  "sameAs": [
    "http://www.facebook.com/your-profile",
    "http://instagram.com/yourProfile",
    "http://www.linkedin.com/in/yourprofile",
    "http://plus.google.com/your_profile"
  ]
}
</script>

但申请博客的正确方法是什么?

Schema.org上有与博客相关的类型和属性,但这些类型和属性用于标记与博客本身相关的博客内容。我想要的是在我个人网站的主页上标记博客与其他在线展示的关系。我该怎么做?

在我看来,我不能使用url,因为这是项目&#34;的网址,即我的个人主页;并且我不能使用sameAs,因为这是参考网页的&#34; URL,它明确指出了项目的标识。例如。项目的维基百科页面,自由基页面或官方网站的URL。&#34;根据{{​​3}},社交媒体链接必须在这里。

另一方面,sameAs的定义在schema.org上继续包含&#34; [e] .g。项目的维基百科页面,自由基页面或官方网站&#34;的URL。后者向我表明我可以(或应该)将整个架构放在我的博客上,将博客地址设为url,将我的主页地址设为sameAs,如下所示:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Person",
  "name": "your name",
  "url": "http://my.blog.com",                   //  <= blog
  "sameAs": [
    "http://www.facebook.com/your-profile",
    "http://instagram.com/yourProfile",
    "http://www.linkedin.com/in/yourprofile",
    "http://plus.google.com/your_profile",
    "http://www.my-website.com",                 //  <= homepage
  ]
}
</script>

但是我找不到任何这样的例子,或者其他怎么做。

1 个答案:

答案 0 :(得分:0)

我认为没有理由处理博客(如果没有集成在您的主要网站中,也是一种网站)与处理主要网站的方式不同,假设两者都是个人网站(即代表你在某种程度上),是否使用contactPoint, sameAs, or url

还有另一种方法,这个方法允许您提供有关URL的数据(例如,使关系清晰):

WebSite(以及Blog)允许您引用具有以下属性的Person项目:

如果您不想为WebSite / Blog提供顶级对象,可以使用JSON-LD的@reverse关键字:

{
  "@context": "http://schema.org",
  "@type": "Person",
  "name": "John Doe",
  "@reverse": {
    "author": 
    [
      {
        "@type": "WebSite",
        "url": "https://example.com/"
      },
      {
        "@type": ["Blog", "WebSite"],
        "url": "https://blog.example.com/"
      }
    ]         
  }
}

但是使用多个顶级对象(例如with @graph),each with its @id会更灵活。