Bitte beachten Sie den folgenden Code, der mit Attributen gekennzeichnet ist, um Mikrodaten bereitzustellen:
<!DOCTYPE html>
<html>
<head>
<title>Micro data test - Normal version</title>
</head>
<body>
<div itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">Product name</h1>
<img alt="" itemprop="image" src="http://placehold.it/200x200" />
<div itemprop="description">This is the product description.</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<meta content="in_stock" itemprop="availability" />
<span content="GBP" itemprop="priceCurrency">£</span><span itemprop="price">100.00</span>
</div>
</div>
</body>
</html>
Die Verwendung des Testtools für strukturierte Daten von Google liefert positive Ergebnisse.
Dies ist in dem Testbeispiel in Ordnung, wir möchten jedoch Mikrodaten auf einer Vielzahl von Sites implementieren, deren HTML-Struktur stark variiert. Um die Attribute auf diese Weise zu implementieren, muss jemand das HTML-Markup auf jeder Site einzeln manuell bearbeiten.
Vorzugsweise möchten wir in der Lage sein, eine einzelne Funktion aufzurufen, die alle Mikrodaten an einem Ort verpackt. technisch ist dies durch die Verwendung von Meta-Tags auf folgende Weise möglich:
<!DOCTYPE html>
<html>
<head>
<title>Micro data test - Meta tag version</title>
</head>
<body>
<meta itemscope itemtype="http://schema.org/Product" itemref="microName microImage microDescription microOffer" />
<meta id="microName" itemprop="name" content="Product name" />
<link id="microImage" itemprop="image" href="http://placehold.it/200x200" />
<meta id="microDescription" itemprop="description" content="This is the product description." />
<meta id="microOffer" itemprop="offers" itemscope itemtype="http://schema.org/Offer" itemref="microCurrency microPrice microAvail" />
<meta id="microAvail" itemprop="availability" content="in_stock" />
<meta id="microCurrency" itemprop="priceCurrency" content="GBP" />
<meta id="microPrice" itemprop="price" content="100.00" />
<div>
<h1>Product name</h1>
<img alt="" src="http://placehold.it/200x200" />
<div>This is the product description.</div>
<div>£100.00</div>
</div>
</body>
</html>
Mit dem Testtool für strukturierte Daten von Google erhalten Sie die gleichen positiven Ergebnisse wie mit dem ersten Test.
Zu Referenzzwecken (wir würden dies niemals auf einer tatsächlichen Website tun) gibt das Google Structured Data Testing Tool einen Fehler zurück, wenn Sie versuchen, durch CSS verborgene Mikrodaten zu übergeben.
Sowohl das normale als auch das Meta-Tag-Markup führen zu denselben Ergebnissen. Aufgrund der folgenden Aussagen von Google und Schema.org habe ich jedoch einige Bedenken:
https://support.google.com/webmasters/answer/146750 lautet:
In der Regel verwendet Google nur markierte Daten, die für den Nutzer sichtbar sind. Versteckte Daten werden ignoriert. In einigen Fällen kann es jedoch nützlich sein, sowohl eine maschinenlesbare als auch eine für Menschen lesbare Version Ihres Inhalts bereitzustellen. Beispielsweise ist die Textzeichenfolge "Elvis 'Geburtstag" für viele menschliche Leser von Bedeutung, für Suchmaschinen jedoch weniger aussagekräftig als der 08.01.1935. Ebenso können menschliche Leser auf die Bedeutung des $ -Symbols schließen, aber es kann nützlich sein, Suchmaschinen gezielt mitzuteilen, ob Ihre Preise in Pesos oder in Dollar angegeben sind.
http://schema.org/docs/gs.html gibt an (in Bezug auf die Verwendung von Meta-Tags):
Diese Technik sollte sparsam eingesetzt werden. Verwenden Sie Meta mit Inhalten nur für Informationen, die ansonsten nicht gekennzeichnet werden können.
http://schema.org/docs/faq.html#13 lautet:
Im Allgemeinen sollten Sie nur den Inhalt markieren, der für Personen sichtbar ist, die die Webseite besuchen, und nicht den Inhalt in ausgeblendeten Divs oder anderen ausgeblendeten Seitenelementen.
Meine Fragen sind:
- Wenn keine Fehler zurückgegeben werden, würden wir dann von Suchmaschinen bestraft, wenn wir Meta-Tags auf diese Weise verwenden (dh doppelten Inhalt, versteckte Informationen usw.)?
- Wenn dies nicht geeignet ist, können Sie eine Möglichkeit vorschlagen, die Mikrodaten von den tatsächlichen Daten zu trennen, oder müssen wir die Kugel beißen und diese von Fall zu Fall in HTML implementieren?