bootstrap3になって、パンくずのパークアップが変更されたのは皆さんご存知ですよね。
その変更によって、パンくずをmicrodata形式でリッチスニペット化する際に問題が起きるようになりました。
bootstrap2のパンくずのリッチスニペット
bootstrap2の時は以下でgoogleリッチスニペットのパンくずを実現していました。
microdata形式です。
<ul class="breadcrumb"> <li> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="/" itemprop="url"><span itemprop="title">TOP</span> <span class="divider">/</span></a> </div> </li> <li> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="${categoryTopUrl}" itemprop="url"><span itemprop="title">Apache Solr</span> <span class="divider">/</span></a> </div> </li> <li class="active"> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="${currentUrl}" itemprop="url"><span itemprop="title">solrのReplicationHandlerで簡単レプリケーション!</span></a> </div> </li> </ul>
bootstrap3のパンくずマークアップ
続いてbootstrap3です。<ul>が<ol>に変わったのと、
区切り線のdividerが無くなった点が主な変更点です。
Redirecting…
<ol class="breadcrumb"> <li><a href="#">Home</a></li> <li><a href="#">Library</a></li> <li class="active">Data</li> </ol>
googleリッチスニペットによるパンくずのマークアップ
googleリッチスニペットのパンくずをmicrodata形式で記述する場合の公式サンプルは以下のとおりです。
Enhance Your Site's Attributes | Search | Google Developers
googleのサンプルでは<div>にitemscopeとitemtype属性を書いていますね。
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="http://www.example.com/dresses" itemprop="url"> <span itemprop="title">ドレス</span> </a> › </div> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="http://www.example.com/dresses/real" itemprop="url"> <span itemprop="title">ドレス</span> </a> › </div> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="http://www.example.com/clothes/dresses/real/green" itemprop="url"> <span itemprop="title">緑のドレス</span> </a> </div>
bootstrap3で2と同じ形式で記述してみる
<ul>を<ol>に変更して、dividerを削除してみます。
<ul class="breadcrumb"> <li> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="/" itemprop="url"><span itemprop="title">TOP</span></a> </div> </li> <li> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="${categoryTopUrl}" itemprop="url"><span itemprop="title">Apache Solr</span></a> </div> </li> <li class="active"> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="${currentUrl}" itemprop="url"><span itemprop="title">solrのReplicationHandlerで簡単レプリケーション!</span></a> </div> </li> </ul>
ではこの状態で描画されるhtmlを確認してみます。
区切り線(divider)部分がガタガタになっていますね。
原因はitemscope itemtype属性のタグが<div>だからズレるのです。
googleのサンプルが<div>を使っているので何も考えずに<div>を使っていますが、これではズレます。
最終的なbootstrap3でのmicrodata形式のパンくずのマークアップ
最終的には以下のようになりました。
itemscope itemtype属性を記述するタグを<div>から<span>に変更しました。
<div>はブロック要素なので、ブロック要素でない<span>にしました。
<ol class="breadcrumb"> <li> <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="/" itemprop="url"><span itemprop="title">TOP</span></a> </span> </li> <li> <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="${categoryTopUrl}" itemprop="url"><span itemprop="title">Apache Solr</span></a> </span> </li> <li class="active"> <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> <a href="${currentUrl}" itemprop="url"><span itemprop="title">solrのReplicationHandlerで簡単レプリケーション!</span></a> </span> </li> </ol>
これをhtmlで描画してみます。
ズレなくなりましたね!
さて、html描画は問題ありませんが、googleはこのマークアップをパンくずとみますでしょうか。
googleのウェブマスターツールには「構造化データ テスト ツール」があるので、試してみます。
google上で正しくパンくずとして認識されました!
<span>でも正しく構造として認識されています。
これで問題無くbootstrap3でmicrodata形式のパンくず(リッチスニペット)が使えますね!!
レスポンシブWebデザインテクニックブック プロが教えるマルチデバイス対応の手法
- 作者: 野田一輝,加藤俊司,藤田拓人,清水豊,細川富代,野田真穂,川下城誉,根岸良樹,岩堀真吾,大竹孔明
- 出版社/メーカー: エムディエヌコーポレーション
- 発売日: 2013/07/02
- メディア: 単行本
- この商品を含むブログを見る
HTML5+CSS3の新しい教科書 基礎から覚える、深く理解できる。
- 作者: 赤間公太郎,原一宣。,こもりまさあき
- 出版社/メーカー: エムディエヌコーポレーション
- 発売日: 2013/09/20
- メディア: 単行本
- この商品を含むブログ (1件) を見る