Strukturierte Daten in Contao: Basis für KI-Sichtbarkeit
Suchmaschinen und KI-Assistenten lesen Websites maschinell – strukturierte Daten liefern ihnen die Bedeutung hinter dem Text.
Frage an ChatGPT: „Welche Contao-Agentur gibt es in Braunschweig?" Die Antwort nennt drei Namen, einer davon mit Adresse, Leistungen und Telefonnummer. Der vierte Anbieter, der seit Jahren dieselben Leistungen anbietet, kommt nicht vor. Sein Text ist gut. Nur weiß keine Maschine, dass er ein Unternehmen ist, wo es sitzt und was es tut.
Kurz gesagt: Menschen lesen eine Website, Maschinen interpretieren sie. Strukturierte Daten nach Schema.org sagen ihnen im Klartext, was der sichtbare Inhalt bedeutet – wer das Unternehmen ist, wann der Beitrag erschienen ist, welche Leistung angeboten wird. Der Nutzen hat sich dabei verschoben: von hübschen Suchergebnissen hin zur Frage, ob eine KI die eigene Website überhaupt als Quelle erkennt. Dieser Beitrag zeigt die relevanten Typen, das Format JSON-LD und die Umsetzung in Contao – mit vollständigem Code.
Was Maschinen sehen, wenn sie eine Seite lesen
Strukturierte Daten sind maschinenlesbare Zusatzangaben im Quelltext einer Seite. Diese Angaben beschreiben, was der sichtbare Inhalt bedeutet: Hier steht ein Unternehmen mit dieser Adresse, dort ein Beitrag mit diesem Autor und Datum, das ist eine Bewertung, jenes ein Preis. Das Vokabular dafür liefert Schema.org, ein gemeinsames Projekt großer Suchanbieter.
Der Nutzen ist dreifach: Rich Results in der klassischen Suche (etwa Breadcrumbs, Produktangaben, Veranstaltungen), Entitätsverständnis – Suchmaschinen erkennen zuverlässig, um welches Unternehmen oder welche Person es geht – und zunehmend Sichtbarkeit in KI-Antworten. Assistenten und AI-Übersichten stützen sich auf gut strukturierte, eindeutig zuordenbare Quellen. Strukturierte Daten sind kein Rankingfaktor im engeren Sinn, sie erhöhen aber die Chance, überhaupt herangezogen und korrekt dargestellt zu werden.
JSON-LD, Microdata, RDFa? Die Antwort ist kurz
Es gibt drei Wege, Schema.org umzusetzen: Microdata und RDFa direkt im HTML sowie JSON-LD als separater Skriptblock. Die Empfehlung ist eindeutig: JSON-LD. Der Grund ist praktisch – der Datenblock liegt getrennt vom Markup, lässt sich zentral pflegen, bricht nicht beim nächsten Template-Umbau und ist deutlich fehlertoleranter.
Ein JSON-LD-Block steht im Kopf- oder Body-Bereich der Seite, beginnt mit dem Kontext von Schema.org und benennt Typ und Eigenschaften. Wichtig: Ausgezeichnet wird nur, was auf der Seite auch sichtbar ist. Angaben, die nur im Datenblock stehen, aber nirgends im Text auftauchen, verstoßen gegen die Richtlinien und können Nachteile bringen.
Sechs Typen, die tatsächlich etwas bringen
Statt alles auszuzeichnen, empfiehlt sich eine Auswahl mit echtem Nutzen:
- Organization beziehungsweise LocalBusiness – Name, Adresse, Telefon, Öffnungszeiten, Logo, Profile in sozialen Netzwerken. Die Basis für Entitätserkennung.
- WebSite mit interner Suche und BreadcrumbList für die Pfadnavigation – letztere erscheint häufig direkt im Suchergebnis.
- Article oder BlogPosting für Beiträge: Titel, Datum, Autor, Bild.
- Service oder Product für Leistungen und Produkte, bei Bedarf mit Preisangabe.
- FAQPage für Fragen-und-Antworten-Bereiche – die auffälligen FAQ-Darstellungen in der Suche sind zwar stark zurückgegangen, für das inhaltliche Verständnis und für KI-Antworten bleibt die Auszeichnung dennoch wertvoll.
- Event und JobPosting, sofern Veranstaltungen oder Stellenanzeigen vorhanden sind – beides wird prominent ausgespielt.
Nicht sinnvoll ist das Auszeichnen von Dingen, die es auf der Seite nicht gibt, etwa erfundene Bewertungen. Das ist ein Verstoß und riskiert manuelle Maßnahmen.
Contao: Daten entstehen aus Inhalten, nicht aus Handarbeit
Contao 5 liefert von Haus aus bereits eine Basis: Das System kann Seiten- und Inhaltsdaten im JSON-LD-Format ausgeben und stellt dafür eine eigene Schnittstelle bereit, über die Erweiterungen zusätzliche Angaben ergänzen können. Für den Alltag heißt das:
- Basisdaten zentral pflegen – Unternehmensangaben einmal hinterlegen und über ein Template oder eine kleine Erweiterung als Organization beziehungsweise LocalBusiness ausgeben.
- Beiträge automatisch auszeichnen: Nachrichten-Elemente liefern Titel, Datum, Autor und Bild – daraus lässt sich BlogPosting generieren, ohne dass die Redaktion etwas tun muss.
- Breadcrumbs aus dem vorhandenen Navigationsmodul ableiten.
- Individuelle Blöcke über ein eigenes Template ergänzen, etwa für Leistungsseiten oder Veranstaltungen.
Der Vorteil dieser Herangehensweise: Die Daten entstehen aus den Inhalten, die ohnehin gepflegt werden. Damit bleiben sie automatisch aktuell – ein händisch eingefügter JSON-Block veraltet dagegen beim ersten Adresswechsel.
In Contao wird der Datenblock nicht von Hand gepflegt, sondern aus den vorhandenen Feldern erzeugt. Für Nachrichtenbeiträge genügt eine Ergänzung im Template news_full.html5:
<?php
$schema = [
"@context" => "https://schema.org",
"@type" => "BlogPosting",
"headline" => $this->headline,
"datePublished" => date("c", $this->date),
"dateModified" => date("c", $this->tstamp),
"author" => [
"@type" => "Organization",
"name" => "Agentur Zentral GmbH",
"url" => "https://www.agenturzentral.de/"
],
"image" => $this->addImage
? Contao\Environment::get("base") . $this->singleSRC
: null,
"description" => $this->subheadline,
"mainEntityOfPage" => $this->link,
];
?>
<script type="application/ld+json">
<?= json_encode(array_filter($schema), JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE) ?>
</script>Der saubere Weg führt über die Contao-eigene Schnittstelle: Das System sammelt strukturierte Daten pro Seite ein und gibt sie gebündelt aus. Ein eigener Event-Listener ergänzt die Unternehmensdaten für jede Seite:
// src/EventListener/JsonLdListener.php
namespace App\EventListener;
use Contao\CoreBundle\Event\JsonLdEvent;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
#[AsEventListener]
class JsonLdListener
{
public function __invoke(JsonLdEvent $event): void
{
$event->getJsonLdManager()->getGraphForSchema("https://schema.org")
->add([
"@type" => "Organization",
"name" => "Agentur Zentral GmbH",
"url" => "https://www.agenturzentral.de/",
"sameAs" => [
"https://www.linkedin.com/company/…",
],
]);
}
}Der Vorteil: Die Angaben stehen an einer Stelle, gelten für die gesamte Website und veralten nicht. Ein von Hand in ein Template kopierter JSON-Block überlebt keinen Adresswechsel.
Drei Werkzeuge, ein Prüflauf
Drei Werkzeuge genügen: der Rich-Results-Test von Google zeigt, welche Ergebnisdarstellungen möglich sind; der Schema-Markup-Validator prüft die formale Korrektheit gegen das Vokabular; die Search Console meldet Fehler und Warnungen über alle Seiten hinweg. Sinnvoll ist eine Prüfung nach jedem größeren Template-Umbau, nicht nur einmalig.
Typische Fehler in der Praxis: fehlende Pflichtangaben (etwa das Bild bei einem Beitrag), doppelte Auszeichnungen durch mehrere Erweiterungen gleichzeitig, veraltete Adressen oder Öffnungszeiten sowie Daten, die im sichtbaren Text nirgends vorkommen. Alle vier lassen sich mit einem kurzen Testlauf entdecken.
Aus der Praxis: drei Fehler, die fast jeder macht
Typisches Szenario – so läuft ein solcher Fall in der Praxis ab.
Ein Fachgroßhändler wundert sich, warum seine Produktseiten in der Suche unscheinbar aussehen, während der Wettbewerb Preise und Verfügbarkeit direkt im Treffer anzeigt. Der Rich-Results-Test liefert die Antwort in zehn Sekunden: keine strukturierten Daten vorhanden. Die Preise stehen im Text, sind für Google aber nur Zeichenfolgen.
Beim Nachrüsten treten drei typische Fehler auf, die sich lohnen zu kennen:
- Doppelte Auszeichnung: Ein SEO-Plugin und das Theme geben beide einen Organization-Block aus – Google sieht zwei Unternehmen mit demselben Namen. Lösung: eine Quelle, zentral im Layout.
- Daten ohne Sichtbarkeit: Im JSON-LD stehen Bewertungen, auf der Seite selbst nicht. Das ist ein Richtlinienverstoß und kann zu einer manuellen Maßnahme führen.
- Veraltete Öffnungszeiten: Der Block wurde 2022 einmal von Hand eingefügt. Seitdem hat der Betrieb umgestellt – die Maschine liest weiter die alten Zeiten vor.
Nach dem Aufräumen entstehen die Daten automatisch aus den gepflegten Feldern, ein einziger Prüflauf bestätigt die Korrektheit. Der Nebeneffekt zeigt sich erst Wochen später: Die Website wird in KI-Antworten korrekt mit Namen, Ort und Leistung genannt – vorher tauchte sie dort gar nicht auf.
Warum KI-Assistenten Entitäten brauchen
KI-Assistenten formulieren Antworten aus mehreren Quellen und nennen dabei nur wenige. Ausgewählt wird, was eindeutig, konsistent und leicht zuzuordnen ist. Strukturierte Daten helfen genau dabei, indem sie einen Text mit einer klar benannten Organisation, einem Datum und einem Ort verknüpfen. Wer zusätzlich in Verzeichnissen und im Google-Unternehmensprofil dieselben Angaben führt, wird als Entität erkannt statt als beliebige Textquelle.
Praktisch bewährt hat sich die Kombination: sauber ausgezeichnete Grunddaten, präzise formulierte Antworten im Text (Frage als Überschrift, Antwort im ersten Absatz) und eine FAQ, die echte Kundenfragen aufgreift. Das nützt Menschen wie Maschinen – und ist damit die einzige Art von Optimierung, die auf Dauer trägt.
Fazit: der Unterschied zwischen Text und Information
Strukturierte Daten sind kein Zaubermittel, aber sie sind der Unterschied zwischen „Text auf einer Seite" und „verstandene Information". Der Aufwand ist überschaubar: JSON-LD als Format, eine überschaubare Auswahl an Typen, automatische Erzeugung aus vorhandenen Inhalten und ein Prüflauf nach Änderungen. In Contao lässt sich das sauber im Template lösen, ohne die Redaktion zusätzlich zu belasten. Der Ertrag zeigt sich doppelt – in besser dargestellten Suchergebnissen und darin, in KI-Antworten überhaupt vorzukommen.
Häufige Fragen
Die häufigsten Fragen zu Schema.org, JSON-LD und strukturierten Daten in Contao – kurz beantwortet.
JSON-LD. Der Datenblock liegt getrennt vom HTML, lässt sich zentral pflegen und übersteht Template-Änderungen. Microdata und RDFa gelten als fehleranfällig.
Nicht im engeren Sinn. Sie verbessern aber die Darstellung in den Suchergebnissen, helfen beim Verständnis der Inhalte und erhöhen die Chance, in KI-Antworten zitiert zu werden.
Organization beziehungsweise LocalBusiness für die Basisdaten, BreadcrumbList für die Navigation, BlogPosting für Beiträge sowie Service oder Product für das Angebot.
Die auffälligen FAQ-Darstellungen in der Suche sind stark zurückgegangen. Die Auszeichnung bleibt trotzdem sinnvoll, weil Frage-Antwort-Paare für KI-Antworten und das inhaltliche Verständnis genutzt werden.
Mit dem Rich-Results-Test, dem Schema-Markup-Validator und dem Bericht in der Google Search Console – idealerweise nach jedem größeren Umbau der Website.