So zeichnen Sie Ihre Website mit Microdata nach schema.org aus
Microdata ist Teil des HTML-Standards der WHATWG (Web Hypertext Application Technology Working Group). Mit dieser Syntax zeichnen Sie strukturierte Daten direkt im HTML-Code aus: Zusätzliche Attribute machen beispielsweise erkennbar, welcher Text einen Unternehmensnamen bezeichnet und welches Bild das zugehörige Logo ist. Als Vokabular für diese maschinenlesbaren Zusammenhänge dient in diesem Tutorial Schema.org. Suchmaschinen können diese Angaben nutzen, um Inhalte besser zu verstehen und Suchergebnisse mit Zusatzinformationen anzureichern. Eine erweiterte Darstellung ist dadurch jedoch nicht garantiert.
Zusammenfassung
- Microdata ergänzt HTML-Elemente um strukturierte Daten nach Schema.org.
- Die zentralen Attribute sind
itemscope,itemtypeunditemprop. - Google unterstützt Microdata weiterhin, empfiehlt für neue Implementierungen aber in der Regel JSON-LD.
- Logos, Kontaktdaten, Angebote, Bewertungen und Breadcrumbs lassen sich mit Microdata beschreiben.
- Schema.org-konformes Markup allein garantiert keine Rich Results; prüfen Sie zusätzlich die jeweiligen Google-Vorgaben.
Microdata im Vergleich zu anderen Datenformaten
Als separates Modul für HTML5 wurde Microdata ursprünglich als Alternative zum damaligen Standard RDFa eingeführt, dem vom W3C empfohlenen Format zur Beschreibung von Metadaten in HTML und XHTML. Ziel war eine vereinfachte Syntax bei vergleichbarer Funktionalität. An Bedeutung gewann Microdata durch das Projekt schema.org – einer gemeinsamen Initiative der Suchmaschinenanbieter Google, Bing, Yahoo und Yandex, die ausgehend vom Microdata-Markup ein einheitliches Vokabular für die semantische Annotation zur Verfügung stellt.
Schema.org stellt das Vokabular bereit; Microdata, RDFa und JSON-LD sind unterschiedliche Formate, um dieses Vokabular einzubinden. Microdata und RDFa verwenden dafür Attribute an HTML-Elementen. JSON-LD hält die strukturierten Daten dagegen in einem separaten <script type="application/ld+json">-Block auf derselben Seite.
Google unterstützt alle drei Formate und empfiehlt in der Regel JSON-LD, weil es sich besonders bei umfangreichen Websites einfacher implementieren und pflegen lässt. Maßgeblich sind jeweils die Anforderungen des gewünschten Suchergebnis-Features; die aktuelle Einordnung finden Sie in Googles Einführung zu strukturierten Daten. Microdata bleibt eine unterstützte Option, etwa wenn Sie bestehende HTML-Templates direkt auszeichnen möchten. Dieses Tutorial zeigt Ihnen die dafür nötige Syntax und typische Anwendungsfälle.
Die Microdata-Syntax
Microdata fasst Eigenschaften als Namen-Wert-Paare zu einem Item zusammen. Die Auszeichnung lässt sich in drei Schritten erklären: Zuerst markieren Sie ein HTML-Element als Item. Anschließend weisen Sie ihm einen Typ aus dem Schema.org-Vokabular zu. Danach ergänzen Sie die zugehörigen Eigenschaften (Properties). Dafür verwenden Sie die HTML-Attribute itemscope, itemtype und itemprop:
itemscopeeröffnet ein neues Item. Das boolesche Attribut benötigt keinen Wert und ist nicht auf<div>beschränkt.itemtypelegt den Typ des Items fest, beispielsweisehttps://schema.org/Organization. Es steht am selben HTML-Element wieitemscope.itempropbenennt eine Eigenschaft des Items, etwanameoderlogo. Welche Eigenschaften und Werttypen passen, entnehmen Sie der Schema.org-Website.
Die Einbindung der Attribute in den HTML-Code erfolgt beispielsweise nach folgendem Grundschema:
Grundschema des Microdata-Markups für ein Item:
<div itemscope itemtype="https://schema.org/Organization">
<span itemprop="name">Name des Unternehmens</span>
</div>htmlDas Microdata-Markup in der Anwendung
Microdata-Attribute lassen sich an vorhandenen HTML-Elementen ergänzen. Sie müssen dafür nicht alle Inhalte in zusätzliche <div>- oder <span>-Elemente verpacken: Auch Überschriften, Links oder Bilder können die passenden Attribute tragen. Die Regeln für zulässige HTML-Verschachtelungen gelten weiterhin.
| HTML-Element | Verwendung im Microdata-Markup |
|---|---|
<div> oder <span> |
Gruppiert Inhalte oder markiert Text als Eigenschaft; ohne eigenes itemscope wird der Textinhalt als Wert ausgelesen. |
<a> |
Liefert bei einer URL-Eigenschaft den Wert aus href. |
<img> |
Liefert die Bild-URL aus src, nicht aus dem Alt-Text. |
<meta> |
Liefert den maschinenlesbaren Wert aus content. |
<time> |
Kann ein Datum mit datetime maschinenlesbar angeben. |
Diese Zuordnung der Werte beschreibt der HTML-Standard der WHATWG. Microdata ersetzt dabei weder verständliche Bild-Alt-Texte noch eine zugängliche HTML-Struktur.
Grafiken mit Microdata auszeichnen
Einen typischen Anwendungsbereich bilden eingebettete Firmenlogos. Mit Microdata geben Sie ausdrücklich an, dass eine Grafik das Logo einer bestimmten Organisation ist:
Markup eines Unternehmenslogos:
<div itemscope itemtype="https://schema.org/Organization">
<a itemprop="url" href="https://www.beispielfirma.de/">Startseite</a>
<img itemprop="logo" src="https://www.beispielfirma.de/logo.png" alt="Logo des Unternehmens" />
</div>htmlDas <div>-Element umschließt ein Item vom Typ Organization. Die Eigenschaft url erhält ihren Wert aus dem href des Links, logo aus dem src des Bildes. So werden Organisation, Homepage und Logo ausdrücklich miteinander verknüpft. Diese Angaben können Suchmaschinen beim Verständnis einer Organisation unterstützen; sie garantieren jedoch keinen Eintrag im Knowledge Graph.
Im Falle eines Markenlogos käme folgendes schema.org-Markup zum Einsatz:
Markup eines Markenlogos:
<div itemscope itemtype="https://schema.org/Brand">
<span itemprop="name">Name der Marke</span>
<img itemprop="logo" src="https://www.beispielmarke.de/logo.png" alt="Logo der Marke" />
</div>htmlDas Element innerhalb des itemscopes ist gemäß schema.org als „Brand“ gekennzeichnet. Als Eigenschaften werden der Name der Marke und das Logo inklusive Speicherort angegeben.
Kontaktdaten mit Microdata auszeichnen
Auch Kontaktdaten lassen sich einer Organisation zuordnen. Das folgende fiktive Beispiel zeigt insbesondere, wie Sie eine Adresse als eigenes Item innerhalb der Organisation verschachteln. Die Angaben sind Platzhalter, keine realen Unternehmenskontaktdaten:
Markup von Unternehmenskontaktdaten:
<div itemscope itemtype="https://schema.org/Organization">
<span itemprop="name">Beispielfirma</span>
Kontaktdaten:
<div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
<span itemprop="streetAddress">Beispielstraße 1</span>
<span itemprop="postalCode">12345</span>
<span itemprop="addressLocality">Beispielstadt</span>
<span itemprop="addressCountry">DE</span>
</div>
E-Mail: <span itemprop="email">kontakt@example.com</span>
</div>htmlDas äußere Item hat den Typ Organization und die Eigenschaften name, address und email. Der Wert einer Eigenschaft kann selbst ein Item sein: address wird hier durch ein zweites Element mit eigenem itemscope und dem Typ PostalAddress beschrieben. Die Eigenschaften streetAddress, postalCode, addressLocality und addressCountry gehören dadurch zur Adresse. Weitere Kontaktdaten können Sie beispielsweise mit telephone und faxNumber ergänzen.
Webseiteninhalte mit Microdata für Rich Snippets auszeichnen
Strukturierte Daten können eine Voraussetzung für Rich Results sein, etwa zu Produkten, Rezepten, Bewertungen, Veranstaltungen, Software, Videos oder Artikeln. Welche Typen und Eigenschaften Google für eine bestimmte Darstellung unterstützt, richtet sich nach der jeweiligen Feature-Dokumentation, nicht allein nach dem Schema.org-Vokabular. Auch korrektes Markup garantiert keine erweiterte Anzeige.
Das folgende fiktive Hotelangebot veranschaulicht die Microdata-Syntax und die Verschachtelung von Items. Es ist keine vollständige Implementierung eines Google-Suchergebnis-Features. Zunächst zeichnen Sie Name, Beschreibung und Bild des Hotels aus:
Markup der Grundinformationen für Hotel-Angebote:
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">Name des Hotels</span>
<span itemprop="description">Beschreibung des Hotels</span>
<img itemprop="image" src="https://example.com/images/hotel.jpg" alt="Außenansicht des Hotels" />
</div>htmlDas Attribut itemtype in Zeile 01 verweist auf das vordefinierte Schema Hotel. Diesem werden in den Zeilen 02 bis 04 die Eigenschaften „name“, „description“ und „image“ mit entsprechenden Werten zugewiesen. Diesem Grundgerüst können beliebig viele weitere Informationen als itemprops oder untergeordnete itemscopes hinzugefügt werden. Dabei ist darauf zu achten, dass untergeordnete div-Elemente innerhalb des div-Tags des übergeordneten itemscopes platziert werden. Folgender Code erweitert die semantische Annotation für Hotel-Angebote um eine Preisangabe.
Markup für Hotelpreise
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
<span itemprop="price">400</span> Euro
<meta itemprop="priceCurrency" content="EUR" />
</div>htmlDieses Fragment wird innerhalb des Hotel-Items eingefügt: makesOffer verweist auf ein Angebot vom Typ Offer. Preis und Währung werden getrennt angegeben: price enthält den Zahlenwert 400, priceCurrency den Währungscode EUR. Die sichtbare Angabe bleibt „400 Euro“. In einer echten Angebotsseite muss außerdem eindeutig sein, auf welche Leistung sich der Preis bezieht. Weitere passende Eigenschaften des Hotels sind paymentAccepted für Zahlungsarten, hasMap für einen Kartenlink und review für eine Bewertung. In das Grundgerüst integriert ergibt sich folgendes schematisches Markup:
Ausführliches Markup für ein Hotel-Angebot
<div itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">Name des Hotels</span>
<span itemprop="description">Beschreibung des Hotels</span>
<img itemprop="image" src="https://example.com/images/hotel.jpg" alt="Außenansicht des Hotels" />
<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
<span itemprop="price">400</span> Euro
<meta itemprop="priceCurrency" content="EUR" />
</div>
<span itemprop="paymentAccepted">Überweisung, Kreditkarte etc.</span>
<a itemprop="hasMap" href="https://example.com/karte/">Standort auf der Karte</a>
<div itemprop="review" itemscope itemtype="https://schema.org/Review">
<span itemprop="name">Titel der Bewertung</span>
<span itemprop="author" itemscope itemtype="https://schema.org/Person">
<span itemprop="name">Name der bewertenden Person</span>
</span>
<span itemprop="reviewBody">Bewertungstext</span>
<time itemprop="datePublished" datetime="2026-10-01">1. Oktober 2026</time>
</div>
</div>htmlDas Hotel bildet das übergeordnete Item. Angebot und Bewertung sind als eigene Items darin verschachtelt; der Autor der Bewertung ist wiederum eine Person mit einer name-Eigenschaft. Das Datum ist ein frei gewählter Beispielwert. Ersetzen Sie sämtliche Platzhalter durch die tatsächlich auf Ihrer Seite gezeigten Inhalte. Die aktuellen Eigenschaften finden Sie in der Schema.org-Referenz für Hotels.
Auch eine Sternebewertung lässt sich als eigenes Rating innerhalb eines Erfahrungsberichts beschreiben. Das folgende Beispiel zeigt nur das Prinzip, nicht sämtliche Anforderungen für Google-Rich-Results:
Markup für einen Erfahrungsbericht mit Bewertung:
<div itemscope itemtype="https://schema.org/Review">
<div itemprop="itemReviewed" itemscope itemtype="https://schema.org/Hotel">
<span itemprop="name">Name des Hotels</span>
</div>
<span itemprop="reviewRating" itemscope itemtype="https://schema.org/Rating">
<span itemprop="ratingValue">4</span>
</span> Sterne -
<b>"<span itemprop="name">Titel der Bewertung</span>"</b>
<span itemprop="author" itemscope itemtype="https://schema.org/Person">
<span itemprop="name">Autor</span>
</span>
<span itemprop="reviewBody">Bewertungstext</span>
</div>htmlFür Bewertungen von LocalBusiness und Organization einschließlich ihrer Untertypen gelten besondere Regeln: Kontrolliert das bewertete Unternehmen die Bewertungen über sich selbst auf seiner Website, sind diese Seiten nicht für Googles Bewertungssterne-Feature zugelassen. Das gilt auch für eingebundene Bewertungs-Widgets Dritter. Ein Hotel kann sich daher nicht einfach durch Kundenbewertungen auf der eigenen Website Bewertungssterne in der Google-Suche verschaffen. Maßgeblich sind die Google-Richtlinien für Review-Snippets.
Breadcrumbs mit Microdata auszeichnen
Breadcrumbs („Brotkrumen“) beschreiben die Position einer Seite innerhalb der Website-Hierarchie. Die sichtbare Navigation hilft Besucherinnen und Besuchern bei der Orientierung; das zugehörige Markup macht den Pfad maschinenlesbar. Google dokumentiert die Breadcrumb-Darstellung in der Suche derzeit für Desktop-Ergebnisse. Ein typisches Beispiel für einen Breadcrumb-Trail in HTML zeigt folgender Code:
HTML-Markup eines Breadcrumb-Trails:
<ol>
<li>
<a href="https://www.anbieter.de/hotels/">Hotels</a>
</li>
<li>
<a href="https://www.anbieter.de/hotels/deutschland/">Hotels in Deutschland</a>
</li>
<li>
<a href="https://www.anbieter.de/hotels/deutschland/berlin/">Hotels in Berlin</a>
</li>
</ol>htmlDas Beispiel zeigt ein Listenelement (ordered list, ol), das die Links verschiedener Unterseiten einer Website beinhaltet. Um diese Navigationsstruktur für Programme wie Webbrowser oder Suchmaschinen-Crawler als Breadcrumb-Trail auszuzeichnen, bietet sich folgendes Microdata-Markup nach Schema.org an:
Microdata-Markup für Breadcrumbs nach Schema-org:
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="https://www.anbieter.de/hotels/">
<span itemprop="name">Hotels</span></a>
<meta itemprop="position" content="1" />
</li>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="https://www.anbieter.de/hotels/deutschland/">
<span itemprop="name">Hotels in Deutschland</span></a>
<meta itemprop="position" content="2" />
</li>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="https://www.anbieter.de/hotels/deutschland/berlin/">
<span itemprop="name">Hotels in Berlin</span></a>
<meta itemprop="position" content="3" />
</li>
</ol>htmlDas Listenelement <ol> wird mit itemscope als Item definiert und per itemtype dem Typ BreadcrumbList zugeordnet. Jede „Brotkrume“ ist ein eigenes ListItem, das über itemListElement zur Liste gehört. name, item und position beschreiben den Namen, die Ziel-URL und die Position im Pfad. Für Googles Breadcrumb-Feature sind mindestens zwei Listeneinträge nötig; beim letzten Eintrag darf die Ziel-URL entfallen. Weitere Anforderungen erläutert die Google-Dokumentation zu Breadcrumbs.
Microdata-Markup prüfen
Prüfen Sie vor der Veröffentlichung sowohl die Schema.org-Auszeichnung als auch die Anforderungen des gewünschten Google-Features:
- Schema prüfen: Geben Sie Ihren HTML-Code oder die Seiten-URL in den Schema Markup Validator ein. Kontrollieren Sie, ob die vorgesehenen Items, Eigenschaften und Verschachtelungen erkannt werden.
- Google-Anforderungen testen: Nutzen Sie den Google Rich Results Test, um unterstützte Rich-Result-Typen und gemeldete Fehler zu prüfen. Nicht jeder gültige Schema.org-Typ entspricht einem Google-Rich-Result-Feature.
- Inhalte abgleichen: Stellen Sie sicher, dass die strukturierten Daten die tatsächlich gezeigten Inhalte wiedergeben. Erfinden Sie keine Bewertungen und zeichnen Sie keine anderen Preise aus als die auf der Seite angegebenen.
- Nach der Veröffentlichung kontrollieren: Prüfen Sie die URL in der Google Search Console und beobachten Sie die verfügbaren Berichte zu Rich Results. Auch ein fehlerfreier Test garantiert keine Anzeige in der Suche.




