WebサイトのスキーマにJSON-LDを使用したいと考えています。 (スキーマはschema.orgデータを意味します。)データの書き方は知っていますが、私のデータは、このデータを挿入するためのコード内に望ましい場所がありますか?言い換えれば、JSON-LDは常にhead
、body
などに含まれるべきですか?
Schema.org、JSON-LD、およびおそらく抽出されたRDFの観点から、それは問題ではないはずです。ドキュメント内のどこから抽出しても、データは同じです。
HTML5の観点から:
ページに関するデータ(またはこのページの内容)の場合は、script
要素にhead
要素を head
要素 として配置できます
[…]は、ドキュメントのメタデータのコレクションを表します
ただし、代わりにbody
を代わりに使用することは間違いありません。あなたのページやそれが表すものではないデータにhead
を使用すべきではないということです。
データはどこにでも配置できます。 Googleのドキュメント から:
以下の例に示すように、
<script type="application/ld+json">
...</script>
タグで囲まれたデータは、そのイベントを表示するページの<HEAD>
または<BODY>
領域のいずれかに配置できます。
AJAXを使用して動的にフェッチされたデータ を使用することもできます。
最初のページのロード時に実行されるJavaScriptによって挿入されたJSON-LDマークアップを認識できます。
更新(コメントの Antony で示されているとおり)
最新のドキュメント 言います:
[JSON-LDはa]ページ内のタグに埋め込まれたJavaScript表記head or body ... Googleは、JavaScriptなどによってページのコンテンツに動的に挿入されたJSON-LDデータを読み取ることができますコンテンツ管理システムのコードまたは埋め込みウィジェット。
<body>
に挿入することを選択した場合、次のようにする必要があります。
<p class="companyName" vocab="http://schema.org/" resource="#manu" typeof="Organization">
<span property="name">ShopTech Media</span>
<img property="logo" src="https://yoursite.com/logo.png" />
<a property="url" href="http://www.yoursite.com">Home page</a>
</p>
<p typeof="contactPoint">
<span property="contactType">Customer Service:</span>
<span property="telephone">+45-xxxxxxx</span>
</p>
以下は、<head>
タグに構造化データを挿入するスクリプトコードです
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"url": "http://www.shoptech.media",
"logo": "https://shoptech.media/wp-content/uploads/2019/08/cropped-logo-sm.png",
"contactPoint": [{
"@type": "ContactPoint",
"telephone": "+45-65711114",
"contactType": "customer service"
}]
}
</script>
一般的な構造化データのガイドライン のドキュメントを確認してください