代码中使用Schema.org标记作为JSON-LD的理想位置在哪里?


9

放置使用JSON-LD的Schema.org标记的最佳位置在哪里?一些建议在里面,<head>但是脚本也可以内联。在MVC中,将它们放置在与控制器相同的作用域中会更容易,因此意味着在其元素附近内联。但是JSON-LD作为“脚本”中的一个巨大脚本/堆栈可能会“更好地工作” <head>。我只是不确定我认为的理想位置。

例如面包屑-我应该将JSON-LD脚本放在面包屑的标记之前,还是应该解决所有麻烦(再次)加载模型以在创建区域中定义它们<head>?似乎会影响性能,但是如果它值得规格支持,则需要完成。

这是JSON-LD中的Organization示例(<head>已经存在):

<script type="application/ld+json"> {
"@context" : "http://schema.org",
"@type" : "Organization",
"name" : "A Huge Corporation",
"url" : "http://www.example.com",
"logo" : "http://www.example.com/huge-corporation.png",
"founder" : "Humanz",
"foundingDate" : "1268",
"sameAs" : "http://plus.google.com/111111111111111111111",
"contactPoint" : {
    "@type" : "ContactPoint",
    "contactType" : "Customer Service",
    "telephone" : "+1-888-888-8888",
    "faxNumber" : "+1-777-777-7777",
    "contactOption" : "TollFree",
    "areaServed" : "US",
    "availableLanguage" : "English",
    "email" : "dude@example.com"
},
"hasPos" : {
    "@type" : "Place",
    "name" : "The Branch or Store",
    "photo" : "http://www.example.com/store.png",
    "hasMap" : {
        "@type" : "Map",
        "url" : "https://maps.google.com/maps?q=feed_me_a_map"
    },
    "address" : {
        "@type" : "PostalAddress",
        "name" : "The Branch or Store",
        "streetAddress" : "1547 Main Street",
        "addressLocality" : "Beverly Hills",
        "addressRegion" : "CA",
        "postalCode" : "90210",
        "addressCountry" : "United States"
    }
}}
</script>

这是面包屑片段(当前位于另一个作用域中,在页面下方,靠近视觉呈现的碎屑)。如果这项工作值得的话,将这个想法付诸实践会很好:

<script type="application/ld+json"> {
"@context" : "http://schema.org",
"@type" : "Breadcrumblist",
"itemListElement" : [
    {
    "@type" : "ListItem",
    "position" : 1,
    "item" : {
        "@id" : "http:www.example.com",
        "name" : "Home"
        }
    },
    {
    "@type" : "ListItem",
    "position" : 2,
    "item" : {
        "@id" : "http:www.example.com/widgets",
        "name" : "Widgets"
        }
    },
    {
    "@type" : "ListItem",
    "position" : 3,
    "item" : {
        "@id" : "http:www.example.com/widgets/green",
        "name" : "Green Widgets"
        }
    }
]}
</script>

Answers:


8

JSON-LD 不在乎。这是有道理的,因为无论文档从何处提取数据,数据都是相同的。

从HTML的角度来看,仅head当JSON-LD是关于您的网页或您的网页所代表的内容时,才应将其包括在内,因为head元素被定义为包含文档的元数据。但是定义某项是否算作元数据并不总是那么容易。我对此不会太担心。


理解<head>的想法-最终可能会使组织呆在那里……。我认为它在每个页面上都可以算作“元”,并且可以说一个可识别的“标签”。
dhaupin 2015年

并且在中head,是否没有其他代码阻止页面渲染?我想知道,之前</body>可能是因为更好的是
若奥·皮门特尔·费雷拉

1
@JoãoPimentelFerreira:我希望它不会被阻塞,因为它是一个数据块,而不是脚本(两者都使用该script元素,但是在技术上是不同的情况)。浏览器可以完全忽略任何数据块。但是我不知道浏览器实际上在做什么。
UNOR
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.