AI検索(GEO)対策

構造化データでAIに正しく伝える|店舗情報のマークアップ入門

公開: 2026年7月21日8分で読めます
🧩
AI検索(GEO)対策

「サイトに営業時間も住所も書いてあるのに、AIやGoogleが古い情報を表示する」——原因の多くは、情報が人間向けにしか書かれていないことです。この記事では、機械が誤解しない形で店舗情報を伝える**構造化データ(JSON-LD)**の書き方を、コピーして使える実例つきで解説します。

構造化データとは

構造化データは、ページの内容を機械が読める形式で併記する仕組みです。人間には「〒860-0000 熊本県熊本市…」と見えている文字列を、「これは住所です」「これは郵便番号です」と明示的にラベル付けします。

書き方は複数ありますが、2026年7月時点でGoogleが推奨し、実務でも主流なのが JSON-LD です。HTMLの見た目を変えずに、head内かbody内にひとかたまり追加するだけで済むため、既存サイトに後から入れやすいのが利点です。

GEO/MEOで効く理由

  • Googleがリッチリザルト(営業時間・評価・FAQの展開表示)を出す判断材料になる
  • AI検索が情報を抽出するときの曖昧さが減る。本文からの推測ではなく、明示された値を読める
  • サイトとGoogleビジネスプロフィールの情報が一致していることを示せる

ただし、構造化データを入れれば順位が上がる/必ず引用されるというものではありません。あくまで「正しく伝わる確率を上げる」施策です。中身が実際のページ内容と食い違っていると、無視されるかペナルティの対象になります。

実例1:LocalBusiness(店舗・事業所)

まずは基本形です。下のJSONを自社の情報に置き換えて、script要素(type属性に application/ld+json を指定)で囲み、トップページのhead内に設置します。

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "つなぐ整体院 熊本本店",
  "image": "https://example.com/img/shop.jpg",
  "url": "https://example.com/",
  "telephone": "+81-96-000-0000",
  "priceRange": "3000円〜8000円",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "中央区水前寺1-2-3 つなぐビル2F",
    "addressLocality": "熊本市",
    "addressRegion": "熊本県",
    "postalCode": "860-0000",
    "addressCountry": "JP"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 32.789,
    "longitude": 130.741
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Thursday", "Friday"],
      "opens": "10:00",
      "closes": "19:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday", "Sunday"],
      "opens": "10:00",
      "closes": "17:00"
    }
  ],
  "sameAs": [
    "https://www.instagram.com/example/",
    "https://maps.app.goo.gl/example"
  ]
}

書くときのポイント

  • **@type は実態に近いものを選ぶ。**Restaurant、BeautySalon、Dentist、HealthAndBeautyBusiness など、LocalBusinessの下位タイプが多数あります。該当するものがあればそちらを使うほうが情報量が増えます
  • **telephone は国番号つき(+81)**で書くと誤読が減ります
  • **sameAs に公式SNSとGoogleマップのURLを入れる。**同一事業者であることの手がかりになります
  • 住所と営業時間は、Googleビジネスプロフィールと1文字も違わない値にする。ここがズレていると、構造化データを入れた意味が薄れます
  • 定休日は書かない(記載のない曜日が休みと解釈されます)。臨時休業は別途 specialOpeningHoursSpecification で扱います

実例2:FAQPage(よくある質問)

FAQは、AI検索にとって最も引用しやすい形式です。ページ上に実際に表示されているQ&Aとまったく同じ内容を記述します(画面に無いQ&Aを書くのは違反です)。

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "予約なしでも施術を受けられますか?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "当日空きがあればご案内できますが、混雑するため予約をおすすめします。予約は電話またはWebから24時間受け付けています。"
      }
    },
    {
      "@type": "Question",
      "name": "駐車場はありますか?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "建物裏に専用駐車場を3台分ご用意しています。満車の場合は近隣のコインパーキング代を当院が負担します。"
      }
    },
    {
      "@type": "Question",
      "name": "支払い方法は何が使えますか?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "現金、クレジットカード(VISA・Mastercard・JCB)、PayPay、交通系ICカードに対応しています。"
      }
    }
  ]
}

回答文の書き方

  • 1問あたり2〜4文。長すぎると引用時に切られ、短すぎると情報が足りません
  • 数字・条件・例外を含める(「3台分」「満車の場合は」)
  • HTMLタグは基本的に入れない。テキストで完結させる
  • 「詳しくはこちら」で終わらせない。その場で答えを完結させるのがAI引用の条件です

他に入れておきたいスキーマ

スキーマ 使いどころ
Organization 会社概要ページ。法人名・ロゴ・SNS
Service / Offer サービスごとの内容と価格
Product 物販がある場合の商品情報
BreadcrumbList パンくずリスト。サイト構造を伝える
Article ブログ記事。著者・公開日・更新日
Review / AggregateRating 評価。自社サイト上の自作評価は不可。第三者評価の扱いに注意

AggregateRating は誤用が多い項目です。自分で自分に星をつけた構造化データはガイドライン違反になります。口コミ評価はGoogleビジネスプロフィール側で蓄積させるのが正道です。

設置と検証の手順

  1. JSONを作る。カンマ抜け・全角記号の混入がよくあるミスなので、JSONの構文チェックツールを一度通す
  2. script要素(type属性は application/ld+json)で囲み、head内に設置する。WordPressならテーマのheader部分かプラグインで
  3. Googleの「リッチリザルトテスト」でURLを検証。エラーと警告を確認する
  4. Search Consoleの「拡張」レポートで、数日後にエラーが出ていないか確認する
  5. ページ内容を変更したら、構造化データも必ず同時に更新する

よくあるエラーと対処

  • required項目が不足(nameやaddressなど)→ 警告のうちは動きますが、埋めたほうが確実です
  • ページに存在しない内容を記述 → 最も重いミス。FAQを構造化データにだけ書くのはNG
  • 同じページに矛盾する複数のスキーマ → 営業時間が2か所で違うなど。1つに統一する
  • 日本語の全角スペース・全角引用符 → JSONが壊れます。半角で書く
  • JavaScriptで後から挿入していて読まれない → できればサーバー側で出力する

更新の運用が本丸

構造化データは、作るより最新に保ち続けるほうが難しい施策です。営業時間を変えたのにJSONだけ古いまま、という状態は珍しくありません。そして古い値を機械が読むと、AI検索やマップで誤った情報が案内されます。

サーチたすは、店舗情報の構造化を管理画面から行い、AI想定問答(FAQ)の作成、AI引用モニタリング、Googleビジネスプロフィール運用、口コミ獲得・AI自動返信までを一元管理できるツールです。サイトとマップの情報を別々に管理して食い違う、という一番ありがちな事故を防げます。月額5,500円(税込)〜、初期費用0円、14日間の無料トライアルあり。

まとめ

  • 構造化データはJSON-LDで書く。見た目を変えず後付けできる
  • LocalBusinessで住所・電話・営業時間を明示。値はGBPと完全一致させる
  • FAQPageは引用されやすい。回答は2〜4文で完結させる
  • 自作のAggregateRatingは違反。評価は第三者側で貯める
  • リッチリザルトテストとSearch Consoleで検証し、更新を運用に組み込む

まずはトップページにLocalBusinessを1つ入れて、リッチリザルトテストを通すところから始めてください。

関連記事