用語集や専門記事に構造化データを足したい、という相談を受けるたびに最初に伝えることがある。DefinedTerm を出力しても、検索結果の見た目は変わらない。星やパンくず、FAQのアコーディオンのような、いわゆるリッチリザルトの対象ではないからだ。ここを誤解したまま作業を始めると、実装したのに何も表示されない、と当然の結果にがっかりすることになる。
では何のために付けるのか。DefinedTerm と DefinedTermSet は、schema.org が定義する「これは用語で、これがその定義です」という意味づけを機械が読める形で添えるための語彙だ。順位を上げる魔法でもなければ、見た目を派手にする装飾でもない。用語とその説明の関係を、HTMLの見た目とは別のレイヤーで明示しておく。効果は補助的で、地味。ここを正直に線引きしてから話を進めたい。
DefinedTerm と DefinedTermSet が指しているもの
schema.org の語彙で、DefinedTerm は定義された一つの用語、DefinedTermSet は用語の集まり(用語集)を表す。辞書に喩えるなら、DefinedTerm が見出し語ひとつ、DefinedTermSet が辞書そのもの、という関係。
JSON-LD で書くと、用語名(name)、定義(description)、その用語が属する集合(inDefinedTermSet)といったプロパティで、用語と説明のつながりを表現する。人間が読む本文では、用語のそばに吹き出しや脚注で説明が添えられている。その同じ関係を、構造化データという別の形でも書いておく。見た目は人間向け、JSON-LD は機械向け。二重に持たせることに意味がある。
この語彙が効くとすれば、検索エンジンやLLMが「このページはこの語をこう定義している」を取り違えにくくなる、という一点に尽きる。順位保証でも表示保証でもない。意味の手がかりを一つ増やす行為だと捉えておくのが誠実だと思う。
手書きだと、たいてい構造化データまで手が回らない
用語に注釈を付ける作業だけでも、専門記事では相当な手間がかかる。本文のどこに用語が出てきたかを探し、吹き出しや脚注のHTMLを書き、説明文を用意する。記事が数十本あれば、それだけで日が暮れてしまう。
そこにさらに、各記事の <head> に、その記事で使った用語ぶんの JSON-LD を schema.org の仕様どおりに書き足す、まで求められると、まず後回しになる。用語を一つ追加したり説明を直したりするたびに、本文の注釈と <head> の JSON-LD の両方を手で同期させる必要も出てくる。ずれれば意味づけとして破綻する。手書きの構造化データが放置されがちなのは、だいたいこの同期コストのせいだろう。
つまり構造化データは、価値がないから付けないのではなく、割に合わないから付けられない。ここが自動出力の入りどころになる。
用語辞書を持てば、JSON-LD は副産物になる

用語注釈マネージャーは、サイト共通の用語辞書(cam_term)で用語名・説明・別名などを一元管理する。注釈の吹き出しや脚注も、用語集ページも、この一つの辞書から表示時に組み立てる。構造化データもその延長線上にある。
具体的には、注釈が付いている単一記事の <head> に、その記事に登場した用語ぶんの DefinedTerm を JSON-LD で出力し、用語集ページには掲載対象の用語をまとめた DefinedTermSet を出す。辞書側で用語名と説明さえ持っていれば、記事ごとに手で書き足す作業は要らない。説明を直せば出力される JSON-LD も追従するので、本文の注釈と構造化データがずれる心配も減る。
この出力は既定でオンだが、闇雲に吐くわけではない。用語名や説明といった有効なデータがある用語についてだけ出力する、という条件が付く。中身のない空の DefinedTerm を量産しても意味がないからだ。処理はサイト内で完結し、外部サービスに用語を送ることもない。
期待していいことと、してはいけないこと
| 期待できる | 期待してはいけない |
|---|---|
| 用語と定義の関係を機械可読な形で添える | リッチリザルト(検索結果の見た目の変化) |
| 辞書から自動出力され、手書きの同期が要らない | 検索順位が上がる保証 |
| 有効なデータがある用語だけ出力される | 空の用語まで含めた網羅的な出力 |
| サイト内で処理が完結する | 外部サービスによる高度な解析 |
構造化データは、付ければ勝てるスイッチではない。用語の意味づけを機械に伝える手がかりを、余計な手間なく一つ増やしておく。その位置づけさえ外さなければ、後からがっかりすることもない。逆に、これでリッチリザルトが出ると期待して導入すれば、実装は正しくても失望が待っている。
用語の管理そのものを一元化しておけば、注釈も用語集も構造化データも同じ辞書から出てくる。構造化データ単体を目的にするより、用語辞書を持つついでに意味づけも整う、という順番のほうが実態に合っている。用語注釈マネージャーの DefinedTerm 出力は、そのついでを引き受ける機能として設計されている。
構造化データで何ができて何ができないかを見極めたい方は、用語注釈マネージャー の仕様を一度確認してみてほしい。
