株式会社サイプレスCypress

Structured Data

構造化データ実装

構造化データ(Schema.org・JSON-LD)とは、ページのコンテンツの意味を検索エンジンとAIに明確に伝えるマークアップです。リッチリザルトの獲得・AI検索での引用可能性向上・ローカルSEOへの貢献という3つの効果があります。

ChatGPT・Gemini・PerplexityなどのAI検索が普及する中、構造化データはSEOだけでなくAIO(AI検索最適化)の観点からも重要度が高まっています。コンテンツの意味を構造化し、機械読み取り可能な形式で提供することが、AI時代のWebサイトの基礎です。

構造化データ・JSON-LD・Schema.org実装のイメージ

What You Will Learn

このページでわかること

01

構造化データ(JSON-LD・Schema.org)の仕組みと、検索エンジン・AI検索への働き方

02

FAQPage・BreadcrumbList・Organization・Article・LocalBusiness など主要タイプの役割と使い分け

03

Next.jsのApp Routerで構造化データを実装する具体的な方法とファイル設計

04

Google Rich Results Testを使った実装後の検証手順とエラーの読み方

05

AI検索(ChatGPT・Gemini・Perplexity)で引用されやすくするためのAIO対策との関係

06

Search Consoleの「拡張機能」タブで構造化データのエラーを継続的に監視する方法

Common Issues

よくある課題と原因

構造化データの未実装・実装ミスは、リッチリザルトの機会損失だけでなく、AI検索での引用率低下にも直結します。以下は現場でよく見られる課題です。

01

構造化データをまったく実装していない

HTML・CSSは整っていても、JSON-LDが一行も書かれていないサイトは依然として多数あります。Google検索でのリッチリザルト獲得機会をすべて逃している状態です。

02

JSON-LDの記述に構文エラーがある

JSONのカンマ忘れ・括弧の対応ズレ・プロパティ名のスペルミスなどで構造化データが無効になっていることがあります。Rich Results Testで定期的に検証する習慣が必要です。

03

FAQページに FAQPageマークアップがない

質問と回答を並べたページはあるものの、FAQPageタイプの構造化データが未実装でリッチリザルトが出ていないケースが多くあります。FAQ形式のコンテンツを持つページは最優先で実装すべき項目です。

04

BreadcrumbListが全ページに入っていない

トップページだけに実装されていたり、一部のテンプレートにしか含まれていないケースがあります。パンくずリストの表示は全ページへの実装が前提です。

05

LocalBusiness情報が未設定または古い

地域ビジネスサイトでOrganizationのみ実装し、LocalBusinessタイプが未設定の場合があります。住所・電話番号・営業時間の構造化がないと、ローカル検索(Googleマップ)での評価強化につながりません。

06

AI検索(AIO)対策としての構造化データを認識していない

リッチリザルトのみを目的として実装しているため、ChatGPT・Gemini・Perplexityへの最適化という視点がありません。AIO向けには著者情報(author)・引用元(citation)・FAQPageを優先的に整備します。

07

ページに存在しないコンテンツをマークアップしている

Googleのスパムポリシーに違反する実装で、ペナルティの対象になります。ページ上に実際に表示されていない情報(存在しない口コミ・架空のFAQ)を構造化データに含めてはいけません。

08

Next.jsのlayout.tsxとpage.tsxの役割分担が曖昧

Organizationをlayoutとpageのどちらにも重複して実装したり、BreadcrumbListをlayoutに置いてページごとに変えられない設計になっているケースがあります。設計ルールを定めてから実装することが重要です。

09

Search Consoleのエラーを放置している

構造化データのエラーがSearch Consoleに蓄積しているにもかかわらず、「拡張機能」タブを確認していないサイトが多くあります。エラーを放置するとリッチリザルトが失効する場合があります。

10

更新されたコンテンツに構造化データが追従していない

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に伝える。検索結果でのパンくず表示。全ページ
FAQPageFAQ形式のコンテンツ。検索結果でのアコーディオンリッチリザルト。AI引用向上。FAQセクションがあるページ
Articleブログ記事・コラム。著者・公開日・更新日・見出し構造。ブログ・コラム記事
Serviceサービスの概要・価格帯・説明。サービスページに実装。サービス紹介ページ
Review / AggregateRating口コミ・評価スコア。星評価のリッチリザルト表示。口コミ掲載ページ

Type Reference

実装タイプ別の解説

各Schema.orgタイプは用途と実装すべきプロパティが異なります。それぞれの目的と書き方を理解してから実装することで、エラーのない正確な構造化データを構築できます。

01

Organization

組織情報

会社名(name)・公式URL(url)・ロゴ画像(logo)・住所(address)・電話番号(telephone)・SNSプロフィールURL(sameAs)を記述します。Googleのナレッジパネルに情報が表示されやすくなり、E-E-A-Tの権威性向上に貢献します。サイト全体のlayout.tsxに一度実装するのが標準的な設計です。

02

LocalBusiness

地域ビジネス

Organizationのサブタイプで、実店舗・地域ビジネスに使います。営業時間(openingHoursSpecification)・対応エリア(areaServed)・地理座標(geo)・価格帯(priceRange)を追加で記述します。RestaurantやBeautySalonなどの業種別サブタイプを使うとより精度が上がります。ローカルパックへの表示精度向上が主な目的です。

03

FAQPage

よくある質問

mainEntityプロパティにQuestion・Answerの配列を記述します。Questionにはname(質問文)、Answerにはtext(回答文)を入力します。Google検索結果でアコーディオン形式の拡張スニペットが表示される可能性があります。AI検索での引用率向上にも直接貢献するため、すべてのFAQセクションに実装を推奨します。

04

BreadcrumbList

パンくずリスト

itemListElementにListItemの配列を記述し、各要素にposition(順番の数値)・name(表示名)・item(絶対URL)を入力します。ページの階層が深いほど効果的です。検索結果のURLをパンくず形式で表示するリッチリザルトにつながり、ユーザーがサイト構造を把握しやすくなります。全ページのpage.tsxに実装します。

05

Article / BlogPosting

記事・ブログ投稿

見出し(headline)・著者(author)・公開日(datePublished)・更新日(dateModified)・画像(image)・説明(description)を記述します。著者をPersonタイプでネストし、名前・プロフィールURLを含めることでAI検索向けE-E-A-T(経験・専門性・権威性・信頼性)の強化につながります。ブログ記事ページのpage.tsxに個別実装します。

06

Product

商品・サービス製品

商品名(name)・説明(description)・画像(image)・価格(offers内のprice・priceCurrency)・ブランド(brand)を記述します。AggregateRatingと組み合わせることで、検索結果に星評価(評価スコアとレビュー件数)を表示させることができます。ECサイトだけでなく、SaaSや有形商品を扱うBtoBサービスにも有効です。

07

Review / AggregateRating

口コミ・評価

ratingValue(平均評価スコア)・reviewCount(レビュー件数)・ratingCount(評価件数)を記述します。Product・LocalBusiness・Articleなど他のタイプに組み合わせて使います。ページ上に実際の口コミ・評価データが存在することが前提で、架空のデータを使うとGoogleのスパムポリシー違反になります。

08

WebSite

サイト全体

サイト名(name)・URL(url)に加え、SearchActionをpotentialActionに記述することでサイト内検索機能をGoogleに伝えることができます。検索ボックスのリッチリザルト(サイトリンク検索ボックス)につながる可能性があります。layout.tsxに一度実装し、全ページで共有します。

09

Service

サービスページ

サービス名(name)・説明(description)・提供者(provider)・エリア(areaServed)・価格情報(offers)を記述します。明確なサービスページを持つBtoBサービスサイトで活用します。検索エンジンがサービスの内容を正確に把握することで、関連キーワードでのインデックス精度が向上します。

10

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タグ数を抑えられます。

app/services/seo/page.tsx
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

構造化データ実装フロー

いきなりコードを書くのではなく、サイトのページ構成と実装すべきタイプを整理してから着手することで、漏れや重複のない構造化データ設計ができます。

01

サイトのページ構成を棚卸しする

トップページ・サービスページ・ブログ・会社概要・コンタクトなど、すべてのページタイプをリストアップします。各ページにどのSchema.orgタイプが該当するかをマッピングします。

02

優先順位を決める

効果の高い順(FAQPage → BreadcrumbList → Organization → LocalBusiness → Article)で実装優先度を設定します。トラフィックの多いページから着手するのが基本方針です。

03

layout.tsxにOrganization・WebSiteを実装する

サイト全体で共通のスキーマをルートレイアウトに配置します。会社情報・ロゴ・SNSリンク・サイト名・SearchActionを記述します。

04

各ページのpage.tsxにBreadcrumbListを実装する

全ページに対してそのページの階層構造を反映したBreadcrumbListを実装します。ページ深度に応じてListItemの数を調整します。

05

FAQセクションを持つページにFAQPageを実装する

FAQを掲載しているすべてのページを対象に、mainEntityにQuestion・Answerを記述します。Q&AはページのHTMLに実際に表示されている内容と一致させます。

06

ブログ・コラムページにArticleを実装する

記事ごとにheadline・author・datePublished・dateModified・imageを記述します。著者はPersonタイプでネストし、プロフィールURLも含めます。

07

Google Rich Results Testで全タイプを検証する

実装したすべてのページタイプをRich Results Testで確認し、エラーがないことを確認します。エラーがあれば原因を特定して修正します。

08

Search ConsoleでURLをインスペクションしてインデックスリクエストを送る

Search ConsoleのURL検査ツールで実装ページのURLを入力し、「インデックス登録をリクエスト」を実行します。Googleのクロールを促進します。

09

Search Consoleの「拡張機能」で定期監視を設定する

Search Consoleの「拡張機能」セクションを定期的に確認し、構造化データのエラー・警告が蓄積していないかをチェックします。コンテンツ更新のたびに確認します。

10

コンテンツ更新フローに構造化データの更新チェックを組み込む

FAQの変更・営業時間の変更・記事の更新時に構造化データも連動して更新する運用ルールを設けます。JSON-LDとHTMLコンテンツの整合性を常に保ちます。

KPIs

成果を見るための指標

構造化データの実装効果はリッチリザルトの表示確認だけでなく、Search Consoleのデータを通じて定量的に追跡できます。以下のKPIを定点観測します。

01

クリック率(CTR)の変化

Search Consoleの「検索パフォーマンス」レポートで、リッチリザルトが表示されるようになったページのCTRを構造化データ実装前後で比較します。FAQPageのリッチリザルトが出ると、CTRが向上するケースがあります。

02

リッチリザルトの表示件数

Search Consoleの「拡張機能」セクションで、FAQリッチリザルト・パンくずリスト表示の件数推移を確認します。実装から数週間後に数字が増加していれば成功のサインです。

03

構造化データのエラー件数

Search Consoleの「拡張機能」でエラー件数を定期的にモニタリングします。エラーが0件に近い状態を維持することが目標です。新しいページ追加時やコンテンツ更新後に特に注意します。

04

インデックス数の変化

Search Consoleの「カバレッジ」レポートでインデックス済みページ数を確認します。構造化データ実装によりクローラーがページ内容を正確に把握できると、インデックス率が改善することがあります。

05

AI検索からの流入数

Google Analytics 4の参照元レポートでChatGPT・Gemini・Perplexityからの流入が計測できる場合は、構造化データ実装前後で変化を追跡します。AIO効果の定量評価につながります。

06

対象キーワードでの検索順位

構造化データを実装したページが対象とするキーワードでの平均掲載順位をSearch Consoleで追跡します。構造化データ単体で順位が劇的に変わるわけではありませんが、中長期的なE-E-A-T向上との相乗効果を観測します。

Our Support

サイプレスの構造化データ実装支援

01

現状の構造化データ診断

Google Rich Results TestとSearch Consoleを使い、現在のサイトで実装済み・未実装・エラーのある構造化データを網羅的に洗い出します。優先度付きの改善リストをご提供します。

02

JSON-LD設計と実装

Organization・WebSite・BreadcrumbList・FAQPage・Article・LocalBusiness・Productなど、サイトの種類に応じた最適なJSON-LDを設計・実装します。Next.js・WordPress・カスタムCMSに対応します。

03

Rich Results Test・Search Console検証

実装後にGoogle Rich Results TestとSearch ConsoleのURL検査ツールで全タイプを検証します。エラーがある場合は原因を特定して修正し、リッチリザルトの表示要件を満たした状態でリリースします。

04

AIO(AI検索)向け構造化データ設計

ChatGPT・Gemini・Perplexityからの引用を意識したFAQPage・Article・Organizationの設計を行います。著者情報・E-E-A-T要素・引用しやすい文章構造との組み合わせで、AI検索への最適化を図ります。

05

継続的な監視と更新サポート

コンテンツ更新・ページ追加のたびに構造化データを最新の状態に保つ運用サポートを提供します。Search Consoleのエラー通知への対応も含みます。

FAQ

構造化データについてよくある質問

Contact

構造化データ実装のご相談

JSON-LD・Schema.orgの実装からリッチリザルト獲得・AI検索対策まで対応します。

お問い合わせ