Nuovo richiesto mainEntityOfPage per i dati strutturati dell'articolo


12

Ho dato un'occhiata ai dati strutturati dell'articolo come proposto da Google e ho visto che ci sono nuovi campi obbligatori e consigliati, che non c'erano la settimana scorsa. Ecco il link:

https://developers.google.com/structured-data/rich-snippets/articles

La prima proprietà nell'elenco è:

  • mainEntityOfPage. @ id (consigliato)

Non capisco quale deve essere il valore della proprietà? Cos'è questa proprietà? È un link a:

..o un link al post attuale del blog come:

Hanno questo nel loro codice di esempio:

<meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://google.com/article" />

Questo è quello che ho attualmente, non è ancora conforme alle regole dello strumento di test - Sono ancora impegnato ad aggiungere tutte le proprietà richieste e allo stesso tempo provare ad aggiungere anche le proprietà consigliate:

<div itemscope itemtype="http://schema.org/BlogPosting">
   <h1 itemprop="headline">
      <a href="http:///www.example.com/blog/1001/my-blog-article" itemprop="url">My Blog Article</a>
   </h1>
   <p>Written by
      <span itemprop="author" itemscope itemtype="http://schema.org/Person">
         <span itemprop="name">Mase Kind</span>
      </span> on
      <time itemprop="datePublished" datetime="2015-11-16T15:30:00+02:00">November 16, 2015</time>
      <meta itemprop="dateModified" content="2015-12-10T12:29:00+02:00" />
      <div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
         <div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject"></div>
         <meta itemprop="name" content="My Company Name" />
      </div>
   </p>
   <div itemprop="articleBody">
      <p>first article body</p>
   </div>
</div>

Ho anche questo nel mio documento:

<body itemscope itemtype="http://schema.org/WebPage">
...
</body>

Ciò sarà in qualche modo in conflitto con l'esempio di codice fornito da Google?


Ho appena visto la stessa cosa accadere sul mio sito stamattina e sono atterrato su questo thread.
dasickle,

Risposte:


14

La mainEntityOfPageproprietà viene utilizzata per fornire l'URL di una pagina in cui l' elemento è l'entità principale. Potrebbe diventare più chiaro se guardi la proprietà inversa mainEntity: questo fornisce l'entità principale per una pagina ( vedi un esempio ).

Ad esempio, per una pagina Web che contiene un singolo post di blog, è possibile fornire uno di questi:

  • BlogPostingmainEntityOfPageWebPage
  • WebPagemainEntityBlogPosting

Queste proprietà sono utili per comunicare qual è il contenuto principale di una pagina (poiché le pagine potrebbero contenere più elementi, ad esempio, ItemListcon WebPageelementi correlati , Persondescrivendo l'autore, WebSitedando alcuni metadati, ecc.).

(Vedi la mia risposta su Stack Overflow per una spiegazione più dettagliata.)


Esistono due modi per utilizzare mainEntityOfPage:

  • fornire l'URL della pagina
  • incorporare / fare riferimento all'elemento della pagina (in genere a WebPage)

Il secondo spesso non ha molto senso (preferiresti usare la proprietà inversa mainEntity), e probabilmente per questo motivo Google consiglia / si aspetta il primo.

Per fornire l'URL, puoi semplicemente usare un linkelemento:

<article itemscope itemtype="http://schema.org/BlogPosting">
  <link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
</article>

Lo strumento di test dei dati strutturati di Google accetta questo.

Nell'esempio Rich Snippet di articoli , Google utilizza invece un metaelemento con itemid:

<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>

Microdati HTML5 + non validi: se l' metaelemento ha un itempropattributo, deve anche avere un contentattributo .


cosa succede se forniamo anche contenuti con url in meta, ad es <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article" content='https://google.com/article' /> . Convaliderà bene e non mostrerà errori nello strumento di test dei dati strutturati
StarWars

@StarWars: Sì, questo è il modo per rendere metavalido questo elemento. Si noti che il contentvalore verrebbe ignorato, quindi è possibile fornire un valore vuoto.
unor

ok, ora ho aggiunto content = "" al meta tag.
StarWars

Perché Google utilizza metainvece che linknei suoi esempi? entrambi convalidano nello strumento di test dei dati strutturati. Tuttavia, l'anteprima è diversa. Quando linkviene utilizzato, ha mainEntityOfPage http://example.com/article-1while nel caso in metacui mostri @ide @typeattributi.
StarWars

@StarWars: Sì, questa è esattamente la differenza: il metamodo in cui crea un nuovo elemento con un tipo e un URI come identificatore, il linkmodo in cui si collega a una pagina. Non ho idea del perché utilizzi la documentazione di Google meta, soprattutto perché penso che il linkmodo in cui è più semplice.
unor

2

Cos'è questa proprietà?

È supplementare alle proprietà urle sameAs, come descritto in mainEntitybackground .

Ha un nome idiosincratico in quanto può essere applicato a tutti gli elementi di tipo Thing. Se fosse stato applicato solo ad Articlesesso, avrebbe potuto essere chiamato mainTopic/ mainTopicOfArticleed essere stato più chiaro.

Non capisco quale deve essere il valore della proprietà?

Il valore della proprietà dovrebbe essere un elemento di tipo CreativeWorko un URLriferimento che funziona secondo Schema.org. Ciò significa che potrebbe anche essere un Articleo BlogPostingcome hai detto. Tuttavia, se stai costruendo pagine AMP, il valore dovrebbe essere un URL.

Ciò sarà in qualche modo in conflitto con l'esempio di codice fornito da Google?

Nonostante ciò che lo strumento di test dei dati strutturati di Google afferma che la loro documentazione non raccomanda più di utilizzare le mainEntityOfPagepagine per non AMP, quindi sei libero di ometterlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.