Implementieren Sie strukturierte Daten (Schema.org) in Ihr Shoporama-Thema
Vollständige Anleitung für JSON-LD strukturierte Daten in einem Shoporama-Theme. Smarty-Beispiele für Product, Store, BreadcrumbList und AggregateRating mit geeigneten sicheren Methoden.
Strukturierte Daten (Schema.org) helfen Google und anderen Suchmaschinen, den Inhalt Ihrer Seiten zu verstehen. Für einen Online-Shop ist es besonders wichtig, Produkte, Shop-Informationen, Breadcrumbs und Produktbewertungen zu markieren, damit Sie in den Suchergebnissen Rich Snippets wie Preis, Lagerbestand und Sterne-Bewertung erhalten können.
Tipp: Shoporama fügt automatisch grundlegendes Schema.org-Markup für Produkte über unsere integrierten SEO-Funktionen hinzu. Lesen Sie mehr über automatische strukturierte Daten und SEO in Shoporama. Dieser Artikel richtet sich an diejenigen, die das Markup in Ihrem Theme selbst erstellen oder erweitern möchten.
Was sind strukturierte Daten?
Strukturierte Daten sind ein standardisiertes Verfahren zur Beschreibung von Seiteninhalten in einem Format, das von Suchmaschinen verstanden wird. JSON-LD ist das empfohlene Format und wird in einem <script type="application/ld+json"> Tag platziert. Es hat keinen Einfluss auf das visuelle Erscheinungsbild der Seite, liefert den Suchmaschinen aber strukturierte Informationen, die für Rich Snippets verwendet werden können.
Die richtigen sicheren Methoden auf SafeProduct, SafeWebshop und SafeCompany
Bevor Sie Ihr eigenes JSON-LD-Markup erstellen, ist es wichtig, die sicheren Methoden zu kennen, die für die Objekte in einem Shoporama-Thema tatsächlich existieren. Dies sind die stabilen Methoden, die Sie in Smarty verwenden können.
Auf $product (SafeProduct):
- getName(), getDescription(), getOwnId(), getGtin(), getMpn(), getBrandName()
- getPrice(), getSalePrice(), getRealPrice(), getLowest30DayPrice()
- getStockCount() und getIsInStock()
- getImage() und getImages() geben SafeImage mit getSrc($w, $h, $type) zurück
- getAvgRating($no_round), getReviewCount(), getProductReviews($limit)
- getUrl() liefert den relativen Pfad des Produkts
Auf $webshop (SafeWebshop):
- getName(), getDescription(), getCurrency(), getUrl(), getLogo()
- getCompany() gibt SafeCompany zurück
Bei $webshop->getCompany() (SafeCompany):
- getName(), getRegNr(), getEmail(), getPhone()
- getAddress(), getZipcode(), getCity(), getCountry()
Hinweis: Verwenden Sie nicht $product->getStock(), $product->getAverageRating(), $webshop->getCurrencyCode(), $webshop->getDomain(), $webshop->getEmail() oder $webshop->getPhone(). Sie existieren nicht als sichere Methoden und Ihr Theme wird fehlschlagen. Verwenden Sie stattdessen getStockCount(), getAvgRating(), getCurrency(), getUrl() und getCompany()->getEmail()/getPhone().
Produktauszeichnung (Produkt)
Der wichtigste Typ für ein Online-Geschäft ist die Produktauszeichnung. Fügen Sie den Block in Ihre Produktvorlage ein (normalerweise product/view.html):
<script type="application/ld+json"> {"@context": "https://schema.org","@type": "Product", "name":"<{$product->getName()|escape:'javascript'}>", "description":"<{$product->getDescription()|strip_tags|escape:'javascript'}>", "sku":"<{$product->getOwnId()|escape:'javascript'}>", <{if $product->getGtin()}> "gtin": "<{$product->getGtin()|escape:'javascript'}>", <{/if}> <{if $product->getMpn()}> "mpn": "<{$product->getMpn()|escape:'javascript'}>", <{/if}> <{if $product->getBrandName()}> "brand": { "@type": "Brand", "name":"<{$product->getBrandName()|escape:'javascript'}>" }, <{/if}> <{if $product->getImage()}> "image": "<{$product->getImage()->getSrc(800, 800, 'fit')}>", <{/if}> "offers": { "@type": "Offer", "url": "<{$webshop->getUrl()}><{$product->getUrl()}>", "price": "<{$product->getRealPrice()|string_format:"%.2f"}>", "priceCurrency": "<{$webshop->getCurrency()}>", "availability": "<{if $product->getStockCount() > 0}>https://schema.org/InStock<{else}>https://schema.org/OutOfStock<{/if}>" } </script>
Drei wichtige Punkte in diesem Beispiel:
- Der Preis wird mit getRealPrice() abgefragt, so dass alle Verkaufspreise und Rabatte enthalten sind und die Mehrwertsteuer hinzugefügt wird.
- Die Währung wird mit getCurrency() auf $webshop abgefragt (gibt z. B. "DKK" oder "EUR" zurück).
- Der Lagerstatus wird mit getStockCount() ermittelt. Sie können auch getIsInStock() verwenden, wenn Sie den Verkauf von Produkten mit einem Lagerbestand von 0 erlauben wollen.
Vorpreis (Omnibus-Richtlinie)
Wenn das Produkt im Verkauf ist, empfiehlt Google, den niedrigsten Preis der letzten 30 Tage als Referenzpreis anzuzeigen. Verwenden Sie getLowest30DayPrice(), um ihn abzurufen. Es wird null zurückgegeben, wenn nicht genügend Preishistorie vorhanden ist.
Produktbewertungen (AggregateRating)
Wenn Sie Shoporamas eingebautes Bewertungssystem nutzen, können Sie eine durchschnittliche Bewertung direkt in das Product Markup einfügen. Dies kann Sterne in den Google-Suchergebnissen liefern. Fügen Sie den Block innerhalb des Product-Objekts ein:
<{if $product->getReviewCount() > 0}>, "aggregateRating": { "@type": "AggregateRating", "ratingValue":"<{$product->getAvgRating(true)|string_format:"%.1f"}>", "reviewCount": "<{$product->getReviewCount()}>" } <{/if}>
Der true-Parameter von getAvgRating() gibt einen ungerundeten Durchschnitt an, den Google bevorzugt (z. B. 4,3 statt nur 4).
Ladeninformationen (Laden / LocalBusiness)
Sie können auch den Webshop selbst markieren, zum Beispiel in Ihrem Footer-Template. Holen Sie sich die Kontaktdaten von $webshop->getCompany(), so dass die Informationen, die Sie bereits unter Einstellungen, Firmeninformationen eingestellt haben, automatisch enthalten sind:
<{$company = $webshop->getCompany()}> <script type="application/ld+json"> {"@context": "https://schema.org", "@type": "Store", "name":"<{$webshop->getName()|escape:'javascript'}>", "url": "<{$webshop->getUrl()}>" <{if $company}> , <{if $company->getEmail()}> "email": "<{$company->getEmail()|escape:'javascript'}>", <{/if}> <{if $company->getPhone()}> "phone": "<{$company->getPhone()|escape:'javascript'}>", <{/if}> "address": { "@type": "PostalAddress", "streetAddress": "<{$company->getAddress()|escape:'javascript'}>", "postalCode": "<{$company->getZipcode()|escape:'javascript'}>", "addressLocality": "<{$company->getCity()|escape:'javascript'}>", "addressCountry": "<{$$Unternehmen->getCountry()|escape:'javascript'}>" } <{/if}> <{if $webshop->getLogo()}> , "logo": "<{$webshop->getLogo()->getSrc(400, 400, 'fit')}>" <{/if}> }
Vergewissern Sie sich, dass die Firmendaten im Adminbereich unter Einstellungen, Firmendaten korrekt ausgefüllt sind. Wenn Sie ein physisches Geschäft haben, können Sie LocalBusiness oder einen spezifischeren Untertyp (z. B. ClothingStore) als @type verwenden.
Brotkrümel (BreadcrumbList)
Auf Produkt- und Kategorieseiten ist es eine gute SEO-Praxis, Breadcrumbs zu markieren. Beispiel für ein Produkt mit Hauptkategorie:
<{if $product->getMainCategory()}> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "<{$webshop->getName()|escape:'javascript'}>", "item": "<{$webshop->getUrl()}>" }, { "@type": "ListItem", "position": 2, "name": "<{$product->getMainCategory()->getName()|escape:'javascript'}>", "item": "<{$webshop->getUrl()}><{$product->getMainCategory()->getUrl()}>" }, { "@type": "ListItem", "position": 3, "name": "<{$product->getName()|escape:'javascript'}>", "item": "<{$webshop->getUrl()}><{$product->getUrl()}>" } ] } </script> <{/if}
Testen Sie Ihre strukturierten Daten
Nutzen Sie die Tools von Google und Schema.org, um Ihr Markup zu validieren, bevor Sie live gehen:
- Rich Results Test prüft, ob Ihr Markup Rich Snippets in Google liefert
- Schema Markup Validator validiert die JSON-LD-Syntax
- In der Google Search Console können Sie Berichte über Ihre Produkte und Rich Results einsehen, nachdem die Seiten gecrawlt wurden
Tipp: Wenn Sie bereits automatische strukturierte Daten in Shoporama aktiviert haben, achten Sie darauf, Duplikate zu vermeiden. Prüfen Sie, was bereits auf der Seite vorhanden ist, bevor Sie Ihr eigenes Markup hinzufügen.
Häufig gestellte Fragen
Muss ich JSON-LD überhaupt selbst programmieren?
Nein, nicht unbedingt. Shoporama hat automatisch strukturierte Daten für Produkte eingebaut, und das deckt die meisten Dinge ab. Selbstkodierung ist vor allem dann relevant, wenn Sie zusätzliche Felder hinzufügen oder einen spezifischeren @type verwenden möchten, zum Beispiel für Hotels, Restaurants oder Events.
Welche Schematypen kann ich außer Product noch verwenden?
In einem Shoporama-Theme können Sie jeden Schema.org-Typ erstellen, der als JSON-LD existiert. Die für eCommerce am häufigsten verwendeten sind Product, Offer, AggregateRating, Review, BreadcrumbList, Store, LocalBusiness, Organisation, WebSite mit SearchAction und FAQPage für feste FAQ-Seiten.
Warum erhalte ich Fehler im Rich Results Test?
Typische Fehler sind fehlende Felder (z.B. price ohne priceCurrency), falsche Formatierung von Zahlen oder Anführungszeichen, die die JSON-Syntax brechen. Verwenden Sie immer |escape:'javascript' für alle Textwerte in Smarty.
Wie lange dauert es, bis ich Sterne in Google sehe?
Google muss die Seite erneut crawlen, bevor Ihr neues Markup verwendet wird. Das kann ein paar Tage bis zu einigen Wochen dauern. In Search Console können Sie eine schnelle Neuindizierung einzelner Seiten beantragen.
Wirkt sich das auf mein Ranking in Google aus?
Strukturierte Daten sind kein direkter Ranking-Faktor, aber Rich Snippets wie Preis und Sterne machen Ihr Suchergebnis sichtbarer und können die Klickraten erhöhen. Langfristig hilft es, Ihre SEO insgesamt zu verbessern.
Wie behandle ich die Mehrwertsteuer im Preisfeld?
Verwenden Sie getRealPrice(), das den Preis einschließlich Mehrwertsteuer zurückgibt. Dies ist der Preis, den der Kunde im Shop sieht, und der Preis, den Google in der Produktauszeichnung eines B2C-Shops erwartet. Wenn Sie den Preis ohne Mehrwertsteuer anzeigen möchten (B2B), verwenden Sie stattdessen getPriceExVat().
Benötige ich Bewertungen, bevor ich AggregateRating anzeige?
Ja, das müssen Sie. Fügen Sie AggregateRating nur hinzu, wenn das Produkt tatsächlich Bewertungen hat. Im obigen Beispiel wird geprüft, ob getReviewCount() > 0 ist, so dass für Produkte ohne Bewertungen kein Aufschlag hinzugefügt wird. Falsche oder leere Bewertungen können eine Strafe von Google auslösen.
Wo finde ich meine Firmendaten für das Store Markup?
Gehen Sie in der Verwaltung unter Einstellungen, Firmendetails. Die Daten, die Sie hier eingeben, werden über $webshop->getCompany() in Ihrem Theme verfügbar, so dass der Store-Block automatisch ausgefüllt wird.
Wo soll die JSON-LD auf der Seite platziert werden?
Sie können sie entweder in <head> oder in <body> platzieren . Laut Google sind beide gültig. Bei Produktseiten ist es üblich, sie am unteren Ende der Produktvorlage zu platzieren.
Mein Online-Shop wird in mehreren Sprachen verkauft. Brauche ich Markup für jede Sprache?
Ja, die Namen und Beschreibungen im Markup sollten die Seite wiedergeben, die der Kunde gerade anschaut. Da $product->getName() und $product->getDescription() automatisch den übersetzten Text für die aktive Sprache zurückgeben, geschieht dies automatisch, wenn Sie die Beispiele hier verwenden.
Benötigen Sie Hilfe bei strukturierten Daten? Kontaktieren Sie uns unter support@shoporama.dk.
Ähnliche Artikel
SEO im Shoporama
Vollständiger Leitfaden zu den SEO-Funktionen von Shoporama - von Meta-Tags und Sitemap bis zu Google Shopping und AI Assistant.
Produktbewertungen
Erfahren Sie, wie Sie Produktbewertungen in Shoporama nutzen können. Sammeln Sie automatisch Kundenrezensionen, moderieren Sie sie und zeigen Sie...
Variablen in einem Shoporama-Thema
Überblick über die globalen und seitenbezogenen Smarty-Variablen, die in Shoporama-Themen verfügbar sind.
Implementierung von Tracking in ein Shoporama-Thema
Anleitung für Entwickler zur Implementierung von E-Commerce-Tracking in einem Shoporama-Theme mit Standard-Datenschicht, Google Tag Manager und...
Blog mit Link zu Ihrem Shop
Vollständige Anleitung zur Blog-Funktion in Shoporama - Beiträge erstellen, Veröffentlichung planen, Produkte verlinken, für Suchmaschinen...
Preisentwicklung und die Omnibus-Richtlinie
Shoporama protokolliert automatisch Preisänderungen und berechnet den korrekten Vorpreis gemäß der Omnibus-Richtlinie. Omnibus-Richtlinie (EU...
Noindex für eine Seite, ein Produkt oder eine Kategorie festlegen
Anleitung zur Einstellung von noindex in Shoporama, damit Suchmaschinen bestimmte Seiten nicht indizieren.
Verwandte Funktionen
Strukturierte Daten - automatische Schema.org-Auszeichnung
Automatisches Schema.org-Markup für Produkte, Bewertungen, Breadcrumbs und Unternehmensinformationen. Rich Snippets in Google mit Sternen und...
SEO in Shoporama - in Google sichtbar werden
Shoporama verfügt über integrierte SEO-Funktionen: hohe Geschwindigkeit, volle Kontrolle über Titel und Meta-Beschreibungen, dynamische Tags,...