構造化データと JSON-LD:SEO リッチスニペットの完全実装ガイド

前端工程(更新: 2026年6月7日)

構造化データとは?

構造化データは Schema.org 語彙表に従って組織化された標準化データ形式で、検索エンジンがページ内容の語義的意味を理解し、検索結果にリッチスニペットを表示できるようにします。

3 つの埋め込み形式の比較

形式 埋め込み方法 Google 推奨 保守性
JSON-LD <script type="application/ld+json"> 推奨
Microdata HTML 属性 itemscope/itemprop 非推奨
RDFa HTML 属性 vocab/property 非推奨

Google は公式に JSON-LD を推奨しています。HTML コンテンツと分離されており、保守が容易なためです。


JSON-LD 基礎構文

基本構造

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "記事タイトル",
  "description": "記事の説明",
  "author": {
    "@type": "Person",
    "name": "山田太郎"
  },
  "datePublished": "2026-06-07",
  "dateModified": "2026-06-07"
}
</script>

複数タイプの組み合わせ

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "..."
  },
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [...]
  }
]
</script>

よく使う構造化データタイプ

1. Article(記事)

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Web Animations API と高性能アニメーション",
  "description": "Web Animations API と CSS アニメーションの性能差を深く比較",
  "image": "https://toolsku.com/og/blog-animation.png",
  "author": {
    "@type": "Organization",
    "name": "ToolsKu チーム",
    "url": "https://toolsku.com"
  },
  "publisher": {
    "@type": "Organization",
    "name": "ToolsKu",
    "logo": {
      "@type": "ImageObject",
      "url": "https://toolsku.com/logo.png"
    }
  },
  "datePublished": "2026-06-06",
  "dateModified": "2026-06-06",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://toolsku.com/blog/web-animations-api-performance"
  }
}

2. FAQPage(よくある質問)

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "JSON-LD と Microdata の違いは?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "JSON-LD は独立した script タグで埋め込み、HTML と分離されます。Microdata は HTML 属性でインライン展開するため保守が困難です。Google は JSON-LD を推奨しています。"
      }
    },
    {
      "@type": "Question",
      "name": "構造化データが Google に認識されるまでどのくらいかかりますか?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "通常数日から数週間かかります。クロール頻度に依存します。Search Console の拡張機能レポートで状態を確認できます。"
      }
    }
  ]
}

3. HowTo(チュートリアル手順)

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "JSON-LD 構造化データの追加方法",
  "step": [
    {
      "@type": "HowToStep",
      "position": 1,
      "name": "ページタイプを決定",
      "text": "ページ内容に基づいて適切な Schema.org タイプ(Article、Product、FAQPage など)を選択します。"
    },
    {
      "@type": "HowToStep",
      "position": 2,
      "name": "JSON-LD を記述",
      "text": "Schema.org 仕様に従って JSON-LD データを記述し、すべての必須フィールドが揃っていることを確認します。"
    },
    {
      "@type": "HowToStep",
      "position": 3,
      "name": "ページに埋め込み",
      "text": "JSON-LD を <script type=\"application/ld+json\"> タグ内に配置し、<head> または <body> に配置します。"
    },
    {
      "@type": "HowToStep",
      "position": 4,
      "name": "検証とテスト",
      "text": "Google リッチ結果テストツールで構造化データが正しいことを検証します。"
    }
  ]
}

4. BreadcrumbList(パンくずナビ)

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "ホーム",
      "item": "https://toolsku.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "ブログ",
      "item": "https://toolsku.com/blog"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "構造化データと JSON-LD",
      "item": "https://toolsku.com/blog/structured-data-json-ld"
    }
  ]
}

5. SoftwareApplication(ツールアプリ)

{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "CSS アニメーションジェネレーター",
  "applicationCategory": "DeveloperApplication",
  "operatingSystem": "Web",
  "description": "オンライン CSS アニメーションコード生成・プレビューツール",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "JPY"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "ratingCount": "256"
  }
}

Next.js での JSON-LD 実装

next/script を使用

import Script from 'next/script';

function BlogPost({ post }) {
  const jsonLd = {
    '@context': 'https://schema.org',
    '@type': 'Article',
    headline: post.title,
    description: post.description,
    author: {
      '@type': 'Organization',
      name: 'ToolsKu チーム',
    },
    datePublished: post.publishedAt,
    dateModified: post.updatedAt,
  };

  return (
    <>
      <Script
        id="json-ld"
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
      />
      <article>{post.content}</article>
    </>
  );
}

metadata API の使用(Next.js 15+)

export async function generateMetadata({ params }) {
  const post = await getPost(params.slug);
  return {
    title: post.title,
    description: post.description,
    openGraph: {
      title: post.title,
      description: post.description,
      type: 'article',
      publishedTime: post.publishedAt,
      modifiedTime: post.updatedAt,
    },
  };
}

Google リッチスニペット効果

構造化データタイプ リッチスニペット効果 CTR 向上
Article 著者アバター、公開日 +20-30%
FAQPage FAQ 折りたたみ展開 +30-50%
HowTo 手順リスト +20-40%
BreadcrumbList パンくずパス +10-15%
SoftwareApplication 評価、価格 +25-35%

検証とデバッグ

Google リッチ結果テスト

Rich Results Test にアクセスし、ページ URL を入力するか HTML コードを貼り付けます。

Schema.org バリデーター

Schema Markup Validator で JSON-LD 構造が仕様に準拠しているか検証します。

Search Console モニタリング

Search Console → 拡張機能 → 構造化データ

- 有効/無効項目数を確認
- 具体的なエラーを特定
- Google 認識の進捗を監視

よくあるエラーのトラブルシューティング

エラー 原因 修正
必須フィールド不足 required プロパティが未提供 headline、datePublished 等を補完
タイプ不一致 値の型が Schema 定義と合わない date は ISO 8601 形式を使用
重複構造化データ 同一内容の重複宣言 配列に統合または重複を削除
無効な URL URL 形式エラーまたは到達不能 完全な絶対パスを使用

ベストプラクティス

  • ページ内容に合ったタイプのみ宣言:ブログは Article、ツールは SoftwareApplication
  • datePublished と dateModified は ISO 86012026-06-07 または 2026-06-07T08:00:00+08:00
  • image は絶対 URLhttps://toolsku.com/og/image.png
  • データを捏造しない:Google は誤解を招く構造化データに手動措置を取る可能性あり
  • Open Graph と補完関係:JSON-LD は検索エンジン向け、OG はソーシャルメディア向け

まとめ

JSON-LD は構造化データ実装の最適なアプローチです。Schema.org 語彙表を通じて検索エンジンに語義情報を提供し、リッチスニペット表示率とクリック率を大幅に向上させます。Next.js では next/script または metadata API で簡単に統合でき、Google リッチ結果テストと Search Console で効果を継続的にモニタリングできます。

OGプレビューツール で Open Graph タグを確認、サイトマップジェネレーター でページの発見可能性を確保、Robots.txt エディター でクローラーアクセスを制御できます。

ブラウザローカルツールを無料で試す →

#JSON-LD#结构化数据#SEO#Schema.org#富摘要