BreadcrumbListの実装
著
schema.orgのパンくずリストをようやくGoogleがサポート開始 | 海外SEO情報ブログを読んで、パンくずリストと呼ばれる何かの構造化データをちゃんと実装しなきゃ、と思いました。昨年末に勤務先のBlogでschema.org v1.92で追加されたBreadcrumbListという記事を書いていましたが、まさにそのBreadcrumbListを実装しようということです。まずは当覚え書きで採用しているマークアップパターンを実験台に、
<div class="topic_path" itemprop="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList">
現在地:<span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><meta itemprop="position" content="1"><a href="/" itemprop="item"><span itemprop="name">ホーム</span></a></span> > <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><meta itemprop="position" content="2"><a href="/blog/" itemprop="item"><span itemprop="name">覚え書き</span></a></span> > <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><meta itemprop="position" content="3"><a href="/blog/archives/" itemprop="item"><span itemprop="name">月別アーカイブ</span></a></span> > <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><meta itemprop="position" content="4"><em itemprop="item"><span itemprop="name">2015年6月</span><meta itemprop="url" content="http://kidachi.kazuhi.to/blog/archives/2015_06.html"></em></span>
</div>
みたいにしてみました。現状、もやもやポイントは以下の2点:
- 以前からbody要素で itemscope itemtype="http://schema.org/WebPage" を指定していたので、itemprop="breadcrumb" は残しました。BreadcrumbListが利用できる今となっては、残す必要性はたぶん無いとは思いつつ、breadcrumb property has no defined purpose alongside BreadcrumbList · Issue #529 · schemaorg/schemaorgの行方が不透明だし、残したところで害はなかろうということで。
- 自身のページへのリンクを設けることを好まず、序列的に最後の(=当該ページに相当する)アイテムについては、a要素ではなくem要素を使っていたのですけど、今回の改修ではそれを維持することに。つまりem要素に itemprop="item" を指定してみたのですが、どこかしらに当該ページの URL を記述したかったので、em要素内に itemprop="url" なmeta要素を含めてみました。Structured Data Testing Toolで妥当性をチェックしてみたところ、一応「All good」という結果が返ってくるものの、当該ページのところの表示がちょっとよくわからない結果に(ページタイトルに相当するラベルが複数表示されてしまう)。Search Consoleでみてもエラーは発生していないから、多分マークアップは問題ないと思うのだけど、ちょっと理由がわからずキモチ悪い。