BlogPosting Publisher Logo 'logo.itemtype tiene un valor no válido' en la Herramienta de prueba de datos estructurados de Google

13

Lo siguiente se ejecuta a través de la Herramienta de prueba de datos estructurados de Google como se esperaba:

<div>
    <div itemprop="publisher" itemscope id="organization-example" itemtype="https://schema.org/Organization">
        <a itemprop="url" href="https://example.com">
            <img itemprop="image logo" src="https://example.com/images/logo.png" alt="LOGO">
            <span itemprop="name">EXAMPLE</span>
            <span itemprop="description">This is an EXAMPLE</span>
        </a>
    </div>
</div>

<div itemscope itemtype="https://schema.org/WebPage" itemref="organization-example">
</div>

Pero cuando intento usar un BlogPostingse rompe la logopropiedad:

<div>
    <div itemprop="publisher" itemscope id="organization-example" itemtype="https://schema.org/Organization">
        <a itemprop="url" href="https://example.com">
            <img itemprop="image logo" src="https://example.com/images/logo.png" alt="LOGO">
            <span itemprop="name">EXAMPLE</span>
            <span itemprop="description">This is an EXAMPLE</span>
        </a>
    </div>
</div>

<article
    itemscope
    itemtype="https://schema.org/BlogPosting"
    itemref="organization-example"
>
</article>

Con el error:

https://example.com/images/logo.png (El atributo logo.itemtype tiene un valor no válido).

¿Alguien puede explicar por qué? ¿Y qué pasos podría tomar para solucionarlo?

Arth
fuente
Debe evitar usar itempropen la misma línea que a itemtype, ya que el editor es hijo de Organization, WebPage y BlogPosting. Mejor usar <body itemscope itemtype="https://schema.org/Organization">, <article itemscope itemtype="https://schema.org/BlogPosting"> <span itemprop="publisher">etc. , etc. No debería ser necesario repetir el logotipo varias veces, especialmente en una publicación de blog.
Simon Hayter
@SimonHayter Gracias, pero Publisher no es hijo de la Organización, y la Organización está en la parte superior de la Página Web, así que quería hacer referencia a ella desde el BlogPosting. ¿Sugiere la estructura Organización-> BlogPosting-> Publisher? Esto parece incorrecto.
Arth
@SimonHayter También https://schema.org/WebPage y todo el sitio está plagado de ejemplos que hacen exactamente eso ... itempropen la misma línea que itemtype.
Arth
Momento rubio, me equivocaré totalmente. Echaré un vistazo más tarde y te responderé :)
Simon Hayter

Respuestas:

15

Resulta que, debido a que BlogPostinges uno de los tipos admitidos por Google como un posible fragmento enriquecido, aplican más validación:

Pautas de documentación de búsqueda de Google para artículos

Esto requiere que el editor de un artículo logosea ​​de tipo ImageObjecty tenga una widthy heighten píxeles. BlogPostinges un subtipo de Article.

Este fragmento actualizado se valida a través de la Herramienta de prueba de datos estructurados de Google :

<div id='web-page-example' itemprop="mainEntityOfPage" itemscope itemtype="https://schema.org/WebPage" itemref="headline-example">
    <div>
        <div itemprop="publisher" itemscope id="organization-example" itemtype="https://schema.org/Organization">
            <a itemprop="url" href="https://example.com">
                <span itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
                   <img itemprop="url" src="https://example.com/images/logo.png" alt="LOGO">
                   <meta itemprop="width" content="600">
                   <meta itemprop="height" content="60">
                </span>   
                <span itemprop="name">EXAMPLE</span>
                <span itemprop="description">This is an EXAMPLE</span>
            </a>
        </div>
    </div>  
    <div
        id="blog-posting-example"
        itemprop="mainEntity"
        itemscope
        itemtype="https://schema.org/BlogPosting"
        itemref="organization-example web-page-example"
    >
        <span itemprop="author" itemscope itemtype="https://schema.org/Person">
            <span itemprop="name">Example Author</span>
        </span>
        <time itemprop="datePublished" datetime="2016-05-09T11:40:04+02:00">9th May 2016</time>
        <time itemprop="dateModified" datetime="2016-05-09T11:40:04+02:00">9th May 2016</time>
        <h1 id="headline-example" itemprop="name headline">Example Headline</h1>
        <span itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
            <img itemprop="url" src="https://example.com/images/blog.png" alt="LOGO">
            <meta itemprop="width" content="800">
            <meta itemprop="height" content="400">
        </span>
    </div>
</div>  
Arth
fuente
11

Una respuesta brillante y útil de @Arth arriba.

Para complementar la respuesta anterior (no competir con ella), aquí están los mismos Datos Estructurados usando el mismo vocabulario de schema.org , pero esta vez en JSON-LD:

    "publisher": {
        "@type": "Organization",
        "name": "myOrganization",
        "logo": {
            "@type": "ImageObject",
            "name": "myOrganizationLogo",
            "width": "60",
            "height": "600",
            "url": "http://my-organization.org/my-logo.png"
        }
    }

NB De acuerdo con https://developers.google.com/search/docs/data-types/articles

  1. El logotipo debe ser un rectángulo, no un cuadrado.

  2. El logotipo debe caber en un 60x600pxrectángulo y ser exactamente 60pxalto (preferido) o exactamente 600pxancho. (Por ejemplo, 450x45pxno sería aceptable, aunque encaje en el 600x60pxrectángulo).

Rounin
fuente