web-dev-qa-db-ja.com

Schema.org:「about」プロパティとして製品を持つ

Schema.orgマークアップを使用して、Webページのメインコンテンツとして製品を定義します。次のHTMLでの私の考えは、構造を使用することです。

 - Webpage
 -- WebPageElement (mainContentOfPage of Webpage)
 --- Product (about of WebPageElement which is mainContentOfPage of Webpage)

ただし、このマークアップを使用すると、GoogleはaggregateRatingなどの製品プロパティを認識しないようです。 「構造化マークアップツール」は、製品の「about」プロパティを削除した場合にのみ満足されます。ただし、構造は次のようになります。

- Webpage
-- WebPageElement (mainContentOfPage of Webpage)
-- Product

製品はWebPageElementの一部ではなくなりました。製品ノードでプロパティ「mainContentOfPage」を直接使用しても、同じ結果が得られます。製品は正しく認識されません。 Productノードにはitempropsを含めることができないようです。 では、どのように進めばいいですか?

<body itemscope itemtype="http://schema.org/WebPage">
    <div itemscope itemtype="http://schema.org/WebPageElement" itemprop="mainContentOfPage">
        <div itemprop="about" itemscope itemtype="http://schema.org/Product">
            <h1 itemprop="name">Acme Toaster Oven</h1>
            <div itemprop="description">It toasts AND bakes.</div>
            <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">Rated <span itemprop="ratingValue">3</span>/5 based on <span itemprop="reviewCount">2</span> reviews</div>
            <div itemprop="review" itemscope itemtype="http://schema.org/Review"><span itemprop="name">A great toaster</span> - by <span itemprop="author">John</span>,
                <meta itemprop="datePublished" content="2013-10-16">October 26, 2013
                <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"><span itemprop="ratingValue">5</span>/5</div>
                <span itemprop="reviewBody">First I had bread.  Then I had toast.  Magic!</span>
            </div>
            <div itemprop="review" itemscope itemtype="http://schema.org/Review"><span itemprop="name">A small oven</span> - by <span itemprop="author">Mary</span>,
                <meta itemprop="datePublished" content="2013-10-16">October 26, 2013
                <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"><span itemprop="ratingValue">1</span>/5</div>
                <span itemprop="reviewBody">My 18-pound turkey wouldn't fit in this thing.</span>
            </div>
        </div>
    </div>
</body>

HTMLはここでテストできます: http://www.google.com/webmasters/tools/richsnippets

更新

「itemref」を試した後、 Googleのツール および Yandex および Structured Data Linter でこのコードを使用すると、かなり良い結果が得られました。

<body itemscope itemtype="http://schema.org/WebPage">
    <div itemscope itemtype="http://schema.org/WebPageElement" itemprop="mainContentOfPage">
        <meta itemprop="about" itemscope itemtype="http://schema.org/Product" itemref="theProduct" />
    </div>
    <div id="theProduct">
        <h1 itemprop="name">Acme Toaster Oven</h1>
        <div itemprop="description">It toasts AND bakes.</div>
        <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">Rated <span itemprop="ratingValue">3</span>/5 based on <span itemprop="reviewCount">2</span> reviews</div>
        <div itemprop="review" itemscope itemtype="http://schema.org/Review"><span itemprop="name">A great toaster</span> - by <span itemprop="author">John</span>,
            <meta itemprop="datePublished" content="2013-10-16">October 26, 2013
            <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"><span itemprop="ratingValue">5</span>/5</div>
            <span itemprop="reviewBody">First I had bread.  Then I had toast.  Magic!</span>
        </div>
        <div itemprop="review" itemscope itemtype="http://schema.org/Review"><span itemprop="name">A small oven</span> - by <span itemprop="author">Mary</span>,
            <meta itemprop="datePublished" content="2013-10-16">October 26, 2013
            <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"><span itemprop="ratingValue">1</span>/5</div>
            <span itemprop="reviewBody">My 18-pound turkey wouldn't fit in this thing.</span>
        </div>
    </div>
    </div>
</body>

唯一の副作用は、reviewsとaggregateRatingがWebPageとProductの両方に接続しているように見えることです。それが悪いのか分かりません。

6
Truls

先週のSchema.orgリリース( バージョン2. )は、2つの関連するプロパティを導入しました。

これにより、WebPageElement(最初はあまり役に立ちません)を省略して、次のようなものを使用できます。

<body itemscope itemtype="http://schema.org/WebPage">

  <!-- properties about the web page -->

  <div itemprop="mainEntity" itemscope itemtype="http://schema.org/Product">
    <!-- properties about the product, which is the primary entity -->
  </div>

</body>
2
unor

次のように、html要素でitempropを宣言する必要があるかもしれないという記事を見つけました。

<html lang="sv" itemscope itemtype="http://schema.org/Product" itemprop="[canonical]">

[標準]は、ページの実際の標準リンクに置き換えられます。

これで問題が解決するかどうかはわかりません。そうでない場合、 http://schema-creator.org/product.php で役立つスキーマ作成者がいます。

0
googlify

Googlifyの答えに同意します。また、schema.org/Productを使用する必要はありません。代わりに schema.org/Offer を使用し、次にitemprop = offersを使用して、必要に応じて内部にネストすることを検討してください。ただし、私のアドバイスに従い、 schema.org/WebPageElement itemtypeタグを一緒に使用するのをやめてください。それは冗長であり、それは便利です。 itemprop="mainContentOfPage"を単独で使用するだけで十分であり、正常に機能します。 sameAsまたはurlを使用する場合は、必ずaboutmainEntityおよびmainEntityOfPageプロパティを追加してください。

0