Die Schicht, die lautlos bricht: wie wir unser Schema testen.
Die eine Schicht, die kein Pixel der Seite verändert, ist die Schicht, die Maschinen am aufmerksamsten lesen. JSON-LD beschreibt Ihre Website der Antwortmaschine nicht Satz für Satz, sondern Entität für Entität.
Der Graph dieser Website besteht aus vier Familien: Identität (Organization, ProfessionalService, Person, WebSite), Seite (WebPage, ItemPage, CollectionPage), Leistung (Service, HowTo, FAQPage) und Inhalt (TechArticle im Leitfaden, BlogPosting im Journal, Article in den Fallseiten, DefinedTerm im Glossar). Alle liegen in einem einzigen @graph und sind über @id miteinander verbunden — die Person des Autors ist zugleich Gründer der Organization und author jedes Article. Ein Modell löst „wer, was, wo“ aus diesen Verbindungen.
Warum @id im Zentrum steht
Websites, die ihr Schema Seite für Seite kopieren, stellen dieselbe Person vierzigmal neu vor. Vierzig getrennte Person-Objekte können für ein Modell vierzig verschiedene Menschen sein. @id löst das in einer Zeile: Die Person wird einmal definiert, alles andere verweist darauf. Je größer der Graph, desto größer der Gewinn — das Werk auf einer Fallseite beschreibt seinen Urheber nicht erneut, es verlinkt den bestehenden Knoten.
- "@type": "Article"
- "author": { "@id": "…/#person" }
- "publisher": { "@id": "…/#org" }
- "isPartOf": { "@id": "…/#blog" }
- # drei Verbindungen, keine Wiederholung
Jeder Knoten beantwortet eine Frage
Organization sagt „wer ist das“ und trägt ein Logo — Googles Organisations-Rich-Result funktioniert ohne Logo nicht. Person sagt „wer steht dahinter“; jobTitle und knowsAbout sind die Felder, über die ein Modell Fachlichkeit zuordnet. WebPage sagt „was ist diese Seite“ und bindet sich über isPartOf an die Website. BreadcrumbList nennt den Platz in der Hierarchie. Article trägt Autor, Datum und Wortzahl.
Zwei Typen existieren eigens für Antwortmaschinen. FAQPage markiert Frage-Antwort-Paare; genau dieses Paar ist die Einheit, die ein Modell zitiert. HowTo gibt den Prozess Schritt für Schritt — die maschinenlesbare Form von „wie läuft das ab“. Beide stehen auf den Leistungsseiten dieser Website, und ihre Inhalte sind auch auf der Seite sichtbar.
Nicht lügen in einem Feld, das niemand sieht
Schema ist genau so viel wert, wie es wahr ist: wordCount wird tatsächlich gezählt, timeRequired aus der Lesezeit berechnet, datePublished ist der echte Veröffentlichungstag. Eine Lüge in einem Feld, das nie gerendert wird, ist die teuerste Lüge überhaupt — das Einzige, was sie liest, ist das, was am besten erinnert.
Dazu gehört auch das Weglassen. Der Organization-Knoten dieser Website hat kein sameAs: Da es keine zu veröffentlichende Profilliste gibt, wurde das Feld gar nicht geschrieben. Ebenso Telefon und Adresse. Leer lassen ist besser, als gefüllt zu wirken — und die Prüfsuite wacht in die Gegenrichtung: Schleicht sich eines Tages ein erfundenes Profil ein, wird der Test rot.
Dieselbe Disziplin gilt für Preise. offers oder priceRange in den Service-Knoten zu schreiben wäre einfach gewesen; da es keine veröffentlichte Preisliste gibt, wurde es nicht geschrieben. Informationen, die im Schema stehen, aber nicht auf der Seite, sind ein von Google ausdrücklich untersagtes Muster.
Schema bremst die Seite nicht
JSON-LD ist ein Script-Tag, aber nicht ausführbar; es überlebt unter der striktesten Content-Security-Policy. Diese Website läuft mit default-src 'self' — die Schema-Schicht verlangte keine einzige Lockerung. Auch das Gewicht ist klein: Ein Graph mit sechs bis acht Knoten pro Seite sind nach gzip wenige Kilobyte, und er blockiert keine Anfrage.
Zur Prüfung genügen zwei Werkzeuge: Googles Rich Results Test prüft die Eignung für Rich Results, der Validator von schema.org findet Typfehler. Die eigentliche Wache gehört aber in die Suite — diese Website hat für jeden Knotentyp einen eigenen Test, denn Schema ist die Schicht, die lautlos bricht: Kein Pixel ändert sich, kein Fehler erscheint.
In der unsichtbaren Schicht steht nur, was überprüfbar ist.