Seo JSON-LD的@id引用之后的结构化数据测试工具–;这会像预期的那样工作吗?

Seo JSON-LD的@id引用之后的结构化数据测试工具–;这会像预期的那样工作吗?,seo,schema.org,json-ld,Seo,Schema.org,Json Ld,我正在使用JSON-LD用模式数据标记一个站点。在做了家庭作业之后,我了解到可以用它来引用模式的其他片段。例如编写WebPageschema,该isPartOfmyWebSiteschema 接下来,我为我的网站创建了基本模式组织,网站和网页,其中网站链接到网页和组织 当我将我的标记插入谷歌的结构化数据测试工具时,所有标记都会被汇总到网站模式中。但是,当我删除@id引用时,它将显示为三种不同类型的模式 带有@id 无@id 当然,我希望我的模式数据被解释为一系列关系,这就是重点。但我还想确保

我正在使用JSON-LD用模式数据标记一个站点。在做了家庭作业之后,我了解到可以用它来引用模式的其他片段。例如编写
WebPage
schema,该
isPartOf
my
WebSite
schema

接下来,我为我的网站创建了基本模式<代码>组织,
网站
网页
,其中
网站
链接到
网页
组织

当我将我的标记插入谷歌的结构化数据测试工具时,所有标记都会被汇总到
网站
模式中。但是,当我删除
@id
引用时,它将显示为三种不同类型的模式

带有
@id

@id

当然,我希望我的模式数据被解释为一系列关系,这就是重点。但我还想确保每个单独的模式都被解析

你觉得这样行吗


组织机构
{
“@context”:”http://schema.org",
“@type”:“组织”,
“@id”:”https://example.com/#organization",
“名称”:“组织机构”,
“法律名称”:“组织公司”,
“描述”:“我们摇滚”,
“徽标”:https://www.example.com/images/logo.jpg",
“url”:”https://www.example.com",
“电话”:“+1-111-111-1111”,
“sameAs”:[”https://twitter.com/example", "https://www.linkedin.com/company/example/", "https://plus.google.com/u/0/+例如“,”https://www.facebook.com/example", "https://www.youtube.com/user/example", "https://www.instagram.com/example/", "https://en.wikipedia.org/wiki/example", "https://www.wikidata.org/wiki/Q1", "https://www.crunchbase.com/organization/example"],
“地址”:
{
“@type”:“PostalAddress”,
“街道地址”:“111街”,
“地址位置”:“无处”,
“postalCode”:“11111”,
“地址国家”:“美国”
}
}
网站
{
“@context”:”http://schema.org",
“@type”:“网站”,
“@id”:”https://example.com/#website",
“名称”:“网站”,
“alternateName”:“Web”,
“url”:”https://www.example.com",
“hasPart”:
{
“@type”:“网页”,
“@id”:”https://www.example.com/#webpage"
}
}
网页
{
“@context”:”http://schema.org",
“@type”:“网页”,
“@id”:”https://www.example.com/#webpage",
“名称”:“网页”,
“描述”:“告诉过你,我们摇滚”,
“url”:”https://www.example.com/",
“isPartOf”:
{
“@id”:”https://www.example.com/#website"
},
“潜在作用”:
{
“@type”:“SubscribeAction”,
“代理人”:
{
“@type”:“组织”,
“@id”:”https://example.com/#organization"
},
“对象”:
{
“@type”:“产品”,
“名称”:“邮件列表”
}
}
}
当然,我希望我的模式数据被解释为一系列关系,这就是重点

没错。使用
@id
引用是实现这一点的一种方法,嵌套完整项是另一种方法。结果将是相同的,即它们是等效的

但我还想确保每个单独的模式都被解析

如果你知道某个消费者只识别顶级项目,你可能会想进行调整。通常可以在顶级项目上选择一个项目(按属性或反向属性,如果存在的话),但是像谷歌的SDTT这样的工具当然可能会以不同的方式显示解析结果

但是,除非你认识这样一个消费者,否则我不认为省略对项目值使用属性是明智的。你会错过最重要的语义信号:关系


理论上,提供/property应该足以让面向页面的消费者了解该页面上的主要实体是什么。在实践中,当然,消费者可能不会识别/支持该属性。但我不认为消费者如何更容易处理几个顶级项目,因为它们之间的关系不清楚彼此站在一起(因为没有指定关系),因此消费者应该有兴趣支持在Web上提供Schema.org结构化数据的常见方式。

我很感谢您的回答(以及编辑)。为了澄清,我假设你所说的消费者是指搜索引擎?@Blanknewkid:consumers=任何使用结构化数据的人/任何东西。这些主要是搜索引擎,但也有其他服务,以及访问者运行的工具(浏览器加载项、语义Web/链接数据客户端等)@unor谢谢你的良好基础知识,我正在学习模式。谷歌能否使用“@id”在同一网站的其他页面上引用模式,比如在主页上?(据我所知,谷歌更喜欢主页上的“网站”,也可能是主页上的“组织”)@伊森:是的,没错。@伊森:据我所知,谷歌不会记录他们是否遵循
@id
URI。还要注意的是,这些URI不一定是可解析的——在这个URI后面提供文档是一个很好的做法,但这不是必需的。当你有@id时,谷歌SDTT还会合并它们吗?我试过你的代码片段ab忽略我的上一个查询,它可以与sdtt一起工作(这是我尝试的一些MOD的错误)。