SEOのきほん

SEO構造化データとは? 基礎知識からJSON-LDの書き方・ コピペで使えるコード例まで徹底解説

SEO構造化データとは?
基礎知識からJSON-LDの書き方・
コピペで使えるコード例まで徹底解説

「SEOで構造化データが重要って聞くけれど、具体的に何をどう書けばいいのか分からない」「検索結果で星評価やパンくずが表示される仕組みを知りたい」そんな疑問を抱えていませんか?

この記事では、構造化データの仕組みを「店舗案内表」に例えてわかりやすく紐解きます。さらに、コピペで使える主要なJSON-LDコード例、Next.jsやHTMLへの実装手順、Search Consoleでのエラー検証方法まで実践的に解説します。

目次

pr
pr01

なぜ構造化データがSEOで重要なのか

検索エンジンは日々世界中のWebページを巡回(クロール)し、その内容を読み取ってインデックスしています。 しかし、人間が見ればひと目でわかる情報であっても、検索エンジンのクローラーにとっては「どこが何の意味を持つデータなのか」を正確に判別するのが難しいケースが少なくありません。

たとえば、次のような記述がWebページにあったとします。

  • 「10:00〜20:00」という文字列(営業時間なのか? セールの開催時間なのか?)
  • 「★4.8(120件)」という表記(商品の評価なのか? 店舗のレビューなのか?)
  • 「田中 太郎」という名前(記事の執筆者なのか? 取材対象者なのか? 開発者なのか?)

人間であれば文脈や前後のデザインから自然と判断できますが、検索エンジンにとっては単なるテキストの並びに見えてしまいます。

こうした「文字情報の意味(セマンティクス)」を検索エンジンに正しく理解させるための世界共通規格が「構造化データ(Structured Data)」です。


「店舗案内」に例えて理解する構造化データの仕組み

構造化データの本質を理解するために、街のレストランやショップの「案内表示」に例えて考えてみましょう。

通常のWebサイト=手書きの張り紙

一般的なHTMLだけで書かれたWebページは、店頭に貼られた「日本語の手書きPOP」のようなものです。

手書きPOPの例

  • 「渋谷駅徒歩3分の隠れ家イタリアン」
  • 「営業:昼11時半〜夜10時(水曜定休)」
  • 「ランチパスタセット 1,200円 / 評判のカルボナーラ」

日本語を理解できる人ならこれを見てすぐに入店できます。しかし、日本語が読めない外国人観光客が通りかかった場合、何のお店で何時に開いているのかを正確に把握するのは困難です。

構造化データ=多言語・国際規格のデジタルスペックシート

構造化データは、店頭の張り紙の横に「世界共通のフォーマットで整理された公式スペックシート」を添えるようなものです。

構造化データ(案内シート)の例

  • エンティティの種類: レストラン(Restaurant)
  • 料理のジャンル: イタリア料理(Italian)
  • 所在地: 東京都渋谷区…(PostalAddress)
  • 営業時間: 11:30-22:00 / 水曜日定休(OpeningHoursSpecification)
  • 価格帯: ¥1,200〜(PriceSpecification)

国際規格に沿ってデータが定義されているため、検索エンジンは迷うことなく「ここは渋谷にあるイタリアンレストランで、営業時間は11:30〜22:00だ」と一瞬で100%正しく解釈できます。


構造化データがもたらす3つのSEOメリット

構造化データをWebサイトに実装することで、具体的にどのようなSEO上の利点があるのでしょうか。代表的な3つのメリットを解説します。

1. リッチリザルト表示によるクリック率(CTR)の向上

構造化データを適切に記述すると、Googleの検索結果で通常の「青いタイトル+2行の説明文」以上のリッチな情報が表示される場合があります。これを「リッチリザルト(Rich Results)」と呼びます。

通常の検索結果

  • ページタイトル
  • ページのURL(またはシンプルな階層)
  • メタディスクリプション(抜粋文)

リッチリザルトが表示された検索結果

  • ページタイトル / URL / 説明文
  • ★ 星マークによるレビュー評価(4.8 ★★★★★)
  • レビュー件数(124件)
  • 商品の価格や在庫状況(¥3,500・在庫あり)
  • サムネイル画像・調理時間・カロリー(レシピの場合)
  • 検索結果直下の階層ナビゲーション(パンくずリスト)

検索結果一覧の中で視覚的に際立つため、検索順位が同じであってもユーザーの目を引き、クリック率(CTR)の大幅な向上が期待できます。

参考: リッチリザルトについて | Google検索セントラル

2. 検索エンジンによるエンティティ理解とE-E-A-Tの強化

Googleは近年、キーワードの単なる一致だけでなく、人・企業・場所・概念などの「エンティティ(実体)」とその関係性(ナレッジグラフ)をもとに検索結果を構築しています。

構造化データを設定することで、次のような関係性を機械的に明確化できます。

  • この記事を書いた人物(Person)は誰か
  • その著者が所属する組織(Organization)や監修者は誰か
  • 著者の公式SNSやプロフィールページはどこか(sameAs プロパティ)

これにより、Googleが重視するE-E-A-T(経験・専門性・権威性・信頼性)の裏付けを検索エンジンに直接シグナルとして渡すことが可能になります。専門性の示し方については、SEO専門性を高める7つの実践方法でも詳しく解説しています。

3. 生成AI検索(AI Overviews)への情報供給

Googleの「AI Overviews」をはじめとするAI検索機能は、Web上の膨大な情報から要点を抽出して回答を生成します。

構造化データによって「何が定義であり、誰が発言し、どのような条件があるのか」が整理されているページは、AIクローラーにとっても引用・参照がしやすくなります。今後のAI検索時代における視認性(LLMによる引用機会)を高める上でも、構造化データは不可欠な基盤となっています。


記述方式の種類と「JSON-LD」が推奨される理由

構造化データの仕様は、Google、Microsoft、Yahoo、Yandexなどが共同で策定している「Schema.org(スキーマ・オルグ)」という共通ルールに基づいています。

Schema.orgをHTMLに記述する方法には主に3種類ありますが、現在Googleが公式に推奨しているのは「JSON-LD(ジェイソン・エルディー)」一択です。

1. JSON-LD(Google公式推奨)

  • 特徴: <script type="application/ld+json"> タグ内にJSON形式でまとめて記述します。
  • メリット: HTMLの見た目(デザイン)とデータ定義が完全に分離されるため、ページ改修時にコードが壊れにくく保守性が極めて高いのが特徴です。
  • Googleの推奨度: ◎ 公式に最も推奨

2. Microdata(非推奨)

  • 特徴: HTMLタグの中に itemscopeitemprop などの属性を直接埋め込む形式です。
  • デメリット: デザイン変更時にコードが破損しやすく、HTMLが煩雑になりやすい課題があります。
  • Googleの推奨度: △ 認識はされるが非推奨

3. RDFa(非推奨)

  • 特徴: HTMLタグの属性を拡張してメタデータを埋め込む形式です。
  • デメリット: 構文が複雑で記述ミスが発生しやすい形式です。
  • Googleの推奨度: △ 認識はされるが非推奨

JSON-LDはHTML本文のDOMツリーとは独立して記述できるため、ページデザインの変更に影響されず、CMSやフロントエンドフレームワーク(Next.jsやWordPress等)とも非常に相性が良いという強みがあります。

参考: 構造化データの仕組みについて | Google検索セントラル


【コピペで使える】主要な構造化データ(JSON-LD)コード例

Webサイトで頻繁に使用される主要な5つのスキーマについて、コピペして自サイトの情報に置き換えて使えるテンプレートを紹介します。

1. 記事・ブログ用(Article / BlogPosting)

ブログ記事、ニュース記事、技術コラムなどで必須となる構造化データです。記事のタイトル、公開日、更新日、著者情報、サイト運営組織を定義します。

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/blog/seo-structured-data/"
},
"headline": "SEO構造化データとは?基礎知識からJSON-LDの書き方まで解説",
"description": "構造化データの基本概念とJSON-LDの実装方法を分かりやすく解説します。",
"image": "https://example.com/images/structured-data-thumb.jpg",
"datePublished": "2026-09-01T09:00:00+09:00",
"dateModified": "2026-09-08T18:00:00+09:00",
"author": {
"@type": "Person",
"name": "山田 太郎",
"url": "https://example.com/about/yamada/",
"jobTitle": "Webマーケター"
},
"publisher": {
"@type": "Organization",
"name": "株式会社ブライトトゥモロー",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
}
}
</script>

ポイント: datePublished(公開日)と dateModified(最終更新日)をISO 8601形式(タイムゾーン付き)で明記することで、Googleが記事の鮮度を正確に把握できるようになります。

2. パンくずリスト(BreadcrumbList)

サイトの階層関係を検索エンジンに伝え、検索結果のURL表示部分を階層化するための構造化データです。

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "ホーム",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "SEO対策",
"item": "https://example.com/category/seo/"
},
{
"@type": "ListItem",
"position": 3,
"name": "構造化データ解説",
"item": "https://example.com/category/seo/structured-data/"
}
]
}
</script>

パンくずリストがSEOに与える効果やナビゲーション設計の詳細については、パンくずリストのSEO効果と設置方法をあわせてご覧ください。

3. 店舗・地域ビジネス用(LocalBusiness)

実店舗、クリニック、士業事務所、サロンなどのローカルビジネスで利用します。Googleビジネスプロフィールと連携し、地域名での検索順位向上に直結します。

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "トラットリア ブライト",
"image": "https://example.com/store-appearance.jpg",
"@id": "https://example.com/#restaurant",
"url": "https://example.com/",
"telephone": "+81-3-1234-5678",
"priceRange": "¥¥",
"servesCuisine": "Italian",
"address": {
"@type": "PostalAddress",
"streetAddress": "道玄坂1-2-3",
"addressLocality": "渋谷区",
"addressRegion": "東京都",
"postalCode": "150-0043",
"addressCountry": "JP"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 35.658034,
"longitude": 139.701636
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
],
"opens": "11:30",
"closes": "22:00"
}
]
}
</script>

実店舗のローカル検索最適化の手順は、ローカルSEO対策のやり方ガイドで体系的に解説しています。

4. 企業・コーポレート情報(Organization)

トップページに設置し、自社の公式名、ロゴ画像、代表者、主要SNSアカウントのURLを伝えます。ナレッジパネルの表示に寄与します。

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "株式会社ブライトトゥモロー",
"url": "https://example.com/",
"logo": "https://example.com/assets/images/logo.png",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+81-3-0000-0000",
"contactType": "customer service",
"areaServed": "JP",
"availableLanguage": "Japanese"
},
"sameAs": [
"https://twitter.com/example_official",
"https://www.facebook.com/example.official",
"https://www.youtube.com/@example"
]
}
</script>

sameAs プロパティの価値: 自社のX(旧Twitter)やYouTube、Facebookなどの公式アカウントを sameAs に列挙することで、Googleは「この組織とこれらのSNSアカウントは同一人物・団体である」と認識します。

5. よくある質問(FAQPage)

Q&Aコンテンツをページ内に掲載している場合に設定します。

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "構造化データを設定すると必ずリッチリザルトが表示されますか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "いいえ、必ず表示されるとは限りません。Googleのアルゴリズムが、検索ユーザーにとって有益であると判断した場合にのみ表示されます。"
}
},
{
"@type": "Question",
"name": "構造化データの設定自体で検索順位は直接上がりますか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "構造化データそのものは直接的なランキング要因ではありません。ただし、CTRの向上やエンティティ理解の促進を通じて間接的な好影響をもたらします。"
}
}
]
}
</script>

FAQリッチリザルトに関するGoogleの最新動向

Googleは現在、検索結果におけるFAQリッチリザルトの表示対象を、公的機関や著名な健康関連機関など権威性の高いサイトに絞る仕様変更を行っています。一般的な商用サイトでは検索結果にアコーディオンが表示されにくくなっていますが、検索エンジンへの意味伝達(セマンティックな理解)としては引き続き有効なマークアップです。


Webサイトへの具体的な実装方法

JSON-LDを実際のWebサイトに導入する代表的な方法を解説します。

1. 静的HTMLの場合

HTMLファイルの <head></head> 内、または <body> の末尾に <script type="application/ld+json"> をそのまま貼り付けます。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>記事タイトル | サイト名</title>
<!-- 構造化データの挿入 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "記事タイトル",
...
}
</script>
</head>
<body>
...
</body>
</html>

2. Next.js(React)の場合

モダンなNext.js(App Routerなど)環境では、コンポーネント内やレイアウトファイル内でJSON-LDオブジェクトを生成し、dangerouslySetInnerHTML を使って安全に出力します。

export default function BlogPostPage({ post }: { post: PostType }) {
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'BlogPosting',
headline: post.title,
datePublished: post.publishedAt,
dateModified: post.updatedAt,
author: {
'@type': 'Person',
name: post.authorName,
},
};
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
<article>
<h1>{post.title}</h1>
<p>{post.content}</p>
</article>
</>
);
}

この方法であれば、記事のメタデータ(タイトルや更新日時)が変動しても自動で動的な構造化データを生成できます。

3. WordPressの場合

WordPressサイトの場合、テーマ(Swell、Cocoon等)に標準で構造化データ出力機能が備わっているケースが多いです。 独自に拡張したい場合は、SEOプラグイン(Yoast SEO、All in One SEO、Rank Mathなど)を利用するか、functions.phpwp_head フックから動的にJSON-LDを出力します。


構造化データ実装時のよくある落とし穴とペナルティ対策

構造化データは誤った使い方をすると、Googleのガイドライン違反となりペナルティ(リッチリザルトの剥奪や手動対策)を受けるリスクがあります。必ず以下の点に注意してください。

避けるべき典型的な違反・エラー例

  1. 画面上に存在しない情報のマークアップ
    • 訪問者に見えない隠しテキストをJSON-LDだけに書き込む行為はスパムと判定されます。構造化データの内容は、必ずページ上に表示されている情報と一致させてください。
  2. 不当なレビュー・自己評価の偽装
    • 実際には存在しない口コミをでっち上げたり、自社サイト自身に対して高評価(★5.0など)を付けるマークアップは厳しく取り締まられます。
  3. 必須プロパティの抜け漏れ
    • たとえば Article スキーマでは headlineimage など、Googleが必須(Required)と指定しているプロパティが欠けているとリッチリザルトの対象外になります。
  4. JSONの構文エラー(シンタックスエラー)
    • 最後の項目の末尾に余計なカンマ , を付けてしまったり、ダブルクォーテーション " を閉じ忘れると、スクリプト全体がパース(解析)エラーになります。

参考: 構造化データの一般的なガイドライン | Google検索セントラル


構造化データのエラーを検証・確認する2大ツール

構造化データを実装したら、公開前と公開後に必ずエラーがないかテストツールでチェックしましょう。

1. リッチリザルト テスト(Google公式)

URLを入力するか、コードを直接貼り付けることで、Googleがその構造化データを正しく認識できるか、リッチリザルトの対象になっているかを即座に検証できます。

2. スキーマ マークアップ検証ツール(Schema Markup Validator)

Schema.orgの仕様に完全準拠しているかをチェックする汎用バリデーターです。Google以外の構文エラーも詳細に特定できます。

3. Google Search Consoleでの監視

サイト公開後は、Google Search Consoleの左メニューにある「拡張(エンハンスメント)」セクションを確認します。 パンくずリスト、記事、商品などの項目ごとに、「有効」「警告」「エラー」の件数が自動レポートされます。

エラーが検出された場合は、原因となっているプロパティを修正して「修正を検証」ボタンを押すことで、Googleに再クロールをリクエストできます。サーチコンソールの詳しい活用手順は、Googleサーチコンソールの設定から活用までで解説しています。


まとめ:今日から始める構造化データ導入ステップ

構造化データは、検索エンジンや生成AIに対してWebサイトの価値を100%正しく伝えるための「必須の共通言語」です。

最初からすべてのページに複雑なマークアップを施す必要はありません。まずは以下の手順で着実に進めてみましょう。

構造化データ導入の5ステップ

  1. 優先度の高いページを選定: ブログ記事(Article)、会社概要(Organization)、主要店舗(LocalBusiness)などから着手。
  2. Schema.orgから適切な型を選ぶ: 記事なのか、店舗なのか、製品なのかを明確化。
  3. JSON-LDを作成: 本文に掲載されている情報と寸分違わぬ内容でコードを組む。
  4. テストツールで事前検証: 「リッチリザルト テスト」で赤文字のエラーが出ないことを確認。
  5. Search Consoleで監視: デプロイ後、インデックスの認識状況と拡張レポートを定期チェック。

ページ全体の情報構造を正しく整え、構造化データを丁寧に実装することが、安定した検索順位とクリック率の獲得につながります。サイト全体の設計を見直したい方は、サイト全体のSEO構造設計もぜひ参考にしてください。

連載
SEOのしくみ
トピック
高度なSEO対策
author
author
くぼ よしゆき
北海道厚岸町生まれ。宮城県仙台市在住。弘前大学大学院理工学研究科(博士前期課程)修了。Web制作会社 → デザイン会社 → 1616。プランニングから撮影、デザイン、コーディング、CMS導入まで幅広く活動的な感じみたいな。
pr
pr01