web-dev-qa-db-ja.com

パンくずリストは「メイン」コンテンツdiv内にあり、記事の構造化データに参加する必要がありますか?

wordpressサイトで、私のテーマは「メイン」コンテンツdiv内のブレッドクラムを出力します。したがって、次のようになります。

<main class="content" itemtype="http://schema.org/Blog ETC
   <div class="breadcrumbs">
   <div class="entry-title"> Post title here
And so on.

しかし、私はパンくずリストをコンテンツdivの上に移動したいと思います。私はGenesisを使用しているため、フックを使用してこれを簡単に行うことができます。ただし、そうすると、パンくずリストはメインコンテンツとそのコンテンツのschema.orgマークアップデータの一部ではなくなります。

だから私は私の質問だと思う:パンくずリストは本当にメインのコンテンツdiv内にある必要があり、したがってBlog/CreativeWork /またはその投稿に使用されるschema.orgマークアップデータ内にある必要がありますか?それでも問題なく使用できますか?それらをヘッダーの上に移動することもできます(ヘッダーの上に配置するのは意味がありませんが、違いがあるかどうかを確認するためにこれを尋ねました)?

2
ClawDuda

リンクされた例からの関連マークアップは次のとおりです。

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

  <main itemprop="mainContentOfPage">

    <div itemprop="breadcrumb">

      <span prefix="v: http://rdf.data-vocabulary.org/#">
        <span typeof="v:Breadcrumb"><a href="/" rel="v:url" property="v:title">Home</a></span> ▸ 
        <span typeof="v:Breadcrumb"><a href="/foo" rel="v:url" property="v:title">Foo</a></span> ▸ 
        <span typeof="v:Breadcrumb"><strong class="breadcrumb_last" property="v:title">Bar</strong></span>
      </span>

    </div>

  </main>

</body>

サンプルスニペットとは異なり、アイテム(WebPage)はbody要素ではなく、main要素で指定されます。これにより、mainアイテムのスコープ内にあるため、WebPage要素からブレッドクラムを移動できます。

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

  <div itemprop="breadcrumb">
  </div>

  <main itemprop="mainContentOfPage">
  </main>

</body>

アイテムを指定するためにbodyではなくmain要素を使用しない場合は、 Microdataのitemref属性 を使用する必要があります。

<body>

  <div itemprop="breadcrumb" id="breadcrumbs">
  </div>

  <main itemscope itemtype="http://schema.org/WebPage" itemref="breadcrumbs">
  </main>

</body>

その場合、パンくずリストの親として他のアイテムを指定することはできません(例:body)。

1
unor

Googleはページの内容に関係なく何を確立するので、SEOを害することはありません。パンくずのようなものは、ソースコードで使用される位置とマークアップに関係なく、Googleによって検出されます。

ただし、セマンティックWebサイトが必要な場合は、これを解決する必要があります。WordPressの「ループ」を編集することで簡単に修正できます。 genesis_custom_loop() を使用するのと同じように簡単です。または、単一の投稿ファイルを複製し、スキーマでブレッドクラムの後に追加のdivを追加します。

2
Simon Hayter