Strukturierte Daten - Google Fehler

Hallo zusammen!

In der Google Search werden folgende Probleme angezeigt:

Hauptwarnungen

Warnungen sind Verbesserungsvorschläge. Einige Warnungen können Ihre Darstellung in der Google-Suche verbessern. Andere Warnungen können in Zukunft zu Fehlern werden. Die folgenden Warnungen wurden auf Ihrer Website gefunden:

Feld “priceValidUntil” fehlt
Feld “aggregateRating” fehlt
Feld “priceCurrency” fehlt
Feld “review” fehlt
Ungültiges Preisformat in der Property “price”
Feld “brand” fehlt
Feld “url” fehlt
Feld “sku” fehlt
Keine globale Kennzeichnung angegeben (z. B. gtin, mpn, isbn)
Feld “description” fehlt

Habe nun folgenden Code eingefügt:

<div>
<div itemtype="http://schema.org/Product" itemscope>

  <meta itemprop="priceValidUntil" content="???" />
  <div itemprop="aggregateRating" itemtype="http://schema.org/AggregateRating" itemscope>
                <meta itemprop="reviewCount" content="???" />
                <meta itemprop="ratingValue" content="???" />
  </div>
  <meta itemprop="priceCurrency" content="EUR" />
  <div itemprop="review" itemtype="http://schema.org/Review" itemscope>
          <div itemprop="author" itemtype="http://schema.org/Person" itemscope>
            <meta itemprop="name" content="???" />
          </div>
          <div itemprop="reviewRating" itemtype="http://schema.org/Rating" itemscope>
            <meta itemprop="ratingValue" content="???" />
            <meta itemprop="bestRating" content="???" />
          </div>
  </div>
  <div itemprop="brand" itemtype="http://schema.org/Brand" itemscope>
          <meta itemprop="name" content="???" />
  </div>
  <meta itemprop="sku" content="???" />
  <meta itemprop="description" content="???" />

Und nun?

So wie ich das sehe, hast du einfach paar Zeilen Code irgendwoher kopiert und an zufälligen Stellen eingefügt, ohne darauf zu achten, ob du sie überhaupt brauchst.
Z.b. priceValidUntil sollte unterhalb von http://schema.org/Offer sein und nicht direkt im http://schema.org/Product
https://developers.google.com/search/docs/data-types/product?hl=de#microdata
Die Beschreibung dieser Eigenschaft sagt “The date after which the price is no longer available.”, also bis wann dieser Preis gültig ist. Sind deine Preise nur bis zu einem bestimmten Datum gültig? Ist dieses Datum im Shop irgendwo hinterlegt?

Das selbe gilt für Reviews. Du hast scheinbar keine Bewertungen, denn Review Microdata ist im Shop vorhanden und wird automatisch angezeigt, wenn Bewertungen vorhanden sind.

Auch brand und description sind im Template vorhanden, siehe Zeilen 114 und 317 in productmain.tpl:

Hier gilt die Regel: es kann nichts angezeigt werden, was nicht da ist. Ohne Produktdaten können auch keine Microdata generiert werden.

Lediglich bei Preis und SKU könnte man etwas nachbessern.

Preis:
Hier würde Ich empfehlen, das Theme zu aktualisieren. Das Problem mit der priceCurrency wurde am 18. März gefixt.
So sollte productmain.tpl in der Zeile 220 aussehen:

SKU:
Hier muss man wirklich noch die Hand anlegen, in der selbigen productmain.tpl ist die Artikelnummer in der Zeile 100. Füge das hier direkt drunter ein:
<meta itemprop="sku" content="[{$oDetailsProduct->oxarticles__oxartnum->value}]" />

2 Likes

Vielen lieben Dank!

Andere Frage: Sollte man das mit den Strukurierten Daten nicht ändern, also einfach belassen wie bisher, ergibt das einen Nachteil bzgl. Indizierung?

ob es wirklich Nachteile gibt, wissen nur die Google Mitarbeiter, die den Algorythmus dafür gebaut haben. Soweit ich weiß, gibts aktuell aber keine Benachteiligung dadurch, wie es schon in der Meldung von Google steht

Warnungen sind Verbesserungsvorschläge. … Warnungen können in Zukunft zu Fehlern werden

Ich persönlich erachte eine gute Datenpflege als viel sinnvoller,
z.B: eine EAN/MPN/GTIN/ASIN angeben für den Fall, dass jemand danach der bei google sucht.
Man könnte auch bei Google Trens nachschauen, im welchem Zusammenhand die Leute nach etwas bestimmten Suchen, guck mal hier in die Auflistung bei “Related Queries”:
https://trends.google.com/trends/explore?q=klimaanlage
Dann könnte man die Kurzbeschreibung dahingehend anpassen und irgendwelche Hauptmerkmale dort unterbringen.

2 Likes

Blockquote

DANKE

Ich mache wie du hier sagst, und bekomme immer gleiche fehler bei https://search.google.com/test/rich-results,

Feld “price” fehlt

mir zeigt das Tool, dass alles ok sei:

ich möchte sage das diese fehler bekommt nur wenn der Artikel varianten geben…

Beispiel in Hösen und Sweatshirten (wegen die Großer L, M XL…), auch wenn alle dieser Großer, der Preis gegeben habe…

in dem Artikel die keine varianten haben, bekomme nicht diese Fehler…

okay, ich sehe das Problem.
Ich bin kein SEO Profi und weiß es nicht mit absoluter Sicherheit, aber ich glaube, dass der Variantenvater ein AggreagateOffer und kein normales Offer sein muss.

1 Like

AggreagateOffer war nicht, weil bekomme zwei fehler…sonder UnitPriceSpecification in schema.org, jetzt bekomme bei https://search.google.com/test/rich-results, alles Grün… :grinning:

Ein screenshor wie ich der datei productmain.tpl habe…

2 Likes

Habe nun nach 3 Monaten folgende Meldung von Google bekommen:

Google hat Ihre Fehlerbehebung der Navigationspfade-Probleme auf der Website leckerinsekt.at geprüft. Bei dem betreffenden Problem handelte es sich um “Schema “data-vocabluary.org” veraltet”.

Es wurde bestätigt, dass die Fehler auf 46 Seiten Ihrer Website behoben wurden.

Direkt nach dem Block?

das ist völlig egal, der Code ist sowieso unsichtbar.

1 Like

Was soll das denn nun bedeuten?

Hier ist der Weg, wie ich die Lösung gefunden habe:
Fehlermeldung in die google Suche copy-paste’n und auf das erste Suchergebnis klicken:


Da wird exakt der gleiche Fall behandelt und jemand sagt auch, dass Google neuerdings andere/strengere Anforderungen an reviews microdata hat:

In dem verlinkten Beitrag steht, dass Reviews nur noch für bestimmte Typen zugelassen werden, nämlich:

Ein erneuter Blick auf die microdata im Template zeigt, dass dort ein Review für den Typ “Thing” hinterlegt ist, welches nach der oberen Liste aber nicht unterstützt wird.

Im selben Beitrag von Google ist ganz unten ein Link zu der aktualisierten Doku:

Dort vergleichen wir den Beispiel-Code von Google

mit dem Code im Template

und stellen fest, dass dass in unserem Code ein bisschen was fehlt.
Dann suchen wir in den Templates nach “itemreviewed” und finden es in widget/reviews/reviews.tpl:

<span itemprop="itemreviewed">[{$oDetailsProduct->oxarticles__oxtitle->value}] [{$oDetailsProduct->oxarticles__oxvarselect->value}]</span> 

und ergänzen ihn um fehlende itemscope itemtype="https://schema.org/Product" und zusätzliches Element mit itemprop="name", so wie im Code-Beispiel in der Doku:

<span itemprop="itemreviewed" itemscope itemtype="https://schema.org/Product">
    <span itemprop="name">[{$oDetailsProduct->oxarticles__oxtitle->value}] [{$oDetailsProduct->oxarticles__oxvarselect->value}]</span>
</span>

Speichern, cache leeren, neualden und schon sind die Reviews bei mir alle grün.

Meine probleme mit Feld “price” fehlt gehts weiter auch wenn ich dachte die ich gelöst habe…

Ich habe google gefragt und sie sagtet mir,

Dort sieht man dann im Testtool die richtige Struktur der Verschachtelung.
Es gibt ein Produkt. Das kann auch einen Preis haben.
Aber damit das Produkt gekauft werden kann gehört zu Offers der Preis.

und haben als beipiel zu folgen, dieser Link, meine probleme die ich weiß nicht wie er zu implementiert…

Mit Microdata probleme ich weiß nicht wie mache, ich habe auch in google gefragt und sie sageten mir,

da muss der Code vom Template des Shops angepasst werden.
hreflang ist auch noch nicht angepasst.

Mit dem hreflang habe gemacht wie auf diesen Link wird gesagt…

Wie sagtet, mit hreflang habe verändert der Code, aber mit Microdata anpasung, ich weiß nicht wie machen kann…

ich versuche aderirert,

<span itemprop="price">[{$oPrice->getPrice()}]</span>
<span itemprop="priceCurrency">[{$currency->name}]</span> 

in

{block name="details_productmain_priceperunit"}]
                        [{if $oUnitPrice}]
                            <div class="details-additional-information">
                                 <span itemprop="price">[{$oPrice->getPrice()}]</span>
                                 <span itemprop="priceCurrency">[{$currency->name}]</span>  
                                <span id="productPriceUnit">[{oxprice price=$oUnitPrice currency=$currency}]/[{$oDetailsProduct->getUnitName()}]</span>
                            </div>
                        [{/if}]
                    [{/block}]
                [{/oxhasrights}]

aber immer bekomme gleiche ergebnise…

itemprop=“name” ist eh vorhanden.
Und zwar so → <span itemprop="name">[{$review->oxreviews__oxtext->value|truncate:100}]</span>

Wie ist es nun richtig?

Hab es nun so gemacht: (REVIEWS)

<div class="hidden">
                    <span itemprop="itemreviewed" itemscope itemtype="https://schema.org/Product">
                    <span itemprop="description">[{$oDetailsProduct->oxarticles__oxtitle->value}] [{$oDetailsProduct->oxarticles__oxvarselect->value}]</span>
                    <span itemprop="name">[{$review->oxreviews__oxtext->value|truncate:100}]</span>
                    </span>
                </div>

Ist nun grün.

Schau mal auf die gesamtem Daten, die google extrachiert hat. Jetzt hast du auch ein zweites fehlerhaftes Product auf der Seite, dessen Name den ersten 100 Zeichen der Bewertung entspricht.

Hab nun deinen Code eingefügt:

<span itemprop="itemreviewed" itemscope itemtype="https://schema.org/Product">
<span itemprop="name">[{$oDetailsProduct->oxarticles__oxtitle->value}] [{$oDetailsProduct->oxarticles__oxvarselect->value}]</span>

Kommt trotzdem ein Fehler. Und zwar folgender: -> Du kannst entweder offers, review oder aggregateRating angeben.