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?


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>  

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.