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:

 
 

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, srcnebo 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í!!

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?