印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
MovableType RDFa 1.1 を使って構造化データを導入する

ブログに構造化データを導入する。使うのは流行りの microdata ではなく,RDFa 1.1 にする。

■ ■ ■

発端

久しぶりに Google のウェブマスター ツールを開いて,「検索のデザイン」→「構造化データ」とたどると,次のメッセージが表示された。

このサイトでは構造化データが見つかりません

そんなバカな! うちのサイトは,RDFa 1.1 を使ってメタ情報を埋め込んでいるのに (nlog(n): OGP 対応と XHTML+RDFa 1.1 への移行)。なのにどうして?

構造化データとは

と思って調べてみると,Google の言う「構造化データ」というのは,単にメタデータを含んでいるということではなく,「HTML の構造の中に組み込まれたメタデータ」という意味だった。簡単に言うと,これまでは HTML のコメント内に書いていたメタデータを,コメントの外に,タグのプロパティとして出してしまうということである。「メタデータをコメントの外に出していく」これで構造化できる。

マークアップ

マークアップの方針

Google でサポートしているマークアップの形式は,microdata, microformats, RDFa の3つで,microdata が推奨とされていて (リッチ スニペットと構造化データについて - ウェブマスター ツール ヘルプ),例も microdata を使ったものがメインである (構造化データ マークアップ支援ツール - ウェブマスター ツール ヘルプ)。Microdata は HTML5 であることを前提としているみたい (HTML Microdata)。

しかし,このサイトは XHTML だし RDFa なので,せっかくだから RDFa でマークアップすることにした。インターネットで検索すると見事に microdata の情報ばかりだが,読み替えることで RDFa に適用することができる。RDFa Lite の情報も多い。RDFa Lite は RDFa のサブセットなので,基本的には RDFa Lite にしたがってよく,一部ははみ出してもよいということになる。RDFa Lite でマークアップするための丁寧な解説が RDFa 1.1 Lite を使用して HTML ページをリッチな情報が含まれたページにする にある。Microdata, microformats, RDFa の,ここで使いたい限定的な機能については,読み替えることが可能で,MicrodataとMicroformatsとRDFaとschema.org | すちゃらかコーダー に概要がまとまっていて分かりやすい。最終的には RDFa Core 1.1 - Second Edition で確認する。

ブログサイトとブログ記事へ適用するための材料

メタデータのプロパティは Schemas - schema.org に従うことにする。ブログに関係しそうなものは2つある。Thing > CreativeWork > Blog をサイトに対して適用し,個別記事には Thing > CreativeWork > Article > BlogPosting を適用すればいいのではないかと思われる。

マークアップの具体例

BlogPosting は Article に含まれるので,Article の形式に従えばよく,実例が Article - getSchema にあるので参考に。このブログでは,Movable Type を使っているので,テンプレートを書き換えることになる。個別記事用のテンプレートの構造化前後の対応は以下の通り。

項目 構造化前 構造化後
タイプ <body> <body vocab="http://schema.org/" typeof="Article">
タイトル <$MTEntryTitle$> <span property="name"><$MTEntryTitle$></span>
記事本文 <div class="blogbody"> <div class="blogbody" property="articleBody">
著者 <$MTEntryAuthor$> <span property="author">
 <span typeof="Person">
  <span property="name"><$MTEntryAuthor$></span>
 </span>
</span>
投稿日時 <$MTEntryDate format="%Y-%m-%d %H:%M"$> <span property="datePublished"><$MTEntryDate format="%Y-%m-%d %H:%M"$></span>

注意が必要なのは「著者」の項目である。著者名は property="name" で指定するが,property="name" は「タイトル」にも使われているので,何の name かを明らかにするために,「author → Person → name」とする必要がある。

プロパティ publishedDate が「投稿日」でなく「投稿日時」で時間が入ってしまっていて,このブログではよしとしているが,気になる場合には修正を。

Microdata の場合も似た感じになるようだ (ブログのHTMLをmicrodata(schema.org)を使って構造化する | HALAWATA.NET)。

まとめ

ブログに構造化データを入れた。Google ウェブマスターツールに反映されるのには時間がかかるので,1週間ほど待つ必要がある。

2014年2月8日追記:

Webmaster Tools の構造化データアイテムの個数
Webmaster Tools の構造化データアイテムの個数


ウェブマスターツールには徐々に反映されるようです (上のグラフ参照)。

Posted by n at 2013-12-14 21:10 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?