schema.org - ¿Cómo implementar "mainEntityOfPage" en este sitio específico?
microdata google-rich-snippets (1)
Acerca del ejemplo de microdatos de Google
El ejemplo de microdatos de Google no es válido.
Si el
meta
elemento tiene el atributo
itemprop
, se requiere el atributo de
content
(
details
).
Describí
diferentes formas de especificar
mainEntityOfPage
en Microdata
, siendo la más sencilla un elemento de
link
que crea un valor de URL (en lugar de otro elemento de Microdata):
<link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
mainEntity
Es más fácil entender el uso de
mainEntityOfPage
si primero miramos su propiedad inversa,
mainEntity
.
Para una
WebPage
BlogPosting
que contiene un
BlogPosting
, podríamos tener:
<body itemscope itemtype="http://schema.org/WebPage">
<article itemprop="mainEntity" itemscope itemtype="http://schema.org/BlogPosting">
</article>
</body>
Esto significa: hay una
WebPage
BlogPosting
y una
BlogPosting
, y la
BlogPosting
es la "entidad principal" descrita en esta
WebPage
.
Para denotar esto, tiene sentido especialmente si hay más elementos involucrados, por ejemplo, una
Person
describe al autor, cinco elementos más de
BlogPosting
para publicaciones relacionadas, un elemento de
WebSite
que proporciona algunos metadatos, etc. Gracias a
mainEntity
/
mainEntityOfPage
, los consumidores pueden aprender cuál es el principal / elemento principal en esa página es (es decir, qué significa la página).
mainEntityOfPage
El siguiente ejemplo con
mainEntityOfPage
daría como resultado datos estructurados equivalentes como el ejemplo con
mainEntity
de arriba:
<article itemscope itemtype="http://schema.org/BlogPosting">
<div itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/WebPage">
</div>
</article>
Como puede ver, el elemento para el elemento
BlogPosting
contiene el elemento para el elemento
WebPage
.
Esto es, por supuesto, un marcado bastante inusual.
Pero la propiedad
mainEntityOfPage
no solo espera un elemento (
CreativeWork
) como valor, sino que también espera una URL.
Entonces, en lugar de proporcionar un elemento de página web explícitamente, puede proporcionar la URL de la página:
<article itemscope itemtype="http://schema.org/BlogPosting">
<link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
</article>
(Esto es lo que Google espera, de acuerdo con su documentación para los Artículos Rich Snippet ).
Excursus: URL de página vs. publicación
Muchos sitios no diferencian entre la URL de la página web y la URL de la publicación del blog. Para estos sitios puede parecer una tontería decir algo como
http://example.com/article-1 (the blog post)
is the ''mainEntityOfPage''
http://example.com/article-1 (the web page)
http://example.com/article-1 (the web page)
has ''mainEntity''
http://example.com/article-1 (the blog post)
Pero puede ser útil de todos modos (por ejemplo, para elegir qué elemento es el principal, porque los otros elementos no tendrán esta declaración; o para un nodo en blanco; etc.).
Sin embargo, algunos sitios se diferencian (especialmente para los datos vinculados ), por lo que podrían indicar algo como
http://example.com/article-1#this (the blog post)
is the ''mainEntityOfPage''
http://example.com/article-1 (the web page)
http://example.com/article-1 (the web page)
has ''mainEntity''
http://example.com/article-1#this (the blog post)
Aquí,
http://example.com/article-1#this
representa la publicación del blog, y
http://example.com/article-1
representa la página con información sobre esta publicación (o el contenido de la publicación en sí).
Un ejemplo más claro sería una persona y una página sobre esta persona;
o un edificio y una página sobre este edificio.
Vea mi respuesta para ver un ejemplo de
por qué desea hacer esto
.
(Pero, como se explicó anteriormente, no tiene que diferenciar; puede usar la misma URL para ambos).
Eche un vistazo aquí: https://developers.google.com/structured-data/testing-tool?url=https%253A%252F%252Fglamourina.net%252Fen%252F
¿Cómo puedo agregar correctamente
mainEntityOfPage
a este sitio?
En el ejemplo de documentación de Google veo algo como esto:
<div itemscope itemtype="http://schema.org/NewsArticle">
<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>
Pero este es un blog de autor único. Y presenta blogPosts.
<article itemscope itemtype="https://schema.org/BlogPosting" class="singlearticles">
Sería bueno si lo cambio así:
<article itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://linktoarticle"/>
No estoy seguro si entiendo bien el uso de
mainEntityOfPage
.
Le agradecería si alguien puede sugerirme cómo puedo hacer para este caso / sitio web específico.
No genéricamente, porque cada sitio puede tener una
mainEntityOfPage
diferente, pero necesito saber y comprender la implementación correcta para este sitio.