【2022年版】JSON-LDとSchema.orgをもう一歩理解してみる
- 投稿日/更新日
SEO対策として構造化データをページに組み込むことは常識となっていますが、その割にはあまり制作者などに理解が進んでいない気がします(自分も含めて)。構造化データ、リッチリザルト、Schema.org、JSON-LDといったものの違いは何か、自分の整理の意味でまとめています。構造化データの必要性などについては言及してません。あと間違いはあるかもしれないのでどうぞご了承ください。
JSON-LDとは一体何か
他サイトの記事でも構造化データを記述する時に紹介されているのが下記の3つです。
- Microdata
- RDFa Lite
- JSON-LD
これらは一体何でしょうか? 答えはシンタックス(仕様)です。フォーマットと言ってもいいでしょう。たとえば履歴書を思い浮かべると、名前やひらがな、住所、電話番号といった入力する欄の大きさや場所などがある程度決められているものです。JSON-LDというものはこういう用紙形式になってますよというものです。
JSON-LDの仕様は比較的シンプルです。keyとvalueがセットである、scriptタグで囲む、間にコロンを挿入する、区切りはカンマを使う、keyは重複しない(配列は別)などがあります。以下が実際のサンプルです。
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BlogPosting", "mainEntityOfPage":{ "@type":"WebPage", "@id":"https://webtech.fukushimaku.jp/kiji/author-archive-again.html" }, "headline": "一度消した投稿者ページを復活させたいのに404になる", "image": { "@type": "ImageObject", "url": "", "height": 320, "width": 320 }, "datePublished": "2022-05-19T00:11:18+09:00", "dateModified": "2022-05-19T00:19:06+09:00", "description": "解決方法 flush_rules()をする" } </script>
Schema.orgとはなにか?
履歴書で言えば電話番号はハイフンを入れるとか、住所は何番地何丁目何号といった書式で書くとか、写真を張り付けるのはどれくらいのサイズが決まっています。それを取りまとめているのがSchema.orgです。ボキャブラリと呼称するらしいのですが、頭の中に浮かぶのはボキャブラ天国ですよね。
Schema.orgではType(タイプ・型)とPropety(プロパティ)という用語がでてきます。私の理解だと上記のような図になります。うーんややこしい。あとSchema.orgのサイトがめちゃくちゃ分かりにくいのも要因だと思っています。
Schema.orgで検索した際に、「Type」とあれば@付きのキーワードのvalueとして挿入し、「Property」とあればKeyとして使うことになると考えています。たぶんね。embeddingというのは入れ子構造のことを指します。
説明が前後しますが、keyには@付のものがあるのがわかります。キーワードと言われている特殊なもので、Schmea.orgではなくてJSON-LDで決められています。現時点での最新版であるJSON-LD1.1(2020年6月16日勧告)では下記のキーワードが用意されています。
@base @container @context @direction @graph @id @import @included @index @json @language @list @nest @none @prefix @propagate @protected @reverse @set @type @value @version @vocab
2022年現在で使えるものは、ID、CONTEXT、TYPEくらいしかありません。HTMLと同じく、W3Cが勧告してもブラウザが対応していないと使えないように、JSON-LDも最新の仕様がすぐ使えるというわけではないです。
手っ取り早く構造化データーを取り入れたい場合どうすればいいか
https://technicalseo.com/tools/schema-markup-generator/
私のお勧めは、上記ジェネレーターでベースを作ってしまうことです。英語が分からない? 大丈夫です、フィーリングです。ある程度のベースを作れれば、あとはCMSなどに組み込むだけです。
現時点でどこまで構造化データに対応すべきか
現状の構造化データについては、Bing、Google、Yahoo専用への対応ともいうべきもので、SEOとしての側面が強いです。本来なら、各アプリやサービスがこの構造化データを用いて利活用できるのが望ましいとは思います。
Schemaで定義されている様々なプロパティもGoogleをはじめ各社が対応しないと意味をなさないものであり、現状としては宝の持ち腐れ感は否めません。別の記事でも書きましたが、Googleのリッチリザルトテストも一部のプロパティにしか対応していないため、テスト結果がエラーになることあります。将来的に流行るのか、それともAMPのように誰も見向きしなくなるのかはわかりません。
私自身は制作者ではないのですが、Webマスターとしてきちんと知識を持っておきたいため、一歩踏み込んで勉強してみました。学習コストは大したことないものの、かなりとっつきにくい技術なのと、Googleによるアップデートがたまにあるので追っかけるのもめんどくさいです。専門家に依頼するのも手ですね。
備忘録として残しておきます。