Logo Publisher BlogPosting 'logo.itemtype memiliki nilai tidak valid' di Alat Pengujian Data Terstruktur Google

13

Berikut ini berjalan melalui Alat Pengujian Data Terstruktur Google seperti yang diharapkan:

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

Tetapi ketika saya mencoba menggunakan BlogPostingitu merusak logoproperti:

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

Dengan kesalahan:

https://example.com/images/logo.png (Atribut logo.itemtype memiliki nilai yang tidak valid.)

Adakah yang bisa menjelaskan mengapa? Dan langkah apa yang bisa saya ambil untuk memperbaikinya?

Arth
sumber
Anda harus menghindari penggunaan itemproppada baris yang sama dengan a itemtype, karena penerbit adalah anak dari Organization, WebPage dan BlogPosting. Lebih baik menggunakan <body itemscope itemtype="https://schema.org/Organization">lalu <article itemscope itemtype="https://schema.org/BlogPosting"> <span itemprop="publisher">dll ... Seharusnya tidak perlu mengulangi logo beberapa kali, terutama dalam posting blog.
Simon Hayter
@SimonHayter Terima kasih, tetapi Penerbit bukan anak dari Organisasi, dan Organisasi berada di bagian atas WebPage jadi saya ingin merujuknya dari BlogPosting .. Apakah Anda menyarankan struktur Organisasi-> BlogPosting-> Penerbit? Ini sepertinya salah.
Arth
@SimonHayter Juga https://schema.org/WebPage dan seluruh situs penuh dengan contoh-contoh melakukan hal itu .. itemproppada baris yang sama dengan itemtype.
Arth
Saat pirang, saya akan benar-benar salah. Saya akan memeriksanya nanti dan kembali kepada Anda :)
Simon Hayter

Jawaban:

15

Ternyata, karena BlogPostingmerupakan salah satu jenis yang didukung oleh Google sebagai Cuplikan Kaya yang mungkin, mereka menerapkan lebih banyak validasi:

Panduan Dokumentasi Pencarian Google untuk Artikel

Ini membutuhkan Penerbit Artikel untuk logojenis ImageObjectdan memiliki widthdan heightdalam piksel. BlogPostingadalah subtipe dari Article.

Cuplikan yang diperbarui ini memvalidasi melalui Alat Pengujian Data Terstruktur 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
sumber
11

Jawaban cemerlang dan bermanfaat oleh @Arth di atas.

Untuk melengkapi jawaban di atas (tidak bersaing dengan itu), di sini adalah Data Terstruktur yang sama menggunakan kosakata schema.org yang sama , tetapi kali ini di 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 Menurut https://developers.google.com/search/docs/data-types/articles

  1. Logo harus berbentuk persegi panjang, bukan persegi.

  2. Logo harus sesuai dengan 60x600pxsegi empat., Dan bisa menjadi sangat 60pxtinggi (disukai), atau persis 600pxlebar. (Misalnya, 450x45pxtidak akan diterima, meskipun cocok dengan 600x60pxpersegi panjang.)

Rounin
sumber