JSON-LDをschema.orgで使うときの注意点とよくある質問

[対象: 上級]

JSON-LD-logo-64
2週間ほど前に、JSON-LDを用いたschema.orgの記述方法を詳しく解説しました。

この記事では、そのフォローアップを兼ねてJSON-LDの注意点といただいた質問への回答を書きます。

JSON-LDの短所

schema.orgのシンタックスとしてJSON-LDを推奨しました。
しかしJSON-LDには短所もあります。

リッチスニペット非対応

JSON-LDによるschema.orgのマークアップは今のところリッチスニペットに対応していません(イベントは対応しているかもしれない)。

これがJSON-LDの最も”痛い”デメリットかもしれません。
schema.orgを含めて構造化データのいちばんのメリットはリッチスニペットと言っても過言ではないでしょう。

今後サポートする可能性はあるけれど、今の時点では約束できないとGoogleの人からコメントをもらっています。

【UPDATE】
現在JSON-LDはいくつかのリッチスニペットに対応しています。

コードの肥大化

JSON-LDでは、コンテンツとは別にJSON-LDオブジェクトのなかに必要な情報を記述します。
これが、コードの肥大化に繋がることがあります。

たとえば、http://schema.org/Article で記事をマークアップするとしたら、ブラウザに表示される記事をJSON-LDオブジェクトのなかにも記述しなければなりません。
つまり、まったく同じ記事がHTMLコードのなかに2つ登場することになります。
記事が長ければ、モバイル回線を使ったスマホユーザーのページ表示速度を落としてしまうかもしれません。

もっともコードが肥大化するのは、microdataやRDFaにも当てはまります。
これらのマークアップもブラウザのレンダリングには関係しないコードが増えます。

ですがJSON-LDは、適用するschema.orgのタイプによってはコードの増え方がmicrodataとは比較にならない量になることがありそうです。

パンくずリストをサポートしない

これは、JSON-LDというよりはschema.orgの欠点です。

schema.orgのパンくずリスト (schema.org/breadcrumb)をGoogleはサポートしていません。
したがって、パンくずリストのマークアップにschema.orgを使ってもリッチスニペットとして表示されません。
Data-Vocabulary.org、をmicrodataまたはRDFaでマークアップするなど、従来からサポートされている技術を使ってください。

schema.orgのパンくずリストに問題があるのはずいぶん前からです。

schema.orgの運営に関わっているGoogleの人にカンファレンスでどんな状況かを尋ねたら、なるべく早くサポートできるように取り組んでいると回答をもらえましたがやはり具体的にいつになるかはわかりません。

【UPDATE】
現在schema.orgはリッチスニペットに対応しています。
JSON-LDでの記述も可能です。

スパム行為が簡単

JSON-LD内の記述は、ブラウザに表示されません。
また直接マークアップするMicrodataやRDFaとは異なり、実際のコンテンツとは独立しています。
悪用すれば、偽りの構造化データを検索エンジンにだけ見せることができます。

たとえ悪意がなかったとしても、リッチスニペットの品質ガイドラインに違反しないように、そのページに存在しユーザーに見える情報だけをマークアップします。

Q&A

いただいた質問に回答します。

Q: 現在schema.orgをMicrodataでマークアップしている。JSON-LD に変えるべきか?

A: いいえ、Microdataのままでまったく問題ありません。
個人的にJSON-LDを勧めはしますが、自分の環境にあったフォーマットを使ってください。

Q: 同じページでのMicrodataとJSON-LD の併用は可能か?

A: はい、可能です。

Q: Gmailで荷物を追跡する機能をschema.orgとJSON-LDで実装できると聞いたが?

A: はい、できます。
Actions in the Inboxという仕組みを使います。
JSON-LDではなくmicrodataでも実装可能です。

荷物追跡は、Go-To ActionsのTrackActionに分類されます。

Actions in the Inboxでは、他にも予約やレビュー投稿などさまざまな”アクション”をGmailのメールボックスから実行できます。
GmailのActions in the Inboxの例

詳細はドキュメントを参照してください。

ちなみに米Yahoo Mailも、Actions in the Inboxに相当する機能のサポートに現在取り組んでいるとのことです。

以上です。
JSON-LD利用時の参考になれば幸いです。
また他にも疑問があればご質問ください。