Schema.orgマークアップをJSON-LDとして使用するためのコードの理想的な場所はどこですか?


9

JSON-LDを使用するSchema.orgマークアップを配置するのに最適な場所はどこですか?一部は内部を推奨します<head>が、スクリプトもインラインで動作します。MVCでは、それらをコントローラーと同じスコープに配置する方が簡単です。つまり、要素の近くにインラインで配置します。しかし、JSON-LDは、の1つの巨大なスクリプト/スタックとして「よりよく機能する」場合があり<head>ます。私が思う理想的な場所がわからないだけです。

例はパンくずです-クラムのマークアップの前にJSON-LDスクリプトを置くだけですか、それともモデルをロードする問題をすべて(もう一度)作成して、を作成する領域で定義する必要があり<head>ますか?パフォーマンスに影響があるようですが、仕様に見合う価値がある場合は、実行する必要があります。

JSON-LDでの組織の例を以下に示します(これは<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>

回答:


8

JSON-LD は関係ありません。これは、ドキュメント内のどこからデータが抽出されても、データは同じであるため、理にかなっています。

要素はドキュメントのメタデータを含むように定義されているheadため、HTMLの観点から、JSON-LDがWebページに関するものであるか、Webページが表すものに関するものである場合にのみ含める必要があります。しかし、何かがメタデータとしてカウントされるかどうかを定義するのは必ずしも容易ではありません。これについてはあまり心配しません。head


<head>の考え方について理にかなっています-結局、組織をそこに任せてしまう可能性があります。
dhaupin 2015

head、ページのレンダリングをブロックする追加のコードはありませんか?私が前にいることを思っていた</body>より良いためのことができること
ジョアン・ピメンテルフェレイラ

1
@JoãoPimentelFerreira:スクリプトではなくデータブロックであるため、ブロックされないことを期待します(どちらもscript要素を使用しますが、技術的に異なるケースです)。ブラウザーはデータブロックを完全に無視できます。しかし、私はブラウザが実際に何をしているのかわかりません。
2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.