itemprop = 'image'マークアップが正しくないのはなぜですか?


9

私はMicrodataを実験しており、私のブログで試してみようと思っていました。私が使用していたテンプレートには、すでにいくつかのマークアップが追加されています。それは素晴らしいものではなかったので、私はできることを修正しました。

私の運を試すために、最新の投稿にマークアップを追加しましたが、Googleの構造化データテストツール(SDTT)はitemprop='image'属性に不満があり、その理由がわかりません。

構造化テストツールのエラー

結果ページ

その間のデータをすべて構造化したのは、その間のすべてのコードを無視して、私の理解です。

<div itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
  <div itemprop='articleBody'>
    <a href="1.png" itemprop="url"><img itemprop="image sharedContent" src="1.png" /></a>
    <a href="2.png" itemprop="url"><img itemprop="image sharedContent" src="2.png" /></a>
    <a href="3.png" itemprop="url"><img itemprop="image sharedContent" src="3.png" /></a>
  </div>
</div>

そして、これは私には正しいようです。 BlogPosting特性を有することができるarticleBodyimageに従ってhttps://schema.org/BlogPostingが、SDTTによると:

属性itemtypeの値が無効です。

実際、上記のサンプルコードでSDTTを試​​したところ、検証に失敗しました。

SDTTのコード例

だから私は明らかに何かが欠けています。何が悪いのですか?


この質問のリンクの一部は、質問に回答する必要がないため削除されました。
ジョンコンデ

なぜ広く使用されているタグが削除されたのですか?
ケンシャープ

回答:


15

schema.org/BlogPosting画像はImageObjectとURLを許可しますが、GoogleはImageObjectのみを許可するため、エラーが発生します。意図したマークアップは:

<!-- my code -->
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
  <img src="image.jpg" itemprop="url">
</div>

               

もう1つの相違点はschema.org/ImageObjectが推奨するものcontentUrlですが、Googleはを推奨urlしているため、上記の使用法です。


コメントのコードに応じて、構造がまだ正しくありません。行ごとに説明します。

<!-- your code -->
<div itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>

マイナーなポイントですが、XHTMLを使用しない限り、itemscope='itemscope'誤りです。itemscope(後で行ったように)使用します。

<!-- your code -->
  <div itemprop='articleBody'>
    <div itemscope itemtype="http://schema.org/ImageObject"/>

ImageObjectはarticleBodyプロパティの子ですが、この方法では関連付けていません。このように、プロパティが関連付けられておらず、ImageObjectが関連付けられていないarticleBodyがあります。あなたは使うべきです

<!-- my code -->
    <div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">

また、/>この要素には子とクロージングがあるため、XHTMLを試行している場合でも不正解です</div>>上記のスニペットに含めたように使用します。

<!-- your code -->
      <a href="1.png" itemprop="url"><img itemprop="image sharedContent" src="1.png" /></a>

ここでsharedContentは何をしていますか?sharedContentは、SocialMediaPostingのプロパティとして使用される場合、CreativeWorkを期待します。ImageObjectのプロパティとしても、imgのプロパティとしても使用できません。

あなたの他のコードスニペット以下のようにsharedContentプロパティを置くも間違っています。

<!-- your code -->
<div itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
  <div itemprop='articleBody'>
    <div itemprop='sharedContent'>
      <div itemscope itemtype="http://schema.org/ImageObject"/>

sharedContentは適切な場所にありますが、CreativeWorkである必要があります。構造化データテストツールで示されるように、ImageObjectはまだBlogPostingに関連付けられていません。

                                          

以下は正しいコードです。

<!-- my code -->
<div itemscope itemtype="http://schema.org/BlogPosting">
  <div itemprop="articleBody">
    <div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
      <a href="1.png" itemprop="url"><img itemprop="image" src="1.png"></a>
    </div>
    <div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
      <a href="2.png" itemprop="url"><img itemprop="image" src="2.png"></a>
    </div>
    <div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
      <a href="3.png" itemprop="url"><img itemprop="image" src="3.png"></a>
    </div>
  </div>
</div>

そうですか。その子として追加するとImageObject失敗しますsharedContentpastebin.com/cSgVZNyE。削除sharedContentすると幸せになります:pastebin.com/rieWwSM6。各ラッピングimage親にsharedContentpastebin.com/AmpBDqJsは)幸せに検証しますが、GoogleのSTDDはそれを無視するので、これはありますか?STDDはあれば、非常に満足してcontentURL使用されているだけでなくpastebin.com/23wBvx8F。それで私はそれを修正し、Googleはそれを間違ったように見えますか?それが最初のはずです。relevant関連するすべてのタグを追加することで、すべてを和らげることができると思います。ありがとう!😀
ケン・シャープ

1
@ケンコードに関する私のフィードバックについては、私の編集を参照してください。
2016

TSは基本的なBloggerテンプレートのタイプを使用するため、テンプレート全体を改造しないとコードを使用できません。変更は、構造化データのレベルではなく、テンプレートレベルで行う必要があります。
エフゲニー

@grgarside、ありがとうございます。あなたは確かに正しいですsharedContent-私はそれをすべて間違って使用しました。とりあえず削除しました。スキーマをもう一度見ていると、スキーマをで使用する必要はないと思いますCreativeWork。を無視するだけ/>です。急いで入力したもので、元のコードはXHTMLです。私の例では2つを混ぜただけです(したがって、2つのバージョンのitemscope)。最終的なコードは正直です。😁–
ケンシャープ

@Evgeniyテンプレートは編集中か、まったく機能しません。私の元の質問には、誰でも簡単にチェックできるリンクが含まれていましたが、2つのウォリーがリンクを編集してしまい、編集にうんざりしています。だから、ここでもう一度説明します。
Ken Sharp

2

Google構造化データテスターが画像を無効としてマークすることで、同様の問題が発生しました。どうやら、ソースがlocalhostドメインであるイメージは受け入れません。ステージングサーバーに展開するとすぐに、構造化マークアップは検証に合格しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.