Ich bin gespannt auf die bewährte Methode zum Anwenden von JSON-LD auf eine Website für schema.org.
Wenn ich eine Seite mit einem habe Article
und diese auch WebSite
auf meiner Seite definieren möchte , hätte ich Folgendes:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "http://www.example.com/",
"potentialAction": {
"@type": "SearchAction",
"target": "http://www.example.com/search?&q={query}",
"query-input": "required"
}
}
</script>
<!- … -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Article",
"author": "John Doe",
"interactionCount": [
"UserTweets:1203",
"UserComments:78"
],
"name": "How to Tie a Reef Knot"
}
</script>
Ist das richtig oder falsch? Gibt es einen Vorteil oder eine Notwendigkeit, diese in demselben Skript oder Array von Elementen zusammenzuführen?
html
seo
schema.org
json-ld
Stu Furlong
quelle
quelle
Antworten:
Es ist gültig. Sie können beliebig viele Datenblöcke (=
script
Elemente) haben.Ein möglicher Vorteil der Verwendung nur eines
script
Elements: Es erleichtert die Beziehung zwischen mehreren Elementen (z. B. falls Sie sich für die Verwendung vonhasPart
oder entscheidenmainEntity
), da Sie die Elemente einfach verschachteln müssen.Das Herstellen dieser Beziehungen ist natürlich auch möglich, wenn separate Datenblöcke verwendet werden, indem auf die URI des Elements mit verwiesen wird
@id
( danke, @ Gregg Kellogg ).(Als Referenz, das Hinzufügen von zwei oder mehr Elementen der obersten Ebene in einem einzigen
script
möglich mit@graph
.)quelle
@graph
oder eine Reihe von Objekten? Die relevante Diskussion wurde 2012 geführt ( github.com/json-ld/json-ld.org/issues/96 ), und der Konsens aus meiner Lektüre war@graph
für mehrere Objekte der obersten Ebene. Danke im Voraus.@graph
(oder einen Alias von@graph
), um die Verwendung eines einzelnen Objekts der obersten Ebene mit gemeinsam genutztem Kontext zu ermöglichen. Beide sind jedoch durchaus legitim. Beachten Sie, dass ein anderes Muster darin besteht, eine umgekehrte Eigenschaft mit einem gemeinsamen Objektwert zu verwenden, der als Objekt der obersten Ebene verwendet wird und mit allen Ressourcen verknüpft ist, die darauf verweisen. Siehe Reverse-Eigenschaften .Es hat keinen Vorteil, einzelne oder mehrere Datenblöcke zu haben, außer Einschränkungen hinsichtlich des Speicherns und Verwaltens von Schemadaten auf Ihrer Website.
Beispielsweise benötigen Sie sie möglicherweise separat, wenn verschiedene Komponenten auf Ihrer Website für die unabhängige Generierung jedes Datenblocks verantwortlich sind. Wenn Ihre Website in der Lage ist, alle Schemas für eine Seite an einem Ort zu verwalten, ist es möglicherweise einfacher, einen einzelnen Datenblock zu verwalten und als einzelnes
script
Element zu rendern .Sie können diese zu einem einzigen Skript kombinieren, indem Sie jedes Schema wie folgt als Array auflisten:
<script type="application/ld+json"> [ { "@context": "http://schema.org", "@type": "WebSite", "url": "http://www.example.com/", "potentialAction": { "@type": "SearchAction", "target": "http://www.example.com/search?&q={query}", "query-input": "required" } }, { "@context": "http://schema.org", "@type": "Article", "author": "John Doe", "interactionCount": [ "UserTweets:1203", "UserComments:78" ], "name": "How to Tie a Reef Knot" } ] </script>
quelle