SEO
構造化データ完全ガイド2026 - JSON-LDでリッチリザルトを獲得する方法
Schema.orgとJSON-LDでGoogleリッチスニペットを獲得する方法。FAQ、How-to、Productスキーマの実装ガイドと実践例。
Toolypet Team
Development Team
構造化データ完全ガイド2026
検索結果で星評価、FAQ、レシピカードを見たことはありますか?それが**リッチリザルト(Rich Results)**です。
2026年現在、リッチリザルトのあるページはCTRが平均58%高いです。構造化データであなたのコンテンツも目立たせましょう。
構造化データとは?
構造化データは、検索エンジンがページコンテンツを理解するのを助ける標準化された形式です。
主要な概念
| 用語 | 説明 |
|---|---|
| Schema.org | Google、Microsoft、Yahooが共同開発した語彙 |
| JSON-LD | JavaScriptベースのデータフォーマット(Google推奨) |
| Rich Results | 構造化データに基づく強化された検索結果 |
| Rich Snippet | リッチリザルトの旧称 |
なぜJSON-LDなのか?
| フォーマット | メリット | デメリット |
|---|---|---|
| JSON-LD | HTMLと分離、メンテナンスが容易 | JavaScript依存 |
| Microdata | HTMLに直接埋め込み | コードが複雑 |
| RDFa | 柔軟性がある | 学習コストが高い |
Google公式推奨: JSON-LD
リッチリザルトの種類
Googleがサポートする主な種類
| 種類 | 表示形式 | 用途 |
|---|---|---|
| Article | ニュースカード | ブログ、ニュース |
| FAQ | 質問/回答の展開 | FAQページ |
| How-to | ステップバイステップガイド | チュートリアル |
| Product | 価格、在庫、評価 | 商品ページ |
| Review | 星評価表示 | レビューコンテンツ |
| Recipe | 調理時間、カロリー | レシピ |
| Event | 日付、場所 | イベント |
| LocalBusiness | 営業時間、所在地 | ローカルビジネス |
| BreadcrumbList | パス表示 | すべてのページ |
JSON-LDの基本構造
テンプレート
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "スキーマタイプ",
"プロパティ1": "値1",
"プロパティ2": "値2"
}
</script>
必須要素
| 要素 | 説明 |
|---|---|
@context | 常に"https://schema.org" |
@type | スキーマタイプ(Article、FAQなど) |
| 必須プロパティ | タイプによって異なる |
実践的な実装例
1. Article(ブログ/ニュース)
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "構造化データ完全ガイド2026",
"description": "JSON-LDでリッチリザルトを獲得する方法",
"image": "https://example.com/article-image.jpg",
"author": {
"@type": "Person",
"name": "Sam Rank",
"url": "https://example.com/author/sam-rank"
},
"publisher": {
"@type": "Organization",
"name": "Toolypet",
"logo": {
"@type": "ImageObject",
"url": "https://toolypet.com/logo.png"
}
},
"datePublished": "2026-02-22",
"dateModified": "2026-02-22"
}
2. FAQ(よくある質問)
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "構造化データとは何ですか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "構造化データは、検索エンジンがページコンテンツを理解するのを助ける標準化された形式です。"
}
},
{
"@type": "Question",
"name": "JSON-LDはどこに配置すべきですか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "HTMLの<head>または<body>内のどこにでも配置できますが、<head>に配置することが推奨されます。"
}
}
]
}
3. How-to(ステップバイステップガイド)
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "JSON-LD構造化データの追加方法",
"description": "Webページにjson-ldを追加する方法",
"totalTime": "PT10M",
"step": [
{
"@type": "HowToStep",
"name": "スキーマタイプを選択",
"text": "ページコンテンツに合ったSchema.orgタイプを選択します。"
},
{
"@type": "HowToStep",
"name": "JSON-LDコードを作成",
"text": "選択したスキーマに従ってJSON-LDコードを作成します。"
},
{
"@type": "HowToStep",
"name": "HTMLに挿入",
"text": "<script type='application/ld+json'>タグでコードを囲み、HTMLに挿入します。"
},
{
"@type": "HowToStep",
"name": "テスト",
"text": "Google Rich Results Testで有効性を検証します。"
}
]
}
4. Product(商品)
{
"@context": "https://schema.org",
"@type": "Product",
"name": "SEOガイドブック2026",
"description": "最新のSEO戦略を網羅した実践ガイド",
"image": "https://example.com/product.jpg",
"brand": {
"@type": "Brand",
"name": "Toolypet"
},
"offers": {
"@type": "Offer",
"price": "2990",
"priceCurrency": "JPY",
"availability": "https://schema.org/InStock",
"url": "https://example.com/product"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "124"
}
}
5. BreadcrumbList(パンくずリスト)
{
"@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/seo"
},
{
"@type": "ListItem",
"position": 3,
"name": "構造化データガイド",
"item": "https://example.com/seo/structured-data"
}
]
}
6. LocalBusiness(ローカルビジネス)
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "カフェ モーニンググローリー",
"image": "https://example.com/cafe.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "渋谷1-2-3",
"addressLocality": "東京都",
"addressRegion": "渋谷区",
"postalCode": "150-0002",
"addressCountry": "JP"
},
"telephone": "+81-3-1234-5678",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "22:00"
}
],
"priceRange": "$$"
}
フレームワーク別の実装
Next.js
// app/layout.tsx または pages/_document.tsx
import Script from 'next/script';
export default function Layout({ children }) {
const jsonLd = {
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Toolypet",
"url": "https://toolypet.com"
};
return (
<html>
<head>
<Script
id="json-ld"
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
</head>
<body>{children}</body>
</html>
);
}
React(Helmet)
import { Helmet } from 'react-helmet';
function ArticlePage({ article }) {
const jsonLd = {
"@context": "https://schema.org",
"@type": "Article",
"headline": article.title,
"author": { "@type": "Person", "name": article.author }
};
return (
<>
<Helmet>
<script type="application/ld+json">
{JSON.stringify(jsonLd)}
</script>
</Helmet>
<article>{/* コンテンツ */}</article>
</>
);
}
WordPress
// functions.php
function add_json_ld_schema() {
if (is_single()) {
$schema = array(
"@context" => "https://schema.org",
"@type" => "Article",
"headline" => get_the_title(),
"datePublished" => get_the_date('c')
);
echo '<script type="application/ld+json">' . json_encode($schema) . '</script>';
}
}
add_action('wp_head', 'add_json_ld_schema');
検証とテスト
Google公式ツール
| ツール | URL | 用途 |
|---|---|---|
| Rich Results Test | search.google.com/test/rich-results | リッチリザルト適格性テスト |
| Schema Markup Validator | validator.schema.org | スキーマ構文の検証 |
| Search Console | search.google.com/search-console | 実際のインデックス状態確認 |
テストチェックリスト
- JSON構文エラーなし
- 必須プロパティをすべて含む
- 実際のページコンテンツと一致
- 有効な画像URL
- Rich Results Test合格
よくあるミスと解決策
1. JSON構文エラー
// ❌ 間違い:末尾のカンマ
{
"name": "テスト",
"url": "https://example.com", // ここ!
}
// ✅ 正しい
{
"name": "テスト",
"url": "https://example.com"
}
2. 必須プロパティの欠落
// ❌ Articleでauthorが欠落
{
"@type": "Article",
"headline": "タイトルのみ"
}
// ✅ 必須プロパティを含む
{
"@type": "Article",
"headline": "完全な記事",
"author": { "@type": "Person", "name": "著者" },
"datePublished": "2026-02-22"
}
3. コンテンツの不一致
// ❌ ページと異なる内容
{
"@type": "Product",
"price": "10000" // 実際のページでは15000円
}
// Googleガイドライン違反 = 手動対策のリスク
4. 過剰なマークアップ
❌ すべてのテキストを構造化データとしてマークアップ
❌ 非表示コンテンツにスキーマを適用
❌ ユーザーに見えない情報を含める
✅ 実際に表示されているコンテンツのみをマークアップ
✅ 主要な情報のみを構造化
SEO効果
期待される効果
| 指標 | 改善 |
|---|---|
| CTR(クリック率) | +20-58% |
| インプレッション | リッチリザルト適格 |
| 信頼性 | 星評価、レビュー表示 |
| 音声検索 | 回答候補 |
注意点
- 構造化データ ≠ ランキング上昇の保証
- リッチリザルトの表示はGoogleの裁量
- ガイドライン違反で手動対策
ベストプラクティスチェックリスト
実装
- ページタイプに適したスキーマを選択
- すべての必須プロパティを含む
- JSON-LD形式を使用
-
<head>内に配置
コンテンツ
- 実際のページコンテンツと一致
- ユーザーに表示される情報のみを含む
- 情報を最新の状態に保つ
テスト
- Rich Results Test合格
- Schema Markup Validator合格
- Search Consoleでエラーなし
FAQ
Q1: 構造化データはランキングに直接影響しますか?
A: 直接的なランキング要因ではありません。ただし、CTR増加、音声検索の回答など間接的な効果があります。
Q2: 1つのページに複数のスキーマを入れても良いですか?
A: はい!Article + FAQ + BreadcrumbListを一緒に使うのが一般的です。それぞれ別の<script>タグで追加してください。
Q3: リッチリザルトが表示されない理由は?
A: 考えられる原因:
- 必須プロパティの欠落
- ページがインデックスされていない
- Googleの裁量(保証ではない)
- 競合ページの方が適している
Q4: MicrodataとJSON-LD、どちらを選ぶべき?
A: JSON-LDを推奨します。Google公式推奨であり、HTMLと分離されているためメンテナンスが容易です。
Q5: 動的コンテンツにも構造化データを適用できますか?
A: はい!JavaScriptで生成されたJSON-LDもGoogleは読み取れます。ただし、サーバーサイドレンダリングの方が安定しています。
まとめ
構造化データの要点:
- JSON-LDを使用: Google推奨形式
- 適切なスキーマを選択: コンテンツタイプに合わせて
- 必須プロパティを含む: タイプ別の必須要素を確認
- コンテンツと一致: 表示されている情報のみ
- テスト必須: Rich Results Testに合格
関連ツール
| ツール | 用途 |
|---|---|
| 構造化データジェネレーター | JSON-LD自動生成 |
| メタタグジェネレーター | メタタグ生成 |
| SERPプレビュー | 検索結果プレビュー |
構造化データJSON-LDSchema.orgリッチスニペットSEO検索最適化
著者について
Toolypet Team
Development Team
The Toolypet Team creates free, privacy-focused web tools for developers and designers. All tools run entirely in your browser with no data sent to servers.
Web DevelopmentCSS ToolsDeveloper ToolsSEOSecurity