AsamiWorksAI検索最適化サイト制作
LLMO

構造化データの実装方法|AI検索に強いサイトを作る完全ガイド

Schema.org構造化データの実装方法を初心者向けに徹底解説。Organization、LocalBusiness、FAQPage、Articleなど主要タイプの実装例とテスト方法を紹介します。

#構造化データ#Schema.org#JSON-LD#LLMO#SEO#技術解説

構造化データとは

構造化データ(Structured Data)は、Webページの情報を検索エンジンやAIが理解しやすい形式で記述する仕組みです。

通常のHTML:

<p>営業時間:9:00〜18:00</p>

構造化データ:

{
  "@type": "LocalBusiness",
  "openingHours": "Mo-Fr 09:00-18:00"
}

構造化データを使うことで、Google、ChatGPT、Perplexityなどが「この情報は営業時間だ」と正確に理解できます。

構造化データのメリット

1. AI検索での引用率向上

ChatGPTやPerplexityは構造化データを優先的に読み取り、回答に引用します。実装サイトは未実装サイトの3.8倍引用されやすいというデータがあります。

2. Google検索でのリッチリザルト表示

構造化データを実装すると、検索結果に以下が表示される可能性があります:

  • FAQリッチリザルト:Q&Aが検索結果に直接表示
  • パンくずリスト:階層構造が見やすく表示
  • 評価スター:レビュー評価が★で表示
  • イベント情報:日時、場所が強調表示
  • 商品情報:価格、在庫状況が表示

3. 音声検索・スマートスピーカー対応

Alexa、Google Assistantなどが、構造化データから情報を読み上げます。

主要な構造化データタイプ

1. Organization(組織情報)

用途: 会社概要、ロゴ、連絡先などの基本情報

実装場所: トップページ、会社概要ページ

実装例:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "AsamiWorks",
  "url": "https://asami-works.com",
  "logo": "https://asami-works.com/logo.png",
  "description": "茨城・千葉を中心にホームページ制作・Webアプリ開発を手がける制作会社",
  "foundingDate": "2018",
  "address": {
    "@type": "PostalAddress",
    "addressRegion": "茨城県",
    "addressLocality": "水戸市",
    "postalCode": "310-0000",
    "streetAddress": "○○町1-2-3"
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+81-29-XXX-XXXX",
    "contactType": "customer service",
    "email": "info@asami-works.com",
    "availableLanguage": ["Japanese"]
  },
  "sameAs": [
    "https://twitter.com/asamiworks",
    "https://www.facebook.com/asamiworks"
  ]
}
</script>

2. LocalBusiness(地域ビジネス情報)

用途: 店舗、事務所の営業時間、住所、サービスエリア

実装場所: トップページ、アクセスページ

実装例:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "AsamiWorks",
  "image": "https://asami-works.com/office.jpg",
  "priceRange": "¥¥",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "○○町1-2-3",
    "addressLocality": "水戸市",
    "addressRegion": "茨城県",
    "postalCode": "310-0000",
    "addressCountry": "JP"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 36.3656,
    "longitude": 140.4717
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "18:00"
    }
  ],
  "telephone": "+81-29-XXX-XXXX",
  "areaServed": [
    {
      "@type": "City",
      "name": "水戸市"
    },
    {
      "@type": "City",
      "name": "つくば市"
    },
    {
      "@type": "State",
      "name": "茨城県"
    },
    {
      "@type": "State",
      "name": "千葉県"
    }
  ]
}
</script>

3. FAQPage(よくある質問)

用途: Q&A、よくある質問ページ

実装場所: FAQページ、サービス説明ページ

実装例:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "ホームページ制作の費用は?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "小規模サイト(5〜10ページ)で30〜50万円、中規模サイト(20〜30ページ)で80〜150万円が相場です。補助金活用で実質負担を3分の1に削減できます。"
      }
    },
    {
      "@type": "Question",
      "name": "制作期間はどれくらい?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "通常2〜3ヶ月です。5ページ程度なら1〜1.5ヶ月、30ページ以上は3〜6ヶ月が目安です。"
      }
    },
    {
      "@type": "Question",
      "name": "スマホ対応は含まれますか?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "はい、すべてのプランでレスポンシブデザイン(スマホ・タブレット対応)が標準含まれます。追加費用は不要です。"
      }
    }
  ]
}
</script>

4. Article / BlogPosting(記事情報)

用途: ブログ記事、ニュース記事

実装場所: 各ブログ記事ページ

実装例:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "AI検索最適化(LLMO)の完全ガイド",
  "description": "ChatGPT、Perplexityで上位表示されるWebサイトの作り方を解説",
  "image": "https://asami-works.com/blog/llmo-guide.jpg",
  "datePublished": "2025-12-01",
  "dateModified": "2025-12-01",
  "author": {
    "@type": "Person",
    "name": "山田太郎",
    "jobTitle": "Webディレクター",
    "url": "https://asami-works.com/about"
  },
  "publisher": {
    "@type": "Organization",
    "name": "AsamiWorks",
    "logo": {
      "@type": "ImageObject",
      "url": "https://asami-works.com/logo.png"
    }
  },
  "articleBody": "記事本文のテキスト全文...",
  "keywords": ["LLMO", "AI検索", "ChatGPT", "Perplexity"]
}
</script>

5. Service(サービス情報)

用途: 提供サービスの詳細

実装場所: サービス紹介ページ

実装例:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "ホームページ制作",
  "provider": {
    "@type": "Organization",
    "name": "AsamiWorks"
  },
  "areaServed": {
    "@type": "State",
    "name": "茨城県"
  },
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "ホームページ制作プラン",
    "itemListElement": [
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "パッケージプラン・ライト"
        },
        "price": "300000",
        "priceCurrency": "JPY"
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "パッケージプラン・スタンダード"
        },
        "price": "500000",
        "priceCurrency": "JPY"
      }
    ]
  }
}
</script>

6. BreadcrumbList(パンくずリスト)

用途: サイト階層構造の明示

実装場所: 全ページ

実装例:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "ホーム",
      "item": "https://asami-works.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "サービス",
      "item": "https://asami-works.com/services"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "ホームページ制作",
      "item": "https://asami-works.com/services/package"
    }
  ]
}
</script>

構造化データの実装手順

ステップ1: どのタイプを実装するか決める

ページの種類に応じて、必要な構造化データを選びます:

ページ種類 推奨構造化データ
トップページ Organization, LocalBusiness, WebSite
会社概要 Organization, Person(代表者)
サービスページ Service, FAQPage, BreadcrumbList
ブログ記事 BlogPosting, BreadcrumbList
FAQページ FAQPage
お問い合わせ ContactPage

ステップ2: JSON-LD形式で記述

Schema.orgの構造化データは、以下の3形式で記述できます:

  • JSON-LD(推奨):scriptタグ内にJSON形式で記述
  • Microdata:HTMLタグに属性を追加
  • RDFa:HTMLタグに属性を追加

Googleも推奨するJSON-LD形式を使いましょう。HTMLと分離できるため、実装・管理が簡単です。

ステップ3: HTMLの<head>または<body>末尾に追加

Next.jsの場合:

export default function Page() {
  const structuredData = {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    // ...
  };

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
      />
      <main>...</main>
    </>
  );
}

ステップ4: テストツールで検証

以下のツールで、構造化データが正しく実装されているか確認:

  • Googleリッチリザルトテスト:https://search.google.com/test/rich-results
  • Schema Markup Validator:https://validator.schema.org/
  • Google Search Console:拡張 → 構造化データ

よくあるエラーと対処法

エラー1: 必須プロパティが不足

エラー内容: "Missing field 'name'"など

対処法: 各タイプの必須プロパティを確認し、すべて記述する

エラー2: 日付形式が不正

エラー内容: "Invalid date format"

対処法: ISO 8601形式(YYYY-MM-DD または YYYY-MM-DDThh:mm:ss)で記述

// ❌ 誤り
"datePublished": "2025/12/01"

// ⭕ 正しい
"datePublished": "2025-12-01"

エラー3: URL形式が不正

エラー内容: "Invalid URL"

対処法: 絶対URL(https://から始まる完全なURL)を使用

// ❌ 誤り
"url": "/about"

// ⭕ 正しい
"url": "https://asami-works.com/about"

まとめ:構造化データで AI検索に強いサイトを

構造化データの実装は、AI検索時代のWebサイトに必須です:

  1. ページ種類に応じた構造化データタイプを選択
  2. JSON-LD形式で記述(Googleも推奨)
  3. 必須プロパティをすべて記述
  4. テストツールで検証・エラー修正
  5. 定期的に更新して最新情報を保つ

AsamiWorksでは、すべての制作サイトに構造化データを標準実装しています。既存サイトへの追加実装も対応可能。補助金活用で費用を最大66.7%削減できます。まずは無料相談で構造化データ診断を受けてみませんか?

執筆者

AsamiWorks