gpt4 book ai didi

小公司的 Schema.org 实践 : 'Organization' and 'WebSite' in JSON-LD on every page, 其他一切的微数据

转载 作者:行者123 更新时间:2023-12-02 15:11:01 26 4
gpt4 key购买 nike

我想知道如何构建我的 Schema.org。我对 JSON-LD 和微数据元素使用混合方法。我不会用它们以两种不同的方式来描述一件事。我需要一些关于要包含哪些内容的指南。

现在我在每一页上都有我们公司的描述:

<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Organization",
"url" : "https://our.url",
"logo" : "https://our.url/logo2.svg",
"contactPoint" : [{
"@type" : "ContactPoint",
"telephone" : "",
"contactType" : "Customer Service"
}],
"sameAs" :[],
"name" : "Our Small Company"
}
</script>

然后我又用 JSON-LD 对我们的网页进行了简短描述:

<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "WebSite",
"url" : "http://our.url",
"potentialAction" : {
"@type" : "SearchAction",
"target" : "http://our.url/search",
"query-input" : "required name=search_term_string"
}
}
</script>

从这里开始,我有了所有元素的微数据。例如,搜索结果是包含产品的 ItemList 等。

这看起来还可以吗?我应该在每个页面上包含 JSON-LD 公司描述还是只在主页上包含或者根本不包含?我是否需要深入挖掘并为每个页面提供更具体的描述(例如搜索页面可以是 SearchResultsPage 而不是 WebSite)?

最佳答案

提供一些 JSON-LD 格式的数据和一些微数据格式的数据应该没问题(但如果两者都是关于相同的实体,你 should denote this explicitly )。但是,如果您想连接实体,它可能会出现问题。

连接WebSiteOrganization

谈到连接实体,我建议为您的 WebSiteOrganization 项执行此操作。例如,您可以声明您的 Organizationpublisher WebSite,和/或 WebSiteabout 组织

有两种方法可以在 JSON-LD 中实现这一点:

  • 使用一个script元素并将Organization节点作为值嵌入
  • 保留两个 script 元素 ( or one script element with @graph ),为每个节点提供一个 URI(使用 @id)并将这些 URI 作为值引用

前者可能有更好的消费者支持,后者更适合提供多个属性(例如,authorpublisher)而不必复制整个数据(但你也可以使用混合方式)。

前一种方式的例子:

<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "WebSite",
"publisher" : {
"@type" : "Organization"
}
}
</script>

后一种方式的例子:

<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Organization",
"@id" : "/#org"
}
</script>
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "WebSite",
"publisher" : {"@id": "/#org"},
"about" : {"@id": "/#org"},
"mainEntity" : {"@id": "/#org"},
"author" : {"@id": "/#org"}
}
</script>

(其中 /#org 是代表组织本身的 URI,而不仅仅是关于组织或组织的页面/站点)

提供网页

您可以为每个页面提供一个 WebPage 项目。它在许多情况下都有用。但就像任何其他类型的情况一样,也没有任何要求。

如果您想提供这样的项目,当然最好在适用的地方使用更具体的类型(如 SearchResultsPage)。但如果这不可能,那么到处使用 WebPage 总比不提供要好得多。

在您的情况下,您必须决定提供它的语法。 JSON-LD 允许您将其提供为 hasPart WebSite 根据前一种方式,如上所述。但这将很难通过 mainEntityWebPage 与您页面的主要实体(您在 Microdata 中指定)连接起来。属性(property)。因为我认为这是一个重要的关系,所以我会在 Microdata 中指定 WebPage 并通过 URI 连接 WebSiteWebPage

您可以从 JSON-LD WebSite 节点执行此操作:

"hasPart"           : {"@id": "/current-page.html"}

(您也可以从具有反向属性 isPartOfWebPage 微数据执行此操作,但是您必须 provide an @id for the WebSite 。)

在微数据中拥有 WebPage,例如,在 body 元素上,它允许您提供 mainEntity 属性:

<body itemscope itemtype="http://schema.org/WebPage">
<article itemprop="mainEntity" itemscope itemtype="http://schema.org/Article">
<!-- for an article that is the main content of the page -->
</article>
</body>
<body itemscope itemtype="http://schema.org/SearchResultsPage">
<ul itemprop="mainEntity" itemscope itemtype="http://schema.org/ItemList">
<!-- for a search result list that is the main content of the page -->
</ul>
</body>

连接网页组织

如果您愿意,您可以明确声明 Organizationpublisher/author/etc。 WebPage 也是:

<link itemprop="author publisher" href="/#org" />

(这可能是因为您为 WebSite 声明了这一点,并且每个 WebPage 都通过 hasPart 连接,但这可能太高级了对于许多消费者来说,明确说明可能会有所帮助。)

关于小公司的 Schema.org 实践 : 'Organization' and 'WebSite' in JSON-LD on every page, 其他一切的微数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43914073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com