Logo wydawcy BlogPosting „logo.itemtype ma nieprawidłową wartość” w narzędziu do testowania danych strukturalnych Google

13

Zgodnie z oczekiwaniami narzędzie Google do testowania danych strukturalnych działa :

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

Ale kiedy próbuję użyć BlogPosting, psuje logowłaściwość:

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

Z błędem:

https://example.com/images/logo.png (Atrybut logo.itemtype ma niepoprawną wartość.)

Czy ktoś może wyjaśnić, dlaczego? Jakie kroki mogę podjąć, aby to naprawić?

Arth
źródło
Należy unikać korzystania itempropz tej samej linii co itemtype, ponieważ wydawca jest dzieckiem organizacji, strony internetowej i blogu. Lepiej <body itemscope itemtype="https://schema.org/Organization">wtedy użyć <article itemscope itemtype="https://schema.org/BlogPosting"> <span itemprop="publisher">itp ... Nie powinno być potrzeby powtarzania logo wiele razy, szczególnie w poście na blogu.
Simon Hayter
@SimonHayter Dzięki, ale Wydawca nie jest dzieckiem organizacji, a Organizacja jest na górze strony internetowej, więc chciałem odwołać się do niej z BlogPosting. Sugerujesz strukturę Organizacja-> BlogPosting-> Wydawca? To wydaje się niepoprawne.
Arth,
@SimonHayter Również https://schema.org/WebPage i cała strona jest pełna przykładów, które robią dokładnie to ... itempropw tej samej linii co itemtype.
Arth,
Chwila blond, całkowicie się mylę. Zajmę się później i wrócę do ciebie :)
Simon Hayter

Odpowiedzi:

15

Okazuje się, ponieważ BlogPostingjest to jeden z typów obsługiwanych przez Google jako możliwy fragment rozszerzony, które stosują większą weryfikację:

Dokumentacja Google - wytyczne dotyczące dokumentacji artykułów

Wymaga to artykułu wydawcy logobyć typu ImageObjecti mają widthi heightw pikselach. BlogPostingjest podtypem Article.

Ten zaktualizowany fragment sprawdza za pomocą narzędzia do testowania danych strukturalnych 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
źródło
11

Świetna i pomocna odpowiedź @Arth powyżej.

Aby uzupełnić powyższą odpowiedź (nie konkurować z nią), oto te same dane strukturalne przy użyciu tego samego słownika schema.org , ale tym razem w 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 Według https://developers.google.com/search/docs/data-types/articles

  1. Logo powinno być prostokątem, a nie kwadratem.

  2. Logo powinno mieścić się w 60x600pxprostokącie i być dokładnie 60pxwysokie (preferowane) lub dokładnie 600pxszerokie. (Na przykład 450x45pxbyłoby to nie do przyjęcia, nawet jeśli mieści się w 600x60pxprostokącie).

Rounin
źródło