Proszę wziąć pod uwagę następujący kod oznaczony atrybutami w celu zapewnienia mikrodanych:
<!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>
Korzystanie z narzędzia do testowania danych strukturalnych Google daje pozytywne wyniki.
Jest to w porządku w przykładzie testowym, jednak chcemy wdrożyć mikrodane w różnych witrynach, których struktura HTML jest bardzo zróżnicowana. Aby zaimplementować atrybuty w ten sposób, konieczne będzie ręczne edytowanie znaczników HTML w każdej z witryn z osobna.
Najlepiej byłoby, gdybyśmy mogli wywołać pojedynczą funkcję, która pakuje wszystkie mikrodane w jednym miejscu; technicznie jest to możliwe przy użyciu metatagów w następujący sposób:
<!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>
Korzystanie z narzędzia Google do testowania danych strukturalnych daje te same pozytywne wyniki, co pierwszy test.
Dla porównania (nigdy nie robilibyśmy tego na prawdziwej stronie) Narzędzie do testowania danych strukturalnych Google zwraca błąd, jeśli próbujesz przekazać mikrodane ukryte przez CSS.
Tak więc zarówno normalny, jak i znacznik metatagowy dają takie same wyniki, jednak mam pewne obawy z powodu następujących stwierdzeń Google i Schema.org:
https://support.google.com/webmasters/answer/146750 stwierdza:
Zasadniczo Google będzie używać tylko oznaczonych danych, które są widoczne dla użytkownika. Ukryte dane zostaną zignorowane. Jednak w kilku okolicznościach przydatne może być dostarczenie zarówno treści do odczytu maszynowego, jak i czytelnego dla człowieka. Na przykład ciąg tekstowy „Urodziny Elvisa” jest znaczący dla wielu ludzi, ale dla wyszukiwarek nie jest tak znaczący, jak 1935-01-08. Podobnie, ludzcy czytelnicy mogą wywnioskować znaczenie symbolu $, ale przydatne może być wskazanie wyszukiwarkom, czy ceny podane są w peso, czy w dolarach.
http://schema.org/docs/gs.html stany (w związku z użyciem metatagów):
Tę technikę należy stosować oszczędnie. Używaj meta z zawartością tylko do informacji, których inaczej nie można oznaczyć.
http://schema.org/docs/faq.html#13 stwierdza:
Zasadniczo należy oznaczać tylko treść widoczną dla osób odwiedzających stronę internetową, a nie zawartość ukrytych elementów div lub innych ukrytych elementów strony.
Moje pytania to:
- Mimo że żadne błędy nie są zwracane, czy wyszukiwarka karałaby nas za używanie metatagów w ten sposób (np. Powielanie treści, ukrywanie informacji itp.)?
- Jeśli to nie jest odpowiednie, czy możesz zasugerować jakikolwiek sposób rozdzielenia mikrodanych od rzeczywistych danych, czy też będziemy musieli ugryźć punktor i zaimplementować to w HTML indywidualnie dla każdego przypadku?