Schema.org WebPage-Struktur für einzelne Seiten

7

Ich erstelle mit WordPress eine Single-Page-Portfolio-Site für einen Client, die in Abschnitte unterteilt ist, bei denen es sich traditionell um separate Seiten handelt, z. B. - about, Portfolio, Contact.

Kann ich mehrere schema.org-Webseiten in einer globalen Datei WebPagewie dem folgenden Markup verschachteln :

<body>
    <main itemscope itemtype="https://schema.org/WebPage">

        <article itemscope itemtype="https://schema.org/AboutPage">
        </article>

        <article itemscope itemtype="https://schema.org/CollectionPage">
        </article>

        <article itemscope itemtype="https://schema.org/ContactPage">
        </article>

    </main>
</body>
Martin Sotirov
quelle

Antworten:

4

Schema unterstützt verschachtelten Childs und Eltern , wenn sie miteinander verbunden sind, und in diesem Fall AboutPage, CollectionPageund ContactPageist alle Kinder von WebPage , die gültig ist. Da die Seite "AboutPage", "CollectionPage" und "Contact" mit CreativeWork gepaart ist, werden viele Kinder nicht unterstützt. Dies bedeutet, dass Sie ihre Eltern innerhalb von verwenden müssen und daher die Menge an Code, die Sie verwenden müssen, erheblich erhöhen müssen.

ContactPageUnterstützt beispielsweise kein Kind von telephoneoder addressund Sie müssen ein Elternteil in ContactPage wie LocalBusiness verwenden. Ich möchte auch darauf hinweisen, dass Sie einfach keine HTML5-Tags verwenden, da Ihre Website auf dem neuesten Stand sein soll. In 90% der Fälle sollten Sie sich weiterhin für die Verwendung von DIV über Abschnitt, Artikel usw. entscheiden. Aus mehreren Gründen und ich empfehle Ihnen, HTML5 Doctor zu überprüfen .

Im Folgenden finden Sie einen Teil des Codes mit einigen Änderungen und den Elementen, damit Sie verstehen, welche Eltern Sie verwenden müssen, wenn Sie keine Kinder unterstützt haben.

<!doctype html>
<html>
<head>
<title>Untitled Document</title>
</head>
<body itemscope itemtype="https://schema.org/WebPage">
    <div itemscope itemtype="https://schema.org/AboutPage">About</div>
    <div itemscope itemtype="https://schema.org/CollectionPage">Collection</div>
    <div itemscope itemtype="https://schema.org/ContactPage">
        <div itemscope itemtype="http://schema.org/LocalBusiness">
            <h1><span itemprop="name">Beachwalk Beachwear & Giftware</span></h1>
            <span itemprop="description"> A superb collection of fine gifts and clothing to accent your stay in Mexico Beach.</span>
            <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
                <span itemprop="streetAddress">3102 Highway 98</span>
                <span itemprop="addressLocality">Mexico Beach</span>,
                <span itemprop="addressRegion">FL</span>
            </div>
        Phone: <span itemprop="telephone">850-648-4200</span>
        </div>
        <span itemprop="description">This is an example description.</span>
    </div> 
</body>
</html>

Klicken Sie hier, um diesen Code im Rich Snippets Tool Tester von Google anzuzeigen , da Sie sehen können, dass Google Adressdetails separat liest und nicht direkt mit ContactPage verknüpft ist. Das Schema befindet sich noch in der Entwicklung und die Dinge sind noch lange nicht endgültig und werden nicht hinzugefügt. Sie müssen das Schema nicht für jedes einzelne Element auf Ihrer Seite verwenden.

Simon Hayter
quelle
Die Mikrodaten im Beispiel von OP sind nicht verschachtelt. die drei Elemente AboutPage, CollectionPageund ContactPagehaben keine Beziehung zu dem WebPagePunkt, da es keine Eigenschaft verwendet wird , ist sie zu beziehen. (Der HTML-
Code
Sie unterwerfen tatsächlich Kinder von Dingen und kreativer Arbeit, gehen Sie zu: schema.org/AboutPage, wo es heißt Thing > CreativeWork > WebPage > AboutPageundWeb page type: About page.
Simon Hayter
Ich bezog mich auch auf das Verschachteln von Elementtypen, aber mehr noch, für itemprop ist das entsprechende übergeordnete Element erforderlich.
Simon Hayter
1
Dies ist die Typhierarchie des Schema.org-Vokabulars. AboutPageDies bedeutet, dass bei Verwendung dieses Elements auch ein WebPageund auch ein CreativeWorkund auch ein ist Thing. Dies hat jedoch keinen Einfluss darauf, welche Typen Sie auf Ihrer Seite verschachteln können. Sie verschachteln nur über Eigenschaften, und wenn beispielsweise eine bestimmte Eigenschaft definiert ist accountablePerson, Personkann a ein untergeordnetes Element von sein AboutPage.
Unor
Dies ist keine ordnungsgemäße Platzierung von Schemadeklarationen. Recht?
Ronnie Royston
1

Diese Verschachtelung hat keine Auswirkung.

Für Mikrodaten wären diese beiden Dokumente gleichwertig:

<div itemscope itemtype="http://schema.org/WebPage">
  <div itemscope itemtype="http://schema.org/WebPage">
  </div>
</div>
<div itemscope itemtype="http://schema.org/WebPage">
</div>

<div itemscope itemtype="http://schema.org/WebPage">
</div>

Es spielt keine Rolle, ob eines dieser Elemente das Kind eines anderen ist, es sei denn, Sie verwenden das itempropAttribut, um die Elemente zu verknüpfen.


Eine einseitige Website ist immer noch eine Website , oder (… vorausgesetzt, jede "Seite" hat eine eigene URL)? Sie können also WebSitemehrere WebPageElemente (und Untertypen) verwenden. Um diese Elemente mit dem zu verknüpfen WebSite, können Sie die hasPartEigenschaft verwenden.

Zum Beispiel:

<body itemscope itemtype="http://schema.org/WebSite">

  <article itemprop="hasPart" itemscope itemtype="http://schema.org/WebPage"></article>

  <article itemprop="hasPart" itemscope itemtype="http://schema.org/AboutPage"></article>

</body>
unor
quelle