構造化データの検証・運用完全ガイド:Rich Results Test・AIOGeoScan・頻出エラー10選

JSON-LDを実装したら終わりではありません。 実装した構造化データが正しく動作しているかを検証し、 コンテンツ追加・デザイン変更・フレームワークアップデートのたびに崩れていないかを監視する「品質維持サイクル」 が不可欠です。 本章では、Googleの公式ツールから AIOGeoScan までの検証環境と、 現場で最も多く遭遇するエラー10選とその修正コードを解説します。

1. 検証ツール全体像:どれを使えばよいか

ツール提供者主な用途特徴
Google Rich Results TestGoogleリッチリザルト適格性の確認Googleの公式判定。URLとHTMLコード両方でテスト可能
Google Search ConsoleGoogle本番サイトの継続監視「拡張」タブでリッチリザルトの表示数・エラー推移を追跡
schema.org Validatorschema.orgschema.org仕様への準拠確認Google以外のスキーマ仕様を厳格にチェック。JSON-LDテキストを直接入力可能
AIOGeoScanBennu Inc.構造化データ + AI検索最適化の総合診断JSON-LDエラー+llms.txt+E-E-A-T+AI検索スコアを一括チェック

2. Google Rich Results Test の使い方

Google Rich Results Test は、構造化データ実装後に最初に使うべき公式ツールです。 URLを入力するだけで、Googleがそのページのスキーマをどう解釈するか、 リッチリザルトとして表示される資格があるかを即座に判定します。

URLを入力してテストを実行search.google.com/test/rich-results を開き、テスト対象のURLを入力します。 本番公開前のローカル環境では「コードのテスト」タブにHTMLソースを直接貼り付けてテストします。
「検出されたアイテム」を確認テスト結果に「検出されたアイテム」として Article、FAQPage などのスキーマ名が表示されれば、 Googleが正しくスキーマを読み取れています。 各アイテムをクリックすると、認識されたプロパティの詳細が確認できます。
エラー(赤)と警告(オレンジ)を区別するエラー(赤):必須プロパティが欠けており、このスキーマではリッチリザルトに表示されません。必ず修正が必要です。
警告(オレンジ):推奨プロパティが欠けています。リッチリザルスの表示は可能ですが、品質向上のために追加を検討してください。
モバイル・デスクトップ両方でテストGoogleはモバイルファーストインデックスを採用しています。 モバイルクローラーとデスクトップクローラーで異なる HTML が返るサイトでは、 両方のUserAgentでテストすることを推奨します。

3. Google Search Console での継続監視

Rich Results Test は「今この瞬間」のスナップショット確認です。 一方、Google Search Console は本番サイトのリッチリザルトの 表示数・エラーの推移を時系列で追跡できます。 月1回以上のペースで確認する習慣をつけましょう。

確認場所

Search Console の左メニュー →「拡張」セクション。 Article、FAQPage など実装済みスキーマのタイプごとに項目が表示されます。

見るべき指標

「エラー」のあるURL数が増加していないか。 「リッチリザルトの表示回数」がデプロイ後に下がっていないか。 急落した場合は実装変更が原因の可能性があります。

URLの検査

個別URLを「URLの検査」に入力すると、Googleが最後にクロールした時点の ページ情報と構造化データの解析結果を確認できます。 「ライブURLをテスト」で即時確認も可能。

4. 現場で頻出する JSON-LD エラートップ10と修正コード

AIOGeoScanの診断データと、Google Search Consoleのエラーレポートから集計した最も多く発生するJSON-LDエラー を10件紹介します。 各エラーには修正コードを添えています。

エラー1:重要プロパティ headline を入れ忘れる(Article)

Googleの Article ドキュメントでは headline は「推奨」扱いですが、 実務上はほぼ必須レベルの重要プロパティです。titlename と混同して省略されるケースが多いです。

修正前 → 修正後JSON-LD
// ❌ NG
{ "@type": "Article", "title": "記事タイトル" }

// ✅ OK
{ "@type": "Article", "headline": "記事タイトル" }

エラー2:image の解像度不足(Article)

Googleは 16:9・4:3・1:1 の複数高解像度画像を推奨しており、 面積の目安は 50K pixels 以上 です。 OGP用の小さな画像をそのまま流用しているケースでよく問題になります。

解決策JSON-LD
// ✅ 3アスペクト比を提供する(推奨)
"image": [
  "https://example.com/img/article-1200x1200.jpg",  // 1:1
  "https://example.com/img/article-1200x900.jpg",   // 4:3
  "https://example.com/img/article-1200x675.jpg"    // 16:9
]

エラー3:datePublished が ISO 8601 形式でない

日本語形式("2026年4月12日")や スラッシュ区切り("2026/04/12")での記述は無効です。

修正前 → 修正後JSON-LD
// ❌ NG
"datePublished": "2026年4月12日"
"datePublished": "2026/04/12"

// ✅ OK(ISO 8601 形式)
"datePublished": "2026-04-12"
"datePublished": "2026-04-12T09:00:00+09:00"  // タイムゾーン付きが推奨

エラー4:FAQPage の acceptedAnswer が欠落

FAQPage で Question は定義しているのに acceptedAnswer がない。 または acceptedAnswer@type: "Answer" が省略されているケース。

修正前 → 修正後JSON-LD
// ❌ NG
{
  "@type": "Question",
  "name": "質問文",
  "answer": "回答文"  // ← プロパティ名が違う
}

// ✅ OK
{
  "@type": "Question",
  "name": "質問文",
  "acceptedAnswer": {
    "@type": "Answer",
    "text": "回答文"
  }
}

エラー5:@type の大文字小文字ミス

schema.org のタイプ名は PascalCase(先頭大文字)です。"organization"(小文字)や "FAQ page"(スペース)は無効です。

よくある誤りと正解JSON-LD
// ❌ NG(よくあるtypo)
"@type": "organization"    → ✅ "Organization"
"@type": "blogpost"        → ✅ "BlogPosting"
"@type": "faqpage"         → ✅ "FAQPage"
"@type": "breadcrumblist"  → ✅ "BreadcrumbList"
"@type": "howto"           → ✅ "HowTo"

エラー6:BreadcrumbList の position が非連続・重複

position は 1 から始まる連続した整数でなければなりません。 動的生成でインデックスを誤ると非連続になります。

修正前 → 修正後JSON-LD
// ❌ NG(position が 0 から始まっている、または重複)
[
  { "position": 0, "name": "ホーム" },
  { "position": 1, "name": "ブログ" },
  { "position": 1, "name": "記事タイトル" }  // 重複
]

// ✅ OK(1から始まる連続した整数)
[
  { "@type": "ListItem", "position": 1, "name": "ホーム", "item": "https://..." },
  { "@type": "ListItem", "position": 2, "name": "ブログ", "item": "https://..." },
  { "@type": "ListItem", "position": 3, "name": "記事タイトル", "item": "https://..." }
]

エラー7:AggregateRating の評価値が範囲外

ratingValuebestRating を超えている場合や、bestRatingworstRating が省略されているためGoogleが範囲を判断できないケース。

修正前 → 修正後JSON-LD
// ❌ NG(bestRating が省略されている)
"aggregateRating": {
  "@type": "AggregateRating",
  "ratingValue": "4.5",
  "reviewCount": "100"
}

// ✅ OK(bestRating・worstRating を明示)
"aggregateRating": {
  "@type": "AggregateRating",
  "ratingValue": "4.5",
  "reviewCount": "100",
  "bestRating": "5",
  "worstRating": "1"
}

エラー8:JSON.stringify だけで安全だと思い込む

記事タイトルや説明文に <>& などのHTML特殊文字が含まれると、dangerouslySetInnerHTML を通じてXSSリスクが生じます。JSON.stringify は便利ですが、それだけでは悪意ある文字列を完全には無害化しません。CMSや外部入力を扱う場合は、追加の置換まで含めて実装するのが安全です。

安全な実装パターン(Next.js)TypeScript
// ✅ 追加の置換を行う
<script
  type="application/ld+json"
  dangerouslySetInnerHTML={{
    __html: JSON.stringify(jsonLd).replace(/</g, '\u003c')
  }}
/>

// ⚠️ テンプレートリテラルでの文字列結合は危険
// ❌ NG:タイトルにHTMLが混入するリスクがある
<script
  type="application/ld+json"
  dangerouslySetInnerHTML={{ __html: `{"headline": "${post.title}"}` }}
/>

エラー9:logo の URL が相対パス(Organization)

/logo.png(相対URL)を指定するとGoogleがロゴを取得できません。 すべての URL プロパティは 完全な絶対URLhttps:// から始まる)で記述します。

修正前 → 修正後JSON-LD
// ❌ NG(相対URL)
"logo": { "@type": "ImageObject", "url": "/logo.png" }

// ✅ OK(絶対URL)
"logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" }

エラー10:ページコンテンツとスキーマの内容不一致

FAQPageスキーマにQ&Aを記述しているが、実際のHTMLページにはQ&Aコンテンツが存在しない。 または Article スキーマの headline がページの <h1> と全く異なる内容。 Googleはページのコンテンツとスキーマの整合性を確認しており、 不一致はスパム扱いになる可能性があります。

解決策:スキーマはページに実際に存在するコンテンツを機械語に翻訳したものでなければなりません。 スキーマ先行でコンテンツ後付けという実装順序は避けてください。

5. AIOGeoScan を使った継続的品質管理フロー

複数ページを持つサイトで構造化データを手動管理するには限界があります。AIOGeoScan を活用することで、 JSON-LDのエラー検出・llms.txtとの整合性確認・AI検索最適化スコアの追跡を 自動化できます。

1. URLを入力して即時診断

診断したいURLを入力するだけで、JSON-LDスキーマのエラー・警告を自動検出。 複数ページを横断してスコアを比較することで優先度の高い修正箇所を特定できます。

2. E-E-A-T観点のスコアリング

Organization・Person スキーマの完成度をE-E-A-T観点からスコアリング。 不足しているプロパティと、それがGoogleの評価にどう影響するかを解説します。

3. AI検索最適化スコア

ChatGPT Search・Perplexity・Google AI Overviewsへの引用適格性を評価。 FAQPage・HowToスキーマの有無や、llms.txtとの整合性を含めた総合スコアを提供します。

6. 開発フローへの組み込み:デプロイ前の自動バリデーション

Next.jsプロジェクトでは、プルリクエストのマージ前に構造化データの検証を CI/CDパイプラインに組み込むことで、デプロイ後のエラー混入を防げます。

GitHub Actions でのJSON-LD自動バリデーション(イメージ)YAML
# .github/workflows/seo-validation.yml
name: SEO & Structured Data Validation

on:
  pull_request:
    branches: [main]

jobs:
  validate-json-ld:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Install dependencies
        run: npm ci

      - name: Build Next.js
        run: npm run build

      - name: Start server
        run: npm start &

      - name: Wait for server
        run: npx wait-on http://localhost:3000

      - name: Validate JSON-LD on key pages
        run: |
          # schema-validator CLI や独自スクリプトでJSON-LDを抽出・検証
          # 例:主要ページのJSONLDを取得してエラーがないか確認
          node scripts/validate-jsonld.js             --urls "http://localhost:3000,http://localhost:3000/blog/sample"             --fail-on-error
📋 構造化データ品質管理 月次チェックリスト
  • Google Search Console「拡張」タブでエラー数が増加していないか確認
  • AIOGeoScan で主要ページのスコアに低下がないか確認
  • 新規追加ページに JSON-LD が正しく実装されているか Rich Results Test で確認
  • CMSまたはデータソースの変更により、動的 JSON-LD の出力内容に影響がないか確認
  • フレームワーク(Next.js)のバージョンアップ後、dangerouslySetInnerHTML の動作に変化がないか確認
  • 新しいコンテンツ種別(動画・コース・採用情報など)が追加された場合、対応スキーマを検討

シリーズ完走おめでとうございます

全5章にわたって、JSON-LDの基礎から実装・運用まで学んできました。 ここで学んだ知識は、本シリーズの他のガイドと組み合わせることで、さらに強力なAI検索最適化(AIO/GEO)を実現します。

GEO 完全ガイド:AI検索エンジンの仕組みを理解し、引用率を最大化する戦略llms.txt 完全ガイド:AIエージェントにサイトの全体構造を正確に伝え、引用精度を高めるE-E-A-T 実践ガイド:著者情報や専門性の証明で、AIからの信頼度を最大化するrobots.txt / sitemap.xml 完全ガイド:適切なクローラー制御で、インデックス効率を高めるAIOGeoScan 診断:実際のサイトを診断して、学んだ知識を即実践する

JSON-LD の全章を学び終えたら、
実際に診断してみましょう

5章にわたって学んだ JSON-LD の知識を、あなたの実際のサイトに活かす第一歩として、 AIOGeoScan の無料診断を活用してください。 JSON-LDエラーの検出から、llms.txt・E-E-A-T・AI検索スコアまでを一括で可視化します。

今すぐ自社サイトを無料診断する
Editorial Trust Signals

このナレッジベースの編集方針

`AIOGeoScan Knowledge` は、Bennu Inc. が運営する AI検索・構造化データ・クローラー制御に関する実務ナレッジです。 Google Search Central、Schema.org、OpenAI などの一次情報を優先し、観測ベースの実務知見は本文中で区別して扱います。

運営主体
Bennu Inc. / AIOGeoScan
更新方針
仕様変更や検索機能の更新にあわせて都度改訂
優先ソース
公式ドキュメント・標準仕様・公式ヘルプ
補助ソース
実装観測・運用知見・再現性のある検証結果

あなたのサイト、AIに正しく伝わっていますか?

解説を読み終えたら、実際にあなたのサイトを診断してみましょう。
100項目以上の診断で、AI時代の構造課題を可視化します。

無料で診断を開始する