Skip to main content
LocalBusiness スキーマ JSON-LD 完全マークアップ:AI に引用されるために
Guides

LocalBusiness スキーマ JSON-LD 完全マークアップ:AI に引用されるために

AI に引用されるための LocalBusiness JSON-LD 完全マークアップ。geo、hasMap、areaServed、sameAs など、ほとんどのガイドが省略する位置情報フィールドまで網羅して解説します。

Brent van der Heiden17 min read
#json-ld#schema markup#local business schema#ai citations#structured data#schema.org

LocalBusiness スキーママークアップに関するほとんどのガイドは、基本的なフィールド(nameaddresstelephoneopeningHours)をカバーしています。ほとんどの実装はそこで止まります。そしてこれらのフィールドのみを実装しているビジネスの多くは、AI エンジンから依然として無視されています。スキーマが間違っているからではなく、AI の引用において特に重要な部分が不完全だからです。

AI エンジンがローカルクエリの解決に最も重みを置くフィールドは、位置情報に特化したものです: geohasMapareaServedsameAs。これらのフィールドにより、AI エンジンはビジネスを明確な地理的エンティティとして特定し、位置情報に関連するクエリと照合し、複数の権威あるソースでの存在を確認できます。このガイドでは、すべての位置情報フィールドを含む完全なコピー&ペースト用 JSON-LD 実装を、各フィールドが AI の可視性にどう貢献するかの解説とともに提供します。

位置情報フィールドが AI において特に重要な理由

従来の SEO 向けスキーマガイドでは、geo 座標はオプション扱いです。Google のリッチリザルトにおいては確かにオプションで、Google はアドレスからジオコーディングできます。しかし AI エンジンにとって、座標はまったく異なる役割を担っています: エンティティの曖昧性解消です。

「The Blue Door Café」というビジネスを例に考えてみましょう。ヨーロッパ中に、同名または類似した名前のビジネスが数十件存在する可能性があります。AI エンジンが「近くの美味しいカフェ」というクエリを受け取ったとき、正しいエンティティを特定する必要があります。住所の文字列は手がかりになりますが、表記のばらつきに弱いという問題があります。「123 High St」と「123 High Street」と「123 High St, 1st floor」は、同じ場所を指していても技術的には異なる文字列です。

ジオ座標は曖昧さがありません。"latitude": 52.3676, "longitude": 4.9041 は地球上の他のどの地点とも混同されません。スキーマに正確な座標が含まれており、それが Google ビジネスプロフィールのピンや Apple Maps の位置と一致している場合、AI エンジンはエンティティを確実に特定でき、引用の信頼度も高まります。

このエンティティ解決プロセスについては、Gemini がローカルビジネスを推薦する仕組みのガイドおよびローカルビジネスにとっての AEO とは何かという解説で詳しく説明しています。

LocalBusiness JSON-LD の完全実装

以下は、LocalBusiness 向けの完全でプロダクションレディな JSON-LD ブロックです。@type はビジネスの種類に応じて変更してください(適切なタイプの選び方については後のセクションを参照)。各フィールドにはその目的を注釈しています。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",

  "name": "Maison Durand",
  "alternateName": "Maison Durand Brasserie",
  "description": "Traditional French brasserie in central Lyon serving seasonal Lyonnais cuisine since 1984. Reservations available for groups.",

  "url": "https://www.maisondurand.fr",
  "telephone": "+33-4-72-00-00-00",
  "email": "contact@maisondurand.fr",

  "address": {
    "@type": "PostalAddress",
    "streetAddress": "14 Rue Mercière",
    "addressLocality": "Lyon",
    "addressRegion": "Auvergne-Rhône-Alpes",
    "postalCode": "69002",
    "addressCountry": "FR"
  },

  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 45.7640,
    "longitude": 4.8357
  },

  "hasMap": "https://maps.google.com/?q=45.7640,4.8357",

  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
      "opens": "12:00",
      "closes": "14:30"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
      "opens": "19:00",
      "closes": "22:30"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Friday", "Saturday"],
      "opens": "12:00",
      "closes": "23:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Sunday"],
      "opens": "12:00",
      "closes": "15:00"
    }
  ],

  "servesCuisine": ["French", "Lyonnais"],
  "priceRange": "€€",
  "menu": "https://www.maisondurand.fr/menu",
  "acceptsReservations": true,

  "areaServed": {
    "@type": "City",
    "name": "Lyon"
  },

  "image": [
    "https://www.maisondurand.fr/images/exterior.jpg",
    "https://www.maisondurand.fr/images/interior.jpg",
    "https://www.maisondurand.fr/images/menu-dish.jpg"
  ],

  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "284",
    "bestRating": "5",
    "worstRating": "1"
  },

  "sameAs": [
    "https://www.google.com/maps/place/Maison+Durand+Lyon",
    "https://www.facebook.com/MaisonDurandLyon",
    "https://www.tripadvisor.com/Restaurant_Review-maisondurand",
    "https://www.yelp.com/biz/maison-durand-lyon"
  ],

  "founder": {
    "@type": "Person",
    "name": "Pierre Durand"
  },

  "foundingDate": "1984",

  "currenciesAccepted": "EUR",
  "paymentAccepted": "Cash, Credit Card, Visa, Mastercard",

  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "Outdoor seating",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Wheelchair accessible",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Wi-Fi",
      "value": true
    }
  ]
}
</script>

[画像: ブラウザの開発者ツールで Elements パネルを開き、HTML の head セクションに LocalBusiness JSON-LD の script タグが展開された状態で表示されており、geo、sameAs、openingHoursSpecification フィールドがハイライトされている]

フィールド別解説: 重要な位置情報フィールド

geo (ジオ座標)

"geo": {
  "@type": "GeoCoordinates",
  "latitude": 45.7640,
  "longitude": 4.8357
}

役割: ビジネスの正確な地理的位置を、機械が読み取れる座標ペアとして提供します。AI エンジンはこの情報をエンティティの曖昧性解消と位置情報クエリの解決に使用します。

座標の取得方法: Google マップを開き、ビジネスの場所を右クリックして「この場所について」を選択します。画面下部に座標が表示されます。または、Google ビジネスプロフィールのピン位置の座標を GBP ダッシュボードから取得することもできます。

よくある間違い: 実際のビジネス所在地ではなく、大まかな座標(例: 市の中心座標)を使用すること。AI エンジンは複数のソース間で座標を照合するため、不正確な一致は信頼度を下げます。

hasMap (マップリンク)

"hasMap": "https://maps.google.com/?q=45.7640,4.8357"

役割: 地図サービス上のビジネス位置への直接リンクを提供します。これは確認シグナルとして機能し、AI エンジンやクローラーがこのリンクをたどってビジネスの地理的位置を確認できます。

ベストプラクティス: 場所名ベースの URL ではなく、座標ベースの Google マップ URL を使用してください。座標は曖昧さがないためです。また、MapAtlas や OpenStreetMap の位置を指す hasMap の値を追加で設定することで、裏付けを強化できます。

areaServed (サービスエリア)

"areaServed": {
  "@type": "City",
  "name": "Lyon"
}

配達やサービスの提供範囲がある場合は GeoCircle を使用します:

"areaServed": {
  "@type": "GeoCircle",
  "geoMidpoint": {
    "@type": "GeoCoordinates",
    "latitude": 45.7640,
    "longitude": 4.8357
  },
  "geoRadius": "15000"
}

役割: ビジネスがサービスを提供する地理的エリアを AI エンジンに伝えます。物理的な住所を超えたエリアをカバーするサービス業(配管工、クリーニング店、デリバリーサービスなど)にとって重要で、「近くの〇〇」クエリとのマッチングにも必要です。レストランであれば City を使用し、半径 15km をカバーするデリバリーサービスであれば GeoCircle にメートル単位の半径を指定します。

よくある間違い: areaServed を完全に省略すること。これがないと、AI エンジンはビジネスを正確な住所や地域を含むクエリとしか関連付けられず、実際にサービスを提供している広いエリアとのマッチングができません。

sameAs (権威あるプロフィールへのリンク)

"sameAs": [
  "https://www.google.com/maps/place/YOUR_PLACE_ID",
  "https://www.facebook.com/yourbusiness",
  "https://www.tripadvisor.com/Restaurant_Review-yourbusiness",
  "https://www.yelp.com/biz/your-business"
]

役割: 裏付けネットワークを構築します。スキーマから、権威ある外部プラットフォームに存在する同一エンティティへのリンクを張ります。AI エンジンはこれらのリンクをたどり、ウェブサイト上のエンティティが Google マップ、Facebook、TripAdvisor 上のエンティティと同一であることを確認します。裏付けとなるソースが増えるほど、引用の信頼度が高まります。

sameAs リンクの最低推奨数: Google ビジネスプロフィール、Facebook、業界関連のディレクトリ 1 件(飲食業なら TripAdvisor、医療なら Zocdoc、住宅サービスなら Houzz)。

よくある間違い: NAP 情報がウェブサイトと一致していないページへの sameAs リンクを含めること。sameAs のリンク先に不一致があると、裏付けどころか矛盾を生み出し、信頼度を下げます。

NAP の一貫性についての全体像は、AI 検索向け NAP 一貫性ガイドで詳しく解説しています。

適切な @type の選び方

LocalBusiness はベースタイプです。より具体的なサブタイプを使用することで、AI エンジンにより良いカテゴリシグナルを提供できます。よく使われるサブタイプは以下のとおりです:

ビジネスの種類@type の値
レストラン、カフェ、バーRestaurantCafeOrCoffeeShopBarOrPub
ホテル、民宿、ホステルHotelBedAndBreakfastHostel
医師、クリニックMedicalClinicPhysician
歯科医Dentist
ジム、フィットネスSportsActivityLocationHealthClub
弁護士LegalService
会計士AccountingService
小売店Store、またはより具体的に: ClothingStoreElectronicsStore
博物館、ギャラリーMuseum
観光スポットTouristAttraction
不動産会社RealEstateAgent

該当するタイプが見つからない場合は、schema.org/LocalBusiness で Schema.org の完全な型階層を確認してください。

JSON-LD をウェブサイトに追加する方法

<script type="application/ld+json"> ブロックは、ビジネスを表すすべてのページの <head> 要素内に配置します。最低でもホームページと連絡先/所在地ページには追加してください。

静的 HTML サイト: HTML ファイルの <head> に script タグを直接貼り付けます。

WordPress: Yoast SEO または RankMath プラグインを使用します(どちらも設定に LocalBusiness スキーマフィールドがあります)。またはヘッダーインジェクション用プラグインで生の JSON-LD を追加することもできます。

Next.js / React: next/head または App Router のメタデータ API を使って <head> 内に script タグを追加します:

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

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
      />
      {/* page content */}
    </>
  );
}

Shopify: theme.liquid ファイルの <head> セクションに追加するか、Shopify App Store のスキーママークアップアプリを利用します。

[画像: search.google.com/test/rich-results のスクリーンショット。LocalBusiness スキーマの検証結果として緑色の「有効なアイテムが検出されました」メッセージが表示され、name、address、geo、openingHoursSpecification、aggregateRating のフィールドが一覧表示されている]

実装の確認方法

JSON-LD を追加したら、以下の 2 つのツールで確認します。

1. Google リッチリザルトテスト (search.google.com/test/rich-results) ページ URL を入力するか、JSON-LD を直接貼り付けます。ツールは検出されたスキーマタイプを表示し、すべてのフィールドを検証し、エラーをフラグします。LocalBusiness として有効と判定されれば、Google がマークアップを正しく読み取れています。

2. Schema.org バリデーター (validator.schema.org) Google のツールより厳格です。リッチリザルトテストが見逃すことのある非推奨プロパティや型の不一致をフラグします。

3. MapAtlas AEO チェッカー (/ai-seo-checker) リッチリザルトテストではカバーされない AI 引用シグナル、具体的には位置情報フィールド、外部ソースとの NAP 一貫性、レビューの鮮度などを専門的に監査します。Google での検証後にこのツールを使って、AI 固有のレイヤーを確認してください。

AI の可視性を損なうよくある間違い

openingHoursSpecification の代わりに文章で営業時間を記載する: 「月〜金 9:00〜18:00、土 10:00〜16:00、日曜休業」は人間には読めますが、機械には読めません。AI エンジンはこの形式から時間帯クエリのフィルタリングを安定して行うことができません。

住所が完全だから geo を省略する: 住所は人間が理解するためのものです。ジオ座標は機械が解決するためのものです。両方が必要です。

sameAs のリンク先が一致していない: Facebook ページの電話番号がウェブサイトと異なる場合、その sameAs リンクは裏付けではなく矛盾を生み出します。リンクする前に、ソース側を修正してください。

aggregateRating の値が古い: 一部の実装ではレビュー数をハードコードしています。2023 年時点では正確だった "reviewCount": "47" という静的な値が現在は誤っている場合、データ品質シグナルとして AI の信頼度を下げます。動的な値を使用するか、最新の状態を維持できない場合はフィールドを省略してください。

1 ページに複数の JSON-LD ブロックがある: 1 つのページに複数のスキーマスクリプトがある場合、それらが矛盾しないように注意してください。一方のブロックが "telephone": "+33-4-72-00-00-00" と記載し、もう一方が "telephone": "+33 4 72 00 00 01" と記載していると、競合が発生します。

長期的な複利効果

JSON-LD スキーマは一度だけ実施する戦術ではありません。AI エンジンがウェブサイトをクロールするたびに、完全で一貫性があり正確なスキーマブロックを発見することで、エンティティの信頼スコアが少しずつ向上します。時間とともにこの積み重ねが自己強化的な引用プレゼンスを構築します。より多くの引用がより多くの訪問、レビュー、言及を生み出し、それがさらに AI エンジンが発見できる構造化シグナルを増やすという好循環です。

ローカルビジネス向け AEO 完全ガイドでは、ウェブサイトのスキーマだけでなく、AI 引用エンジンに影響するすべてのチャネルにわたってこの複利システムを構築する方法を解説しています。

まずは無料の MapAtlas AEO チェッカーで現在のスキーマ完成度スコアを確認し、その後 AI 検索可視性ソリューションを使って構造化データスタック全体の実装と監視を行ってください。上記の JSON-LD は基盤です。継続的に構築していくことで、エンジンのアップデートごとに AI 引用プレゼンスが成長していきます。

役に立ちましたか?シェアしてください。

著者について

Brent van der Heiden

著者

Brent van der Heiden

Co-Founder & CEO at MapAtlas

Brent built MapAtlas out of a conviction that developers deserve location APIs with fair pricing and genuine end-user privacy. He writes about geospatial infrastructure, AI search visibility, and how location data powers the products people rely on every day.

すべての記事を見る
ブログに戻る