株式会社課題解決プラットフォーム
AIO対策2026-04-04最終更新: 2026-04-044分で読めます

構造化データ入門|初心者でもわかるJSON-LDの書き方

構造化データJSON-LD初心者Schema.orgリッチリザルトSEOAIO対策
上田拓哉

上田拓哉

監修

株式会社課題解決プラットフォーム 代表取締役

複数事業の経営経験を持つ実践者。SEO対策をベースに、AI検索(ChatGPT・Perplexity・Google AI Overview)で「選ばれる情報源」になるためのAIO対策を研究・実践中。

著者プロフィール →

構造化データ(JSON-LD)を実装すると、Google検索でFAQが直接表示される「リッチリザルト」が獲得でき、CTRが平均20〜30%向上するだけでなく、AI Overview(AI生成回答)で引用される確率が1.4倍高まるというSEOClarityの調査データがあります。

「構造化データ」という言葉は難しく聞こえますが、実際にはHTMLファイルに数行のJSONコードを追加するだけです。本記事では、プログラミング初心者でも理解できるよう、構造化データの基礎から4種類のテンプレート、WordPress・Next.jsでの実装方法まで、ステップバイステップで解説します。

構造化データの基礎知識

そもそも構造化データとは?

Webページには2種類の情報があります。

情報の種類対象読者
HTMLコンテンツ人間が読む見出し・本文・画像など
構造化データ機械(Google・AI)が読む「これはFAQページです」「著者は〇〇です」

Googleのクローラーや生成AIは、Webページのテキストを「意味」まで完全に理解することが難しい場合があります。構造化データを追加することで、「このページが何を提供しているか」を機械語で直接伝えられるのです。

構造化データを実装するとどうなるか

実装するSchemaGoogle検索での変化AI検索での変化
FAQPageFAQ質問がSERP上に展開表示(アコーディオン)FAQがAI Overviewの回答に引用されやすい
Article著者情報・公開日・更新日が表示される記事の信頼性が高まりAI引用率向上
LocalBusinessビジネス情報がナレッジパネルに反映ローカルAI検索での言及率向上
HowTo手順がステップ形式でSERP表示手順系クエリへのAI引用増加

JSON-LDとは?なぜ推奨されるのか

構造化データの記述形式には3種類ありますが、Googleが最も推奨するのはJSON-LD形式です。

形式特徴Google推奨難易度
JSON-LDscriptタグ内に独立して記述最推奨低(既存HTMLに影響しない)
MicrodataHTMLタグの属性として記述対応中(既存HTMLの修正が必要)
RDFaHTMLタグの属性として記述対応中〜高

JSON-LDが推奨される理由は**「既存のHTMLコードを変更せずに追加できる」**からです。scriptタグを1つ追加するだけで実装できるため、CMSやフレームワークを問わず導入しやすいです。


JSON-LDの基本構造

共通の書き方

すべてのJSON-LDスキーマに共通する基本構造は以下の通りです。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "スキーマのタイプ名",
  "プロパティ名": "値"
}
</script>
要素意味必須
@contextスキーマの仕様書URL(常にhttps://schema.org必須
@typeページの種類(FAQPage・Article等)必須
各プロパティページの具体的な情報タイプによって必須・任意が異なる

4種類のJSON-LDテンプレート

テンプレート1: FAQPage(最優先で実装)

FAQページやFAQセクションに実装するスキーマです。Google検索でアコーディオン形式のリッチリザルトが表示され、AI Overviewでも引用されやすくなります。

必須プロパティ:

プロパティ説明
@type: "FAQPage"FAQページであることを宣言
mainEntityFAQ項目の配列
@type: "Question"質問項目であることを宣言
name質問文
acceptedAnswer回答のオブジェクト
text回答文

FAQPageのテンプレートコード:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "質問文1をここに記入",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "回答文1をここに記入。100〜200文字程度が理想的です。"
      }
    },
    {
      "@type": "Question",
      "name": "質問文2をここに記入",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "回答文2をここに記入。"
      }
    }
  ]
}
</script>

注意点: FAQ項目は最低2問(推奨3〜10問)。同じページに複数のFAQPageスキーマを実装しないこと。

テンプレート2: Article(ブログ・コンテンツページ)

ブログ記事・コラム・ニュース記事に実装するスキーマです。著者情報・公開日・更新日をGoogleに正確に伝えられ、E-E-A-Tの評価向上に寄与します。

Articleの主要プロパティ:

プロパティ説明必須
@type"Article"または"BlogPosting"必須
headline記事タイトル(110文字以内)必須
imageアイキャッチ画像URL必須
author著者情報(nameは必須)必須
publisher発行者情報必須
datePublished公開日(ISO 8601形式)推奨
dateModified更新日(ISO 8601形式)推奨

ArticleのテンプレートコードとISO 8601形式(YYYY-MM-DD):

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "記事タイトルをここに入力(110文字以内)",
  "image": "https://example.com/images/article-image.jpg",
  "author": {
    "@type": "Person",
    "name": "著者名",
    "url": "https://example.com/author/"
  },
  "publisher": {
    "@type": "Organization",
    "name": "会社名・メディア名",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "datePublished": "2026-04-04",
  "dateModified": "2026-04-04",
  "description": "記事の説明文を160文字以内で記入"
}
</script>

テンプレート3: LocalBusiness(店舗・地域ビジネス)

実店舗を持つビジネス(飲食店・美容室・士業・クリニック等)に必須のスキーマです。Googleマップとの連携でローカル検索の上位表示に貢献します。

LocalBusinessの主要プロパティ:

プロパティ説明必須
@typeビジネスタイプ("Restaurant"、"BeautySalon"等)必須
nameビジネス名必須
address住所(PostalAddressオブジェクト)必須
telephone電話番号(国際形式推奨)推奨
openingHours営業時間(Mo-Su HH:MM-HH:MM形式)推奨
url公式サイトURL推奨
image店舗写真URL推奨
geo緯度・経度推奨

LocalBusinessのテンプレートコード:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "店舗名",
  "image": "https://example.com/shop-image.jpg",
  "url": "https://example.com/",
  "telephone": "+81-3-1234-5678",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "〇〇町1-2-3",
    "addressLocality": "渋谷区",
    "addressRegion": "東京都",
    "postalCode": "150-0001",
    "addressCountry": "JP"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 35.6580,
    "longitude": 139.7016
  },
  "openingHours": ["Mo-Fr 11:00-22:00", "Sa-Su 10:00-23:00"],
  "priceRange": "¥¥"
}
</script>

@typeの主なビジネスタイプ一覧:

ビジネスタイプ@type値
飲食店・レストランRestaurant
カフェCafeOrCoffeeShop
美容院・理容院BeautySalon / HairSalon
歯科医院Dentist
整体・カイロプラクティックMedicalBusiness
弁護士・法律事務所LegalService
会計士・税理士AccountingService
一般会社・事務所LocalBusiness

テンプレート4: HowTo(手順・ハウツーコンテンツ)

手順を説明するハウツー記事に実装するスキーマです。Google検索でステップリストが表示され、音声検索・AI検索での引用率も高まります。

HowToの主要プロパティ:

プロパティ説明必須
@type: "HowTo"ハウツーコンテンツを宣言必須
nameハウツーのタイトル必須
step手順の配列必須
HowToStep.name各ステップの名前必須
HowToStep.text各ステップの説明必須
totalTime所要時間(ISO 8601 duration形式)推奨

HowToのテンプレートコード:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "〇〇の方法(タイトル)",
  "description": "このハウツーの概要説明",
  "totalTime": "PT30M",
  "step": [
    {
      "@type": "HowToStep",
      "name": "ステップ1のタイトル",
      "text": "ステップ1の詳細な説明をここに記入。"
    },
    {
      "@type": "HowToStep",
      "name": "ステップ2のタイトル",
      "text": "ステップ2の詳細な説明をここに記入。"
    },
    {
      "@type": "HowToStep",
      "name": "ステップ3のタイトル",
      "text": "ステップ3の詳細な説明をここに記入。"
    }
  ]
}
</script>

WordPressでの実装方法

プラグインを使った実装(推奨)

プログラミング知識がない場合は、プラグインを使うのが最も簡単です。

プラグイン名対応スキーマ料金おすすめ度
Yoast SEO(Premium)Article・FAQ・HowTo等有料(約9,900円/年)★★★★★
Rank Math(Pro)28種類以上のスキーマ有料(約7,000円/年)★★★★★
Schema Pro20種類以上有料(約10,000円/年)★★★★☆
WP Schema Markup Light基本的なスキーマのみ無料★★★☆☆

Yoast SEOでFAQPageを実装する手順:

ステップ操作
1記事編集画面でYoast SEOブロックを追加
2「FAQ」ブロックを選択
3質問文と回答文を入力
4保存・公開するとJSON-LDが自動生成される

手動でコードを追加する方法

テーマのfunctions.phpまたはheadタグ内に直接コードを追加する方法です。

functions.phpに追加する場合(ページ別に切り替え):

function add_schema_markup() {
    if ( is_page('faq') ) {
        echo '<script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "FAQPage",
          "mainEntity": [...]
        }
        </script>';
    }
}
add_action( 'wp_head', 'add_schema_markup' );

Next.jsでの実装方法

App RouterでのJSON-LD実装

Next.js 14(App Router)では、各ページのレイアウトまたはページコンポーネント内でJSON-LDを実装します。

ページコンポーネントへの実装例(page.tsx):

export default function FaqPage() {
  const faqSchema = {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "質問文1",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "回答文1"
        }
      }
    ]
  };

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(faqSchema) }}
      />
      {/* ページのコンテンツ */}
    </>
  );
}

MDXブログ記事でのArticleスキーマ実装(layout.tsx):

export default function BlogLayout({ children, params }) {
  const articleSchema = {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "headline": "記事タイトル",
    "datePublished": "2026-04-04",
    "author": {
      "@type": "Organization",
      "name": "会社名"
    }
  };

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(articleSchema) }}
      />
      <article>{children}</article>
    </>
  );
}

実装後の確認・テスト方法

Googleのリッチリザルトテストの使い方

ステップ操作URL
1ブラウザで「リッチリザルトテスト」にアクセスsearch.google.com/test/rich-results
2テストしたいURLを入力してテスト実行
3エラー・警告の確認
4「有効なリザルト」が表示されれば実装成功

よくあるエラーと修正方法

エラーメッセージ原因修正方法
必須プロパティ「mainEntity」がありませんFAQPageにmainEntityなしmainEntity配列を追加
値の型が正しくありません(日付)日付のフォーマットが誤りYYYY-MM-DD形式に修正
画像のURL形式が無効httpsで始まらないURLを指定https://から始まる絶対URLに修正
@contextが見つかりません@contextの記述漏れ"https://schema.org"を追加

構造化データ実装の優先順位

どのページに何のスキーマを実装すべきか、優先順位をまとめます。

優先度スキーマタイプ実装すべきページ期待効果
最優先FAQPageFAQ集・サービスページ・ブログ記事(FAQセクション)CTR+20〜30%・AI引用率向上
最優先LocalBusinessトップページ・会社概要・店舗情報ページローカル検索・Googleマップ対策
Article/BlogPostingブログ記事全ページE-E-A-T向上・著者情報表示
HowTo手順説明・ガイド系コンテンツハウツー検索でのリッチリザルト
BreadcrumbList全ページ(パンくずリスト)サイト構造の明確化
Organizationトップページ企業情報のナレッジパネル

まとめ

構造化データ(JSON-LD)は、「コンテンツを書く労力に比べて、実装コストが非常に低く、SEO効果が高い」 という特徴があります。

今日から実施できる3ステップ:

ステップ内容目安時間
1トップページにLocalBusinessスキーマを追加30分
2FAQページまたは記事のFAQセクションにFAQPageスキーマを追加30分
3Googleリッチリザルトテストでエラーがないか確認10分

まずこの3ステップを実施し、その後Article・HowToを順次追加していくことを推奨します。


関連記事

AIO対策・構造化データ実装をプロに依頼したいですか?

構造化データの設計・実装から、AI Overview引用率を高めるコンテンツ設計まで、AIO対策をワンストップで支援。AIO診断100,000円〜、月次スタンダード150,000円〜。AIO対策サービスの詳細はこちら →

📌 この記事のポイント

構造化データ(JSON-LD)の基礎から実装まで初心者向けに徹底解説。FAQPage・Article・LocalBusiness・HowToの4種のテンプレートを掲載。WordPressとNext.jsでの実装方法も解説します。

この記事は株式会社課題解決プラットフォーム2026-04-04に公開しました。内容の正確性を定期的に確認しています。最新の情報についてはお問い合わせください。

よくある質問

Q.構造化データとは何ですか?初心者向けに説明してください。

構造化データとは、Webページの内容を「機械が理解しやすい形式」で記述したコードです。人間が読むHTMLとは別に、「このページはFAQページです」「この記事の著者は〇〇です」「この店の電話番号は〇〇です」といった情報をGoogleやAIに伝えるためのものです。適切に実装すると、Google検索結果にFAQの質問が直接表示される「リッチリザルト」が出たり、AI Overview(AI生成回答)で引用されやすくなったりします。実装はHTMLのhead内またはbodyの最後にJavaScriptのコードブロックを追加するだけです。

Q.構造化データはどのように実装すればよいですか?

構造化データの実装方法は3つあります。①JSON-LD形式(推奨):HTMLのheadまたはbody内に<script type='application/ld+json'>タグでJSONコードを追加する方法。Googleが最も推奨する形式です。②Microdata形式:HTMLタグに直接属性を追加する方法。③RDFa形式:HTMLタグに属性を追加する別の形式。現在のSEOベストプラクティスは①のJSON-LD形式です。WordPressではYoast SEOプラグインまたはRank Mathプラグインで自動生成できます。Next.jsでは<script>タグとdangerouslySetInnerHTMLを使って実装します。

Q.構造化データを実装するとSEOにどんな効果がありますか?

構造化データの実装によって期待できる効果は主に3つです。①リッチリザルトの表示:FAQ・ハウツー・レビューなどが検索結果に拡張表示され、CTRが平均20〜30%向上します。②AI Overviewでの引用率向上:SEOClarityの調査によると、構造化データを実装したページはAI Overviewで引用される確率が1.4倍高くなります。③クロール効率の向上:Googlebotがページの内容を正確に把握でき、インデックスの精度が上がります。ただし構造化データの実装がそのまま検索順位に直接影響するわけではなく、あくまで「コンテンツ品質の向上と組み合わせる」ことが重要です。

Q.構造化データの実装でよくあるエラーは何ですか?

最もよくあるエラーは①「必須プロパティの欠落」です。例えばFAQPageでは'mainEntity'が必須ですが、指定しないとエラーになります。②「不正なURL形式」:「https://」から始まらないURLを指定するとエラー。③「@context」の指定忘れ:'https://schema.org'の指定がないとスキーマとして認識されません。④「日付形式の誤り」:'datePublished'はISO 8601形式(YYYY-MM-DD)で指定する必要があります。実装後はGoogleの「リッチリザルトテスト」ツール(search.google.com/test/rich-results)で必ずエラーチェックをしてください。

CONTACT

無料30分で課題を棚卸し
→ 最適な打ち手をご提案

課題が整理されていなくても構いません。「何から手をつけていいかわからない」状態から一緒に始めます。

お気軽にお問い合わせください。費用が合わなければお断りいただけます。まず話を聞くだけでもOKです。

お問い合わせフォーム

※ 1〜2営業日以内にご連絡します。