「サイトに営業時間も住所も書いてあるのに、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ビジネスプロフィール側で蓄積させるのが正道です。
設置と検証の手順
- JSONを作る。カンマ抜け・全角記号の混入がよくあるミスなので、JSONの構文チェックツールを一度通す
- script要素(type属性は application/ld+json)で囲み、head内に設置する。WordPressならテーマのheader部分かプラグインで
- Googleの「リッチリザルトテスト」でURLを検証。エラーと警告を確認する
- Search Consoleの「拡張」レポートで、数日後にエラーが出ていないか確認する
- ページ内容を変更したら、構造化データも必ず同時に更新する
よくあるエラーと対処
- 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つ入れて、リッチリザルトテストを通すところから始めてください。