Nuevo mainEntityOfPage requerido para datos estructurados del artículo

12

Eché un vistazo a los datos estructurados del artículo propuestos por Google y vi que hay nuevos campos obligatorios y recomendados, no estaban allí la semana pasada. Aqui esta el link:

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

La primera propiedad en la lista es:

  • mainEntityOfPage. @ id (recomendado)

No entiendo cuál debe ser el valor de la propiedad. ¿Qué es esta propiedad? ¿Es un enlace a:

..o un enlace a la publicación actual del blog como:

Tienen esto en su código de muestra:

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

Esto es lo que tengo actualmente, aún no se ajusta a las reglas de la herramienta de prueba: todavía estoy ocupado agregando todas las propiedades requeridas y al mismo tiempo tratando de agregar las propiedades recomendadas allí también:

<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>

También tengo esto en mi documento:

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

¿Esto de alguna manera entrará en conflicto con el código de muestra proporcionado por Google?

Brendan Vogt
fuente
Acabo de ver que sucedió lo mismo en mi sitio esta mañana y llegué a este hilo.
dasickle

Respuestas:

14

La mainEntityOfPagepropiedad se usa para dar la URL de una página en la que la cosa es la entidad principal. Puede ser más claro si observa la propiedad inversa mainEntity: esto le da a la entidad principal de una página ( vea un ejemplo ).

Por ejemplo, para una página web que contiene una sola publicación de blog, puede proporcionar uno de estos:

  • BlogPostingmainEntityOfPageWebPage
  • WebPagemainEntityBlogPosting

Estas propiedades son útiles para transmitir cuál es el contenido principal de una página (porque las páginas pueden contener múltiples elementos, por ejemplo, una ItemListcon WebPageelementos relacionados , una Persondescripción del autor, una WebSitepresentación de algunos metadatos, etc.).

(Consulte mi respuesta sobre Desbordamiento de pila para obtener una explicación más detallada).


Hay dos formas de usar mainEntityOfPage:

  • proporcionar la URL de la página
  • incrustar / hacer referencia al elemento de la página (normalmente a WebPage)

El segundo a menudo no tiene mucho sentido (preferiría usar la propiedad inversa mainEntity), y probablemente por esa razón Google recomienda / espera el primero.

Para proporcionar la URL, simplemente puede usar un linkelemento:

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

La Herramienta de prueba de datos estructurados de Google acepta esto.

En el ejemplo de Rich Snippet de Artículos , Google está usando un metaelemento con itemid:

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

Esto no es válido HTML5 + Microdata: si el metaelemento tiene un itempropatributo, también debe tener un contentatributo .

unor
fuente
¿y si también proporcionamos el contenido con el URL en el meta, por ejemplo, <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article" content='https://google.com/article' /> se va a validar bien y no muestra error en los datos estructurados herramienta de prueba
StarWars
@StarWars: Sí, esa es la forma de hacer que este metaelemento sea válido. Tenga en cuenta que el contentvalor sería ignorado, por lo que podría proporcionar un valor vacío.
hasta el
bien, ahora agregué content = "" a la metaetiqueta.
StarWars
¿Por qué utiliza Google en metalugar de linken sus ejemplos? ambos se validan en la herramienta de prueba de datos estructurados. Aunque, la vista previa es diferente. Cuando linkse utiliza, tiene mainEntityOfPage http://example.com/article-1mientras que en el caso de metamuestra @idy @typeatributos.
StarWars
@StarWars: Sí, esa es exactamente la diferencia: la metaforma crea un nuevo elemento con un tipo y un URI como identificador, la linkforma en que solo se vincula a una página. No tengo idea de por qué se usa la documentación de Google meta, especialmente porque creo que el linkcamino es más simple.
hasta el
2

¿Qué es esta propiedad?

Es complementario a las propiedades urly sameAs, como se describe en el mainEntityfondo .

Tiene un nombre idiosincrásico, ya que puede aplicarse a todos los elementos de tipo Thing. Si se aplicara solo a Articlesél, podría haberse llamado mainTopic/ mainTopicOfArticley haber sido más claro.

No entiendo cuál debe ser el valor de la propiedad.

Se espera que el valor de la propiedad sea un elemento de tipo CreativeWorko una URLreferencia que funcione de acuerdo con Schema.org. Eso significa que también podría ser un Articleo BlogPostingcomo usted mencionó. Sin embargo, si está creando páginas AMP, el valor debe ser una URL.

¿Esto de alguna manera entrará en conflicto con el código de muestra proporcionado por Google?

A pesar de lo que dice la Herramienta de prueba de datos estructurados de Google, su documentación ya no recomienda el uso mainEntityOfPagede páginas que no son AMP, por lo que puede omitirla.

Josh Habdas
fuente