JSON-LD im HEAD unterbringen für eine Seite aus der Struktur
Ich möchte gerne so inder Form als FAQ ein JSON-LD in den Head Bereich einfügen.
Wie mache ich das am besten?
Mein Gedanke.. über ein Template.
Ich nutze Contao 4.9.7 mit dem Mate-Theme.
1. Welches Template sollte ich mir dafür kopieren, wenn meine Vermutung richtig ist?
1.a und wie baue ich das dann am besten dort ein? bin kein Programierer
2. Wenn nicht über ein Template, wie kann man es denn dann machen?
Ein Beispielcode für ein FAQ_JSON-LD füge ich hier mal ein.
PHP-Code:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Was darf eine gute Hausverwaltung kosten?",
"acceptedAnswer": {
"@type": "Answer",
"text": "nicht viel"
}
},{
"@type": "Question",
"name": "Wie finde ich eine gute Hausverwaltung?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Einfach bei https://www.023-hausverwaltung.de
nur mal so als Beispiel"
}
}]
}
</script>
Text für Rich-FAQ´s mittels Variablen aus dem Artikel übernehmen
Hallo ich noch mal.. wegen der oben genannten Sache.. sprich, zonky hatte ja fereundlicherweise sogar schon ein Script als Beispiel genannt.
Ich habe das jetzt inzwischen Manuell über Template & Module hin bekommen.. (yeah) und wird auch sauber erkannt in den dieversen Testtools von Google.
Schon mal ein Etappensieg.
Bei der Pflege der aktuellen Seite .. habe ich aber gemerkt, da sich der Inhalt da schon mal ändern kann.. weil sich z.B. neue Gesetze ergeben haben.... oder ich bein der SEO Optimierung merke, dass nach anderen keywords mehr gesucht wird.. passe ich das schon mal an.
Dann ist es aber umständlich, das sowohl im Artikel, als auch im Template dann quasi doppelt zu ändern.
Daher würde ich gern auf Zonky´s Anregung zurück kommen.
Könnt Ihr mir einen Hinweis geben, wie ich das am besten umsetzen kann.. bezüglich der Variablen.. und der Einbindung.. im Artikel?
Also konkret.. wie kann ich z.B. einen Text als "Question" deklarieren/markieren mittels einer Variablen... und wie einen Text als "Answer"?
Wobei ich mir denke.. speziell bei den FAQs.. würde ich immer Paare mitan Variablen machen:
question_1 & answer1
question_2 & answer3
question_3 & answer4
Was glaube ich .. früher sagte man Spagetti-Code dazu womöglich wäre sowas wie ne "Do - While - Schleife" besser?
Hängt für etwas davon ab, was ist einfach.. bzw.. was wäre eine sehr elegante Lösund .. auch für später. Hauptsache, ich kann es umsetzen.
Aber da ganz besonders.. WIE setzt man sowas dann um?
Setzt man da Module ein.. die ein paar Zeilen PHP enthalten für die Variablen.. worin der Start und Endpunkt einer "Question" definiert wird? Gleiches bei der "Answer"?
Wie gesagt.. ich kann eigentlich nicht programieren... .. und wenn einem MS Quick-Basic noch was sagt.. dann weiß er.. wo mein letzter Stand ist und da war ich auch kein Crack drin.
Wäre super, wenn Ihr mir da etwas unter die Arme greifen könntet.
Danke schon mal für Eure bisherige Geduld mit mir.
bei mir dauert manches schon mal etwas.. weil ich ja nebenher auch noch mein Geld verdienen muss.
JSON-LD & die Welt der Rich-Snippets
@Zonky ja, da gebe ich Dir Recht. sowas wie Fett - Kursiv.. oder H2.. das meinte ich auch nicht.
Schau Dir die Möglichkeiten, die man z.B. bei Bildern hat.. oder selbst einfach Links & Tabellen, da werden ja auch wenn auch deutlich im geringeren Umfang, weitere Eingaben vom User gefordert.
Dann schau Dir die Online-Generatoren an, die JSON-LD snipets, direkt zum rein kopieren an... auch die können ja mit einem gewissen Optionsumfang von Schema.org umgehen.
Ja, sie bedienen nicht ALLE Optionen die es gibt. Aber, sie stellen doch zumindest die meist gebrauchten zur Verfügung.
Es ist ja auch nur eine Anregung/Frage gewesen.
Und falls Du nun auf die Idee kommst zu sagen, dann nimm doch die von den Generatoren.. ja, mache ich ja auch und erweitere sie sogar um Optionen von Schema.org manuell.
Ja, klar geht das.
Aber ich weiß dadurch auch, wie Aufwendig das ist.
Mein Gedanke dahinter war halt, speziell für die Nutzer von Contao etwas zu haben, damit sich deren Webseiten noch mehr von denen abheben, die solche Features nicht im Angebot haben.
Denn eben durch die Beschäftigung mit den Rich-Snippets habe ich zum einen gemerkt, wie Sinnvoll das ist!! Ich habe mir aber auch überlegt, wie man das eventuell UI-mäßig umsetzen könnte.
Leider kann ich nicht programmieren, sonst würde ich es gerne machen. Und ich bin mir sehr sicher, wenn es erst mal so ein Tool geben würde/wird.. DANN wird es auch sehr viel genutzt. Da bin ich mir sicher.
Denn ich sehe gerade durch meine manuellen Versuche, was DAS schon bringt.
Die Rich.Snippets alleine sind es natürlich nicht... nein, natürlich nicht.
Da gehört ein wirklich gut überlegter Inhalt auf der Seite dazu, der nicht zu kkurz ist.
Da gehören an diversen Stellen gute Tags hin.. Beschreibungen usw. JA.. ganz klar!
AABER.. diese Rich-Snippets geben dem ganzen noch mal einen ordentlichen Schubs nach vorne. zumindest JETZT noch, wo es nur extrem wenige nutzen, weil es eben nicht so trivial ist, wie es auf den ersten Blick scheint.
Daher ein Tool, das den Contao-Nutzer massiv dabei unterstützt. Alleine schon, wenn die richtigen Optionenn nacheinander abgefragt werden, um die er sich dann natrülich selbst kümmern muss.
Ja, sag meinetwegen auch.. das wäre so ein Online-Generator integriert in Contao.. ja.. ist auch OK.
Wenn aber dazu die Basis an Text, im Tinymce schon mal markiert und dann für weitere (wie beim link) verknüpft ist.
Sprich, ändere ich den Text im Tinymce, ist er im Snippet dann auch geändert, weil nicht einfach ins snippet kopiert, sondern quasi wie ein Insert-Tag auf den Text als Link zeigt!! DAS wäre ein extremer Fortschritt, den dann NUR Contao bieten würde!!
Wer für seine Webseite, das SEO selber macht .. nämlich kontinuierlich optimiert.. mittels diversen Auswertungstools.. ob Google-Analytics oder die vielen weiteren die einem noch viele detailierter verraten wo noch Potential drin steckt,... jemand der DAS für sich selbst macht.. der weiß, man muss hin und wieder den Text anpassen.. verändern.. ergänzen.
Und da dann auch nach 6 Monaten, die Snippets nicht zu übersehen/vergessen.. ist da extrem hilfreich.
Wie gesagt, falls sich ein Programierer dran versuchen will.. gerne.. und mitunter ist es mir ja auch was Wert, man kann über alles reden.
Ob man zusammen kommt... ob wir das als ganz kleines Startup den ganzen Betrag zahlen können.. oder ob man das auf Zeiträume verteilt... ist alles Verhandlungssache.
Das alles ist aber nur dann möglich, wenn sich überhaupt jemand dieser Sache aus Überzeugung annehmen will.
Contao 4.10 JSON-LD für jede Seite individuell per Erweiterung möglich?
Hi Leute,
gibt es eine Erweiterung, mit der sich strukturierte Daten sowie allgemein gültige Schemata für die Datenstrukturierung in das kompakte JSON-Format / Schema.org einbetten lassen? Und das für jede Seite individuell, so wie es bei einer ER für den Open Graf für die Twitter-Cards möglich ist?
Wie wäre hier die Herangehensweise?
Wäre sowas auch für Contao möglich: https://rankmath.com/
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm, also geht das Ganze noch nicht mit einem Plug In oder einer ER...
Auch ich bin kein Programmierer und muß mich dann wohl doch bissl mehr in die Thematik hineinarbeiten.
Also Arme hochkrempeln..
Was ist mein Ziel?
Ich möchte auf der Webseite die Daten eines Unternehmens so auszeichnen, daß Google das versteht und die Firma bei den Suchergebnissen in dem Kasten der lokalen Unternehmen positioniert, siehe Beispiel:
Anhang 24268
Was muß man tun, um dahin zu kommen?
Ein Gedanke den ich habe folgende Auszeichnung / Strukturierung:
Code:
<script type="application/ld+json">
{
"@context": "http://www.schema.org",
"@type": "Organization",
"@id": " http://www. ihre-Domain.com ",
"name": " Ihr Seitentitel oder Ihre Seitenüberschrift ",
"logo": " http://www.ihre-Domain.com/logo.jpg ",
"url": " http://www.ihre-Domain.com ",
"foundingDate": "Jahreszahl",
"founder":
{
"@type": "Person",
"name": "Gründername "
},
"description": " Ihre Meta-Description oder eine Zusammenfassung Ihrer Firmentätigkeit.",
"address": {
"@type": "PostalAddress",
"streetAddress":"Straße und Hausnummer",
"addressLocality": "Ort",
"addressRegion": "Bundesland",
"postalCode": "Postleitzahl",
"addressCountry": "Deutschland"
},
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer service",
"telephone": "+49-0000-1234567",
"email": "info@ihreDomain.com"
}
}
</script>
Quelle: https://www.bio-seo.de/json-codes-strukturierte-daten
Da diese Daten im Script für alle Seiten gilt, sollten diese auch auf jeder Seite / Unterseite enthalten sein.
Wie muß ich jetzt genau vorgehen?
Template fe_page ändern?
Wie lassen sich JSON-LD Angaben einbinden?
Eine Website ist mit folgenden Unterseiten aufgebaut:
Domain.de
Domain.de/Dienstleistung A
Domain.de/Dienstleistung B
Domain.de/Produkte
Domain.de/Impressum
Domain.de/wir über uns
Domain.de/Kontakt
Nun sollen die Seiten mit strukturierte Daten ausgezeichnet werden, wobei
- einige Daten immer gleich sind auf jeder Seite (wie das LOGO, die Firma mit Anschrift, Tel. etc.)
- jede Seite individuelle strukturierte Daten benötigt
Für die Seiten, bei denen die strukturierten Daten immer gleich sind, lässt sich das Script für das LOGO, Anschrift etc.
im Seitenlayout unter zusätzliche Head-Tags einfügen.
Code:
<script type="application/ld+json">
{
"@context": "http://www.schema.org",
"@type": "Organization",
"@id": " http://www. ihre-Domain.com ",
"name": " Ihr Seitentitel oder Ihre Seitenüberschrift ",
"logo": " http://www.ihre-Domain.com/logo.jpg ",
"url": " http://www.ihre-Domain.com ",
"foundingDate": "Jahreszahl",
"founder":
{
"@type": "Person",
"name": "Gründername "
},
"description": " Ihre Meta-Description oder eine Zusammenfassung Ihrer Firmentätigkeit.",
"address": {
"@type": "PostalAddress",
"streetAddress":"Straße und Hausnummer",
"addressLocality": "Ort",
"addressRegion": "Bundesland",
"postalCode": "Postleitzahl",
"addressCountry": "Deutschland"
},
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer service",
"telephone": "+49-0000-1234567",
"email": "info@ihreDomain.com"
}
}
</script>
Wie aber bekommt den individuellen JSON-LD Angaben auf den Unterseiten rein?
Hier z.B. für die Produktseite:
Code:
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Product",
"name": " Produktbezeichnung ",
"image": [
"http://www. ihre-Domain.com/Bild-URL/erstes-produktbild.jpg",
"http://www. ihre-Domain.com/ Bild-URL/zweites-produktbild.jpg",
"http://www. ihre-Domain.com/ Bild-URL/drittes-produktbild.jpg",
"http://www. ihre-Domain.com/ Bild-URL/viertes-produktbild.jpg"
],
"description": " Ihre Meta-Description oder die Produktbeschreibung.",
"brand": {
"@type": "Thing",
"name": " Markenname oder Ihr Firmenname "
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.4",
"reviewCount": "89"
},
"offers": {
"@type": "Offer",
"priceCurrency": "EUR",
"price": "119.99",
"availability": "http://schema.org/InStock",
"seller": {
"@type": "Organization",
"name": "Ihr Firmenname",
"logo": {
"@type": "ImageObject",
"url": " http://www.ihre-Domain.com/logo.jpg "
}
}
}
}
</script>
Oder dieser Code, der nur auf die Home-Seite soll
Code:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"url": "http://www.ihre-Domain.com/",
"name": "Ihr Seitentitel oder Ihre Seitenüberschrift ",
"image": [
"http://www. ihre-Domain.com/Bild-URL/erstes-seitenbild.jpg",
"http://www. ihre-Domain.com/ Bild-URL/zweites-seitenbild.jpg",
"http://www. ihre-Domain.com/ Bild-URL/drittes-seitenbild.jpg",
"http://www. ihre-Domain.com/ Bild-URL/viertes-seitenbild.jpg"
],
"author": {
"@type": "Person",
"name": "Ihr Name"
},
"description": " Ihre Meta-Description oder eine Zusammenfassung des jeweiligen Seiteninhalts.",
"publisher": {
"@type": "Organization",
"name": " Ihr Firmenname ",
"logo": " http://www.ihre-Domain.com/logo.jpg "
}
}
</script>
Quelle der Scripte: https://www.bio-seo.de/json-codes-strukturierte-daten
Wie lässt sich das Ganze realsieren?
Liste der Anhänge anzeigen (Anzahl: 1)
Coole ER :-)
Ich habe das mal im "Zusätzlicher Header-Code"eingebunden, da ist die JSON im Quelltext HEAD-Bereich.
Wenn ich diese JSON im "Zusätzlicher Footer-Code" einbinden, dann erscheint die im Body-Tag
Ist das ok? Das google-TEst-Tool https://search.google.com/test findet beide Varianten.
Noch eine Frage:
Müssen die JSON alle in einem Script sein? Oder können da mehrere Scripte laufen?
Bei mir sind 2-JSON-Scripte enthalten, die von mir und die von Contao
Anhang 24271
FAQ-Seite mit JSON / Rich Snippets
Hi Leute,
habe auf einer Seite das Modul "mod_faqpage" integriert und die Fragen / Antworten werden da auch angezeigt.
Jetzt möchte ich die noch nach schema.org JSON-LD auszeichnen.
Wie muß das Template von mod_faqpage jetzt genau angepasst werden?
So schaut es standardmäßig aus:
PHP-Code:
<?php $this->extend('block_unsearchable'); ?>
<?php $this->block('content'); ?>
<?php foreach ($this->faq as $category): ?>
<article class="<?= $category['class'] ?>">
<h2><?= $category['headline'] ?></h2>
<?php foreach ($category['items'] as $faq): ?>
<section class="<?= $faq->class ?>">
<h3 id="<?= $faq->alias ?>"><?= $faq->question ?></h3>
<div class="ce_text block">
<?php if (!$faq->addBefore): ?>
<?= $faq->answer ?>
<?php endif; ?>
<?php if ($faq->addImage): ?>
<?php $this->insert('image', (array) $faq); ?>
<?php endif; ?>
<?php if ($faq->addBefore): ?>
<?= $faq->answer ?>
<?php endif; ?>
</div>
<?php if ($faq->enclosure): ?>
<ul class="enclosure">
<?php foreach ($faq->enclosure as $enclosure): ?>
<li class="download-element ext-<?= $enclosure['extension'] ?>">
<a href="<?= $enclosure['href'] ?>" title="<?= $enclosure['title'] ?>"><?= $enclosure['link'] ?> <span class="size">(<?= $enclosure['filesize'] ?>)</span></a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<p class="info"><?= $faq->info ?></p>
</section>
<?php endforeach; ?>
<p class="toplink"><a href="<?= $this->request ?>#top"><?= $this->topLink ?></a></p>
</article>
<?php endforeach; ?>
<?php $this->endblock(); ?>
zonky hatte dieses Script hier mal weiter oben eingestellt:
PHP-Code:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
<?php foreach($faqs as $faq): ?>
{
"@type": "Question",
"name": "<?= $faq['question'] ?>",
"acceptedAnswer": {
"@type": "Answer",
"text": "<?= $faq['answer'] ?>"
}
},
<?php endforeach; ?>
]
}
</script>
Frage 1: Wie muß dieses Scrip angepasst werden?
Frage 2: Wo muß dieses Script eingebunden werden, in das Template von "mod_faqpage" (wenn ja, wo da genau), oder in den Head-Bereich der Seite?