Používám značení Schema.org pro a Person
, ale při používání nástroje Google získávám nekonzistentní výsledky v nástroji Google Rich Snippet Testing Tool značka vs.
štítek. Vezměte tyto dva příklady:
username
username
První ukazuje, že název je analyzován jako username
, ale když jsem se pokusil druhý uložit do HTML, ukazuje, že uživatelské jméno je http://example.com/user/username
- tj. URL odkazu.
Proč se to děje a je to správné chování? Nemohu najít žádné zdroje, které by rozlišovaly mezi itemprop
na odkazu vs. span
.
- A proto dávám přednost použití JSON-LD.
- 1 @ Simon, proč opakovat celý svůj obsah v bloku JSON? Dává mi smysl použít existující HTML.
- Protože často psaní obsahu kolem schématu není přirozené, protože častěji začnete organizovat a zobrazovat obsah stránky pro Google a Bing a ne pro návštěvníky. Správa JSON-LD je snazší a netrpí tím, že musíte pracovat s UX kolem kódu. Kromě toho lze do Správce značek Google přidat JSON-LD, který je ještě rychlejší a šetří váš server, aby musel obsluhovat tento takzvaný SAME CONTENT :)
- To se mi nikdy nestalo. Přidávám atributy ke stávajícím prvkům, občas přidávám obalové prvky, ale nikdy jsem nemusel měnit design nebo UX tak, aby vyhovovalo schématu.
Co říká specifikace
Ano, toto chování je správné. Oddíl 5.4 specifikace W3C Microdata popisuje, která hodnota bude použita.
Ve většině případů se obsah prvku používá jako itemprop
hodnota, ale v některých případech se hodnota atributu použije jako itemprop
hodnota.
To je případ těchto šesti atributů¹: content
², src
, href
, data
, value
, datetime
.
Co to znamená v praxi
Pokud chcete použít obsah souboru a
element (místo URL v jeho href
atribut) jako hodnotu vlastnosti musíte použít / přidat vhodný nadřazený nebo podřízený prvek:
property value
property value
Pokud chcete zadat adresu URL jako hodnotu vlastnosti, musíte použít itemprop
na jednom z Prvky vlastnosti URL (tj. prvky, které mohou mít a href
, src
nebo data
atribut). To by tedy bylo neplatné (pokud nechcete poskytnout řetězec jako hodnotu, která vypadá jako URL):
http://example.com/foo ?> var13 ->
¹ Tento prvek musí mít platný atribut. Takže za (neplatný!) <?php , bude použit obsah prvku, nikoli
href
hodnota.
² Ve starých specifikacích Microdata WHATWG a W3C je pouze meta
prvek může mít content
atribut, ale nová specifikace W3C Microdata (aktuálně pracovní koncept) umožňuje content
na libovolném prvku. Pokud má prvek a content
atribut a také jeden z dalších uvedených atributů, content
zvykne si.
³ Díky mikrodatům je neplatné mít jednu z Prvky vlastnosti URL bez příslušného atributu URL (tj. href
, src
, data
), s výjimkou link
prvek (ale to již vyžaduje HTML, aby měl href
atribut).
- Jako vždy (!), Vynikající! Na zdraví!!