Structured Data
構造化データ実装
構造化データ(Schema.org・JSON-LD)とは、ページのコンテンツの意味を検索エンジンとAIに明確に伝えるマークアップです。リッチリザルトの獲得・AI検索での引用可能性向上・ローカルSEOへの貢献という3つの効果があります。
ChatGPT・Gemini・PerplexityなどのAI検索が普及する中、構造化データはSEOだけでなくAIO(AI検索最適化)の観点からも重要度が高まっています。コンテンツの意味を構造化し、機械読み取り可能な形式で提供することが、AI時代のWebサイトの基礎です。
What You Will Learn
このページでわかること
構造化データ(JSON-LD・Schema.org)の仕組みと、検索エンジン・AI検索への働き方
FAQPage・BreadcrumbList・Organization・Article・LocalBusiness など主要タイプの役割と使い分け
Next.jsのApp Routerで構造化データを実装する具体的な方法とファイル設計
Google Rich Results Testを使った実装後の検証手順とエラーの読み方
AI検索(ChatGPT・Gemini・Perplexity)で引用されやすくするためのAIO対策との関係
Search Consoleの「拡張機能」タブで構造化データのエラーを継続的に監視する方法
Common Issues
よくある課題と原因
構造化データの未実装・実装ミスは、リッチリザルトの機会損失だけでなく、AI検索での引用率低下にも直結します。以下は現場でよく見られる課題です。
構造化データをまったく実装していない
HTML・CSSは整っていても、JSON-LDが一行も書かれていないサイトは依然として多数あります。Google検索でのリッチリザルト獲得機会をすべて逃している状態です。
JSON-LDの記述に構文エラーがある
JSONのカンマ忘れ・括弧の対応ズレ・プロパティ名のスペルミスなどで構造化データが無効になっていることがあります。Rich Results Testで定期的に検証する習慣が必要です。
FAQページに FAQPageマークアップがない
質問と回答を並べたページはあるものの、FAQPageタイプの構造化データが未実装でリッチリザルトが出ていないケースが多くあります。FAQ形式のコンテンツを持つページは最優先で実装すべき項目です。
BreadcrumbListが全ページに入っていない
トップページだけに実装されていたり、一部のテンプレートにしか含まれていないケースがあります。パンくずリストの表示は全ページへの実装が前提です。
LocalBusiness情報が未設定または古い
地域ビジネスサイトでOrganizationのみ実装し、LocalBusinessタイプが未設定の場合があります。住所・電話番号・営業時間の構造化がないと、ローカル検索(Googleマップ)での評価強化につながりません。
AI検索(AIO)対策としての構造化データを認識していない
リッチリザルトのみを目的として実装しているため、ChatGPT・Gemini・Perplexityへの最適化という視点がありません。AIO向けには著者情報(author)・引用元(citation)・FAQPageを優先的に整備します。
ページに存在しないコンテンツをマークアップしている
Googleのスパムポリシーに違反する実装で、ペナルティの対象になります。ページ上に実際に表示されていない情報(存在しない口コミ・架空のFAQ)を構造化データに含めてはいけません。
Next.jsのlayout.tsxとpage.tsxの役割分担が曖昧
Organizationをlayoutとpageのどちらにも重複して実装したり、BreadcrumbListをlayoutに置いてページごとに変えられない設計になっているケースがあります。設計ルールを定めてから実装することが重要です。
Search Consoleのエラーを放置している
構造化データのエラーがSearch Consoleに蓄積しているにもかかわらず、「拡張機能」タブを確認していないサイトが多くあります。エラーを放置するとリッチリザルトが失効する場合があります。
更新されたコンテンツに構造化データが追従していない
FAQの質問内容・価格・営業時間などを更新したにもかかわらず、JSON-LDが古い情報のまま残っているケースがあります。コンテンツ更新フローに構造化データの更新チェックを含める必要があります。
Schema Types
主要なSchema.orgタイプと実装箇所
| Schema Type | 効果・概要 | 実装ページ |
|---|---|---|
| WebSite | サイト名・URL・検索機能(SearchAction)をGoogleに伝える。全サイト共通。 | サイト全体(layout.tsx) |
| Organization | 会社名・住所・電話・URL・ロゴ・SNSリンク。ブランド認知とE-E-A-T強化。 | サイト全体(layout.tsx) |
| LocalBusiness | 地域ビジネスの詳細情報。営業時間・対応エリア・座標。ローカルSEOに必須。 | トップページ・会社ページ |
| BreadcrumbList | ページの階層構造をGoogleに伝える。検索結果でのパンくず表示。 | 全ページ |
| FAQPage | FAQ形式のコンテンツ。検索結果でのアコーディオンリッチリザルト。AI引用向上。 | FAQセクションがあるページ |
| Article | ブログ記事・コラム。著者・公開日・更新日・見出し構造。 | ブログ・コラム記事 |
| Service | サービスの概要・価格帯・説明。サービスページに実装。 | サービス紹介ページ |
| Review / AggregateRating | 口コミ・評価スコア。星評価のリッチリザルト表示。 | 口コミ掲載ページ |
Type Reference
実装タイプ別の解説
各Schema.orgタイプは用途と実装すべきプロパティが異なります。それぞれの目的と書き方を理解してから実装することで、エラーのない正確な構造化データを構築できます。
Organization
組織情報会社名(name)・公式URL(url)・ロゴ画像(logo)・住所(address)・電話番号(telephone)・SNSプロフィールURL(sameAs)を記述します。Googleのナレッジパネルに情報が表示されやすくなり、E-E-A-Tの権威性向上に貢献します。サイト全体のlayout.tsxに一度実装するのが標準的な設計です。
LocalBusiness
地域ビジネスOrganizationのサブタイプで、実店舗・地域ビジネスに使います。営業時間(openingHoursSpecification)・対応エリア(areaServed)・地理座標(geo)・価格帯(priceRange)を追加で記述します。RestaurantやBeautySalonなどの業種別サブタイプを使うとより精度が上がります。ローカルパックへの表示精度向上が主な目的です。
FAQPage
よくある質問mainEntityプロパティにQuestion・Answerの配列を記述します。Questionにはname(質問文)、Answerにはtext(回答文)を入力します。Google検索結果でアコーディオン形式の拡張スニペットが表示される可能性があります。AI検索での引用率向上にも直接貢献するため、すべてのFAQセクションに実装を推奨します。
BreadcrumbList
パンくずリストitemListElementにListItemの配列を記述し、各要素にposition(順番の数値)・name(表示名)・item(絶対URL)を入力します。ページの階層が深いほど効果的です。検索結果のURLをパンくず形式で表示するリッチリザルトにつながり、ユーザーがサイト構造を把握しやすくなります。全ページのpage.tsxに実装します。
Article / BlogPosting
記事・ブログ投稿見出し(headline)・著者(author)・公開日(datePublished)・更新日(dateModified)・画像(image)・説明(description)を記述します。著者をPersonタイプでネストし、名前・プロフィールURLを含めることでAI検索向けE-E-A-T(経験・専門性・権威性・信頼性)の強化につながります。ブログ記事ページのpage.tsxに個別実装します。
Product
商品・サービス製品商品名(name)・説明(description)・画像(image)・価格(offers内のprice・priceCurrency)・ブランド(brand)を記述します。AggregateRatingと組み合わせることで、検索結果に星評価(評価スコアとレビュー件数)を表示させることができます。ECサイトだけでなく、SaaSや有形商品を扱うBtoBサービスにも有効です。
Review / AggregateRating
口コミ・評価ratingValue(平均評価スコア)・reviewCount(レビュー件数)・ratingCount(評価件数)を記述します。Product・LocalBusiness・Articleなど他のタイプに組み合わせて使います。ページ上に実際の口コミ・評価データが存在することが前提で、架空のデータを使うとGoogleのスパムポリシー違反になります。
WebSite
サイト全体サイト名(name)・URL(url)に加え、SearchActionをpotentialActionに記述することでサイト内検索機能をGoogleに伝えることができます。検索ボックスのリッチリザルト(サイトリンク検索ボックス)につながる可能性があります。layout.tsxに一度実装し、全ページで共有します。
Service
サービスページサービス名(name)・説明(description)・提供者(provider)・エリア(areaServed)・価格情報(offers)を記述します。明確なサービスページを持つBtoBサービスサイトで活用します。検索エンジンがサービスの内容を正確に把握することで、関連キーワードでのインデックス精度が向上します。
VideoObject
動画コンテンツ動画のタイトル(name)・説明(description)・サムネイル(thumbnailUrl)・公開日(uploadDate)・動画URL(contentUrl)を記述します。YouTube埋め込みだけでなく、自社ホスティングの動画にも対応します。Google検索での動画リッチリザルト(サムネイル付きの結果)獲得を狙えます。
Implementation
Next.jsでの構造化データ実装例
Next.jsのApp Routerでは、各ページのpage.tsxコンポーネント内にscriptタグを直接記述します。typeをapplication/ld+jsonに指定し、dangerouslySetInnerHTMLプロパティでJSON文字列を渡すのが標準的な方法です。@graphを使って複数のスキーマをひとつのscriptタグにまとめることで、ページ内のscriptタグ数を抑えられます。
const jsonLd = {
"@context": "https://schema.org",
"@graph": [
{
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1,
"name": "ホーム", "item": "https://www.cypress-all.co.jp" },
{ "@type": "ListItem", "position": 2,
"name": "SEO対策",
"item": "https://www.cypress-all.co.jp/seo" }
]
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "SEO対策の費用はいくらですか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "初期費用〇〇円〜、月額〇〇円〜です。"
}
}
]
}
]
};layout.tsxへのOrganization・WebSite実装
サイト全体で共通のOrganizationとWebSiteはルートlayout.tsxに一度実装します。会社名・住所・電話・ロゴURL・SNSのsameAs配列を記述します。一方でBreadcrumbList・FAQPage・Articleはページごとに内容が変わるため、各page.tsxに個別実装します。この役割分担を徹底することで、スキーマの重複や不整合を防ぎます。
Google Rich Results Testでの検証手順
実装後はsearch.google.com/test/rich-resultsにアクセスし、対象ページのURLを入力して「テスト」を実行します。「有効なアイテム」として認識されたタイプが一覧表示されます。「エラーのあるアイテム」が表示された場合は、詳細メッセージを確認して必須プロパティの追加や値の修正を行います。実装のたびにこのツールで検証することを推奨します。
Implementation Flow
構造化データ実装フロー
いきなりコードを書くのではなく、サイトのページ構成と実装すべきタイプを整理してから着手することで、漏れや重複のない構造化データ設計ができます。
サイトのページ構成を棚卸しする
トップページ・サービスページ・ブログ・会社概要・コンタクトなど、すべてのページタイプをリストアップします。各ページにどのSchema.orgタイプが該当するかをマッピングします。
優先順位を決める
効果の高い順(FAQPage → BreadcrumbList → Organization → LocalBusiness → Article)で実装優先度を設定します。トラフィックの多いページから着手するのが基本方針です。
layout.tsxにOrganization・WebSiteを実装する
サイト全体で共通のスキーマをルートレイアウトに配置します。会社情報・ロゴ・SNSリンク・サイト名・SearchActionを記述します。
各ページのpage.tsxにBreadcrumbListを実装する
全ページに対してそのページの階層構造を反映したBreadcrumbListを実装します。ページ深度に応じてListItemの数を調整します。
FAQセクションを持つページにFAQPageを実装する
FAQを掲載しているすべてのページを対象に、mainEntityにQuestion・Answerを記述します。Q&AはページのHTMLに実際に表示されている内容と一致させます。
ブログ・コラムページにArticleを実装する
記事ごとにheadline・author・datePublished・dateModified・imageを記述します。著者はPersonタイプでネストし、プロフィールURLも含めます。
Google Rich Results Testで全タイプを検証する
実装したすべてのページタイプをRich Results Testで確認し、エラーがないことを確認します。エラーがあれば原因を特定して修正します。
Search ConsoleでURLをインスペクションしてインデックスリクエストを送る
Search ConsoleのURL検査ツールで実装ページのURLを入力し、「インデックス登録をリクエスト」を実行します。Googleのクロールを促進します。
Search Consoleの「拡張機能」で定期監視を設定する
Search Consoleの「拡張機能」セクションを定期的に確認し、構造化データのエラー・警告が蓄積していないかをチェックします。コンテンツ更新のたびに確認します。
コンテンツ更新フローに構造化データの更新チェックを組み込む
FAQの変更・営業時間の変更・記事の更新時に構造化データも連動して更新する運用ルールを設けます。JSON-LDとHTMLコンテンツの整合性を常に保ちます。
KPIs
成果を見るための指標
構造化データの実装効果はリッチリザルトの表示確認だけでなく、Search Consoleのデータを通じて定量的に追跡できます。以下のKPIを定点観測します。
クリック率(CTR)の変化
Search Consoleの「検索パフォーマンス」レポートで、リッチリザルトが表示されるようになったページのCTRを構造化データ実装前後で比較します。FAQPageのリッチリザルトが出ると、CTRが向上するケースがあります。
リッチリザルトの表示件数
Search Consoleの「拡張機能」セクションで、FAQリッチリザルト・パンくずリスト表示の件数推移を確認します。実装から数週間後に数字が増加していれば成功のサインです。
構造化データのエラー件数
Search Consoleの「拡張機能」でエラー件数を定期的にモニタリングします。エラーが0件に近い状態を維持することが目標です。新しいページ追加時やコンテンツ更新後に特に注意します。
インデックス数の変化
Search Consoleの「カバレッジ」レポートでインデックス済みページ数を確認します。構造化データ実装によりクローラーがページ内容を正確に把握できると、インデックス率が改善することがあります。
AI検索からの流入数
Google Analytics 4の参照元レポートでChatGPT・Gemini・Perplexityからの流入が計測できる場合は、構造化データ実装前後で変化を追跡します。AIO効果の定量評価につながります。
対象キーワードでの検索順位
構造化データを実装したページが対象とするキーワードでの平均掲載順位をSearch Consoleで追跡します。構造化データ単体で順位が劇的に変わるわけではありませんが、中長期的なE-E-A-T向上との相乗効果を観測します。
Our Support
サイプレスの構造化データ実装支援
現状の構造化データ診断
Google Rich Results TestとSearch Consoleを使い、現在のサイトで実装済み・未実装・エラーのある構造化データを網羅的に洗い出します。優先度付きの改善リストをご提供します。
JSON-LD設計と実装
Organization・WebSite・BreadcrumbList・FAQPage・Article・LocalBusiness・Productなど、サイトの種類に応じた最適なJSON-LDを設計・実装します。Next.js・WordPress・カスタムCMSに対応します。
Rich Results Test・Search Console検証
実装後にGoogle Rich Results TestとSearch ConsoleのURL検査ツールで全タイプを検証します。エラーがある場合は原因を特定して修正し、リッチリザルトの表示要件を満たした状態でリリースします。
AIO(AI検索)向け構造化データ設計
ChatGPT・Gemini・Perplexityからの引用を意識したFAQPage・Article・Organizationの設計を行います。著者情報・E-E-A-T要素・引用しやすい文章構造との組み合わせで、AI検索への最適化を図ります。
継続的な監視と更新サポート
コンテンツ更新・ページ追加のたびに構造化データを最新の状態に保つ運用サポートを提供します。Search Consoleのエラー通知への対応も含みます。
FAQ
構造化データについてよくある質問
関連ページ
SEO対策とは
SEO全体の概要
内部SEO
メタデータ・ページ内最適化
テクニカルSEO
クロール・インデックス最適化
AIO対策
AI検索での引用可能性を高める
ローカルSEO
LocalBusiness構造化データ
サイト構造設計
BreadcrumbListの設計
Next.jsでのサイト制作
JSON-LDの実装方法
構造化データガイド
Schema.orgの使い方入門
SEOコラム
リッチリザルトの最新情報
SEO対策サービス
構造化データ実装込みのSEO支援
テクニカルSEOチェックリスト
構造化データの確認項目
SEO診断
構造化データエラーの確認
Search Console活用
リッチリザルトのエラー確認
コンテンツSEO
E-E-A-T対応の記事設計
モバイルSEO
モバイルでの構造化データ対応
ページ速度最適化
Core Web Vitals改善
AIO基礎ガイド
AI検索最適化の入門
Schema.org辞典
主要タイプの詳細解説
Web制作サービス
構造化データ込みのサイト制作
FAQ SEO対策
FAQPageマークアップで順位向上
E-E-A-T対策
権威性・信頼性の構造化
構造化データチェックリスト
実装後の確認リスト
パンくずSEO
BreadcrumbList設計と実装
リッチリザルト解説
各タイプの表示例と狙い方
