はじめに
個人サイトやブログの <head> に構造化データ(JSON-LD)を埋め込むと、検索エンジンやAI検索の要約・引用対象として自分の専門性が認識されやすくなります。ここでは schema.org/Person を使って、専門分野・保有資格・複数の肩書き・SNSアカウントを1つのJSON-LDにまとめる設計例と、実装・検証の手順を紹介します。
自作のテンプレートを GitHub: supreme-json-ld として公開しているので、実装の参考として一部を抜粋しながら解説します(利益相反の開示として明記しておきます)。
なぜPersonスキーマなのか
schema.org/Person は氏名・職業・所属・資格・関連リンクなどを構造化して記述できるボキャブラリです。プレーンなテキストの「自己紹介」と違い、機械(検索エンジンのナレッジグラフや生成AIのクローラ)が「この人は何の専門家で、何を根拠にそう言えるのか」を解釈しやすくなります。
設計のポイント
1. knowsAbout + sameAs で専門分野をエンティティに紐付ける
専門分野を単なる文字列で書くと、表記ゆれ(例:「地方創生」「地域活性化」)によって同一概念として認識されないことがあります。sameAs でWikipediaなど既存のナレッジベースのエンティティURLに直接紐付けることで、曖昧さを減らせます。
{
"@type": "Person",
"knowsAbout": [
{
"@type": "Thing",
"name": "Society 5.0",
"sameAs": "https://ja.wikipedia.org/wiki/Society_5.0"
}
]
}
2. hasCredential + recognizedBy で資格を裏付け付きで記述する
資格名だけを書くのではなく、発行機関を recognizedBy として構造化すると、第三者による裏付けが機械可読な形で表現できます。実際に保有していない資格や検証できない実績を書かないことが大前提です。 構造化データは検索エンジン・AIともに信頼性の判定材料として扱われるため、誇張や虚偽記載はスキームの信頼性そのものを損ないます。
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "certificate",
"name": "資格名",
"recognizedBy": {
"@type": "Organization",
"name": "発行機関名"
}
}
3. jobTitle / worksFor を配列にしてパラレルキャリアを表現する
複数の肩書きや所属を持つ場合、jobTitle と worksFor は配列で複数指定できます。1つの Person オブジェクトに複数の役割をまとめて記述することで、キャリアの全体像を1箇所で表現できます。
4. sameAs でSNS・プラットフォームのIDを名寄せする
Wikidata、X、LinkedInなど分散しがちなアカウントを sameAs の配列にまとめることで、同一人物であることを検索エンジンやAIに伝えやすくなります。Wikidataエントリを持っている場合はそれも含めると効果的です。
実装と検証の手順
- 上記の要素を組み合わせてJSON-LDを作成する(全体のテンプレート例は GitHubリポジトリ を参照してください)
-
<script type="application/ld+json">としてサイトの<head>内に配置する - Google リッチリザルトテスト でエラーがないか確認する
- Schema Markup Validator でスキーマとしての妥当性を確認する
- 数週間〜数ヶ月単位で、検索結果やAI検索での表示・引用のされ方に変化があるか観察する
注意点
- 資格・実績は事実のみを記載する(検証可能性が構造化データの価値の前提)
- SNSリンクは自分が実際に運用しているアカウントのみ
sameAsに含める - サイト全体の内容とJSON-LDの記述内容に乖離がないようにする(乖離は評価を下げる要因になり得ます)
おわりに
JSON-LDによるPersonスキーマの設計は、SEOだけでなく生成AIによる引用・要約の精度にも関わってくる領域です。テンプレートは GitHub で公開しているので、改善案があればIssueやPRで教えてください。