← ブログ一覧

飲食サービスのための AI エージェント対応ガイド

飲食店・カフェ・チェーン外食企業の Web サイトを AI エージェントから見つけてもらえる状態にするための実装。LocalBusiness / Restaurant / Menu スキーマ、複数店舗 (チェーン) 構造、営業時間、アレルゲン情報まで具体的に解説します。

·2·YomuScore 編集部

「渋谷駅近くで今空いてるイタリアン」「ヴィーガン対応のカフェ、麻布十番」「子連れ歓迎の和食、平日ランチで個室あり」 — 飲食店を探すクエリは、Google Maps と並んで AI チャットに投げられる頻度がここ 1〜2 年で目に見えて増えてきた。

ユーザーが AI に投げる質問は「今、この場所で、この条件」という極めて具体的なものになりがちで、時間制約 (今すぐ / 1 時間後)、場所制約 (現在地から徒歩 5 分)、人数や個室の有無、アレルゲン、子連れ、喫煙、予算、といった複数条件を同時に満たす店を探している。これらの条件を構造化データで明示しているサイトだけが、AI から「この店、条件にあいますよ」と推奨される。情報が画像や PDF や「お電話でお問い合わせください」だけだと、AI は推奨を出せない。

本記事では飲食サービス事業者 (個店から大手チェーン外食まで) の Web サイトを、AI から条件にあう店として正確に推奨されるための実装に整理する。

店舗詳細ページ

ここが一番大事なページ。AI が「この店は条件に合うか」を一発で判定できるようにするための実装が集まる場所だ。

最重要なのが Restaurant の JSON-LD で、これを「完全形」で書くこと。営業時間は配列で、ランチとディナーと週末を分けて表現する。amenityFeature で個室、子連れ、Wi-Fi、車椅子の有無を構造化する。priceRange¥¥ 形式か金額レンジで明示する。geo で緯度経度を明示しておくと、AI が「現在地から徒歩 5 分」を判定できるようになる。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "トラットリア・サンプル 麻布十番店",
  "image": "https://example-restaurant.example/img/azabu-juban.jpg",
  "url": "https://example-restaurant.example/azabu-juban",
  "telephone": "+81-3-1234-5678",
  "priceRange": "¥¥ (¥2,000-4,000)",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "麻布十番 1-2-3 〇〇ビル B1F",
    "addressLocality": "港区",
    "addressRegion": "東京都",
    "postalCode": "106-0045",
    "addressCountry": "JP"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 35.6549,
    "longitude": 139.7363
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "11:30",
      "closes": "14:30",
      "name": "ランチ"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "17:30",
      "closes": "23:00",
      "name": "ディナー"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday", "Sunday"],
      "opens": "11:30",
      "closes": "23:00"
    }
  ],
  "servesCuisine": "イタリアン",
  "acceptsReservations": true,
  "menu": "https://example-restaurant.example/azabu-juban/menu",
  "paymentAccepted": "現金, クレジットカード (VISA, Mastercard, JCB, AMEX), 電子マネー (Suica, PayPay)",
  "hasMap": "https://maps.google.com/?q=...",
  "smokingAllowed": false,
  "amenityFeature": [
    { "@type": "LocationFeatureSpecification", "name": "個室", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "子連れ歓迎", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Wi-Fi", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "車椅子対応", "value": true }
  ]
}
</script>

JSON-LD だけでなく、同じ情報を本文 HTML にも目視可能なテキストで書いておく。<dl> (定義リスト) を使うと AI が「項目 → 値」の関係を素直に取れる。

<dl class="store-info">
  <dt>住所</dt><dd>東京都港区麻布十番 1-2-3 〇〇ビル B1F</dd>
  <dt>電話</dt><dd>03-1234-5678</dd>
  <dt>営業時間</dt>
  <dd>
    平日: 11:30-14:30 (ランチ) / 17:30-23:00 (ディナー)<br>
    土日: 11:30-23:00 (通し営業)
  </dd>
  <dt>定休日</dt><dd>なし (年末年始のみ)</dd>
  <dt>席数</dt><dd>カウンター 6 席 / テーブル 20 席 / 個室 8 席 (1 部屋)</dd>
  <dt>予算</dt><dd>ランチ 1,500-2,500 円 / ディナー 4,000-7,000 円</dd>
</dl>

メニューページ

AI が「ヴィーガン対応の前菜ある?」「予算 5,000 円のコース?」のような質問に答えられるようにする。Menu の JSON-LD で構造化するのが基本。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Menu",
  "name": "ディナーメニュー",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "name": "前菜 (Antipasti)",
      "hasMenuItem": [
        {
          "@type": "MenuItem",
          "name": "サルシッチャと白いんげん豆の煮込み",
          "description": "自家製サルシッチャと白いんげん豆をトマトベースで煮込んだ伝統料理",
          "offers": { "@type": "Offer", "price": "1,200", "priceCurrency": "JPY" },
          "suitableForDiet": "https://schema.org/GlutenFreeDiet"
        },
        {
          "@type": "MenuItem",
          "name": "季節野菜のグリル",
          "description": "有機栽培の旬野菜を炭火で焼き上げ、エキストラバージンオリーブオイルで仕上げ",
          "offers": { "@type": "Offer", "price": "1,400", "priceCurrency": "JPY" },
          "suitableForDiet": "https://schema.org/VeganDiet"
        }
      ]
    },
    {
      "@type": "MenuSection",
      "name": "コース",
      "hasMenuItem": [
        {
          "@type": "MenuItem",
          "name": "シェフおまかせコース (5 品)",
          "description": "前菜 / パスタ / 魚または肉 / デザート / コーヒー",
          "offers": { "@type": "Offer", "price": "5,500", "priceCurrency": "JPY" }
        }
      ]
    }
  ]
}
</script>

ここで強力に効くのが suitableForDiet フィールドだ。アレルゲンや食事制限に対応するための enum 値が Schema.org で定義されていて、VeganDietVegetarianDietGlutenFreeDietHalalDietKosherDietLowLactoseDiet のような値を入れられる。AI に「ヴィーガン対応のメニュー教えて」と聞かれた時、この情報があるかないかで結果が大きく変わる。

特定原材料 7 品目と推奨 21 品目については、本文にもテキストで書いておく。

<p class="allergen">
  原材料: 小麦、卵、乳、大豆、落花生、(店舗確認: えび、かに)
</p>

アクセスページ

AI に「最寄り駅から徒歩何分?」「駐車場ある?」と聞かれた時に答えられるようにする。最寄り駅と徒歩分数は本文に必ず書く。駐車場の有無、提携駐車場の情報、駐車割引の条件もテキストで。Google Maps の iframe 埋め込みと、緯度経度の JSON-LD はセットで入れておく。

チェーン店の構造

チェーン外食の場合、本社サイトの作りも重要になる。「〇〇チェーンの店舗一覧」「△△駅近くの 〇〇 はある?」のような質問に答えるための構造を作る。

本社サイトに Organization を置いて、subOrganization で全店舗の Restaurant を参照する形が基本。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "サンプル飲食グループ",
  "url": "https://example-group.example/",
  "subOrganization": [
    { "@type": "Restaurant", "name": "サンプル 渋谷店", "url": "https://example-group.example/shibuya" },
    { "@type": "Restaurant", "name": "サンプル 新宿店", "url": "https://example-group.example/shinjuku" },
    { "@type": "Restaurant", "name": "サンプル 池袋店", "url": "https://example-group.example/ikebukuro" }
  ]
}
</script>

店舗一覧ページはテーブル形式で全店舗の住所、営業時間、電話を 1 画面に並べる。地域別 / 業態別の絞り込みがあると AI も人間も使いやすい。各店舗の URL は /stores/shibuya のように独立した URL にする (動的な query string にしない)。

予約ページ

AI に「予約できる?」と聞かれた時に「こちらから可能です」と URL を返せるようにする。Restaurant.acceptsReservations を true / false で明示することと、予約フォームへのリンクを店舗詳細ページから明示しておくこと。電話予約のみの店舗でも、電話番号を tel: リンクで書いておけば AI が拾える。TableCheck や OMAKASE のような予約システムを使っているなら、その URL もリンクとして載せておく。

季節限定メニュー

「今のシーズンの限定メニューは?」のような質問に答えるためのページ。Article の JSON-LD で datePublisheddateModified を明示する。終了日 (endDate) も入れておくと、AI が「今もやってる?」を判定できる。

Google Maps / 食べログとの整合性

これは見落とされがちだが意外と重要なポイントで、AI は複数の情報源 (公式サイト / Google Maps / 食べログ / Hot Pepper) を交差参照して判断する。情報が矛盾しているサイトは AI から低信頼と判定されて、推奨から外れる傾向がある。

月 1 でチェックすべき項目は次のあたり。営業時間 (公式 vs Google Maps vs 食べログ) が一致しているか。電話番号は現役の番号か、移転後も古い番号が残っていないか。住所のビル名と階数まで揃っているか。定休日が最新か (祝日対応も)。価格帯の表現が揃っているか (公式は ¥¥、食べログは「2,000-4,000 円」など、同じ価格を別表現で書いていないか)。

特に営業時間が一番ズレやすいので、ここを起点に他媒体もチェックすると効率がいい。

YomuScore のチェック項目との対応

飲食業で特に重要なチェック項目を整理しておく。

YomuScore check 飲食業での重要度
P10 / P11 (JSON-LD) Restaurant / Menu / LocalBusiness を全店舗・全メニューで
P6 (meta description) 「〇〇駅徒歩 5 分、本格イタリアン、個室・子連れ歓迎」のような具体的な内容
S1 (llms.txt) 「店舗一覧」「メニュー」「予約方法」「アクセス」を主要セクションで
P12 (見出し構造) 各店舗ページ内のセクション (アクセス / メニュー / 個室 / 予約) を h2 で
多言語 (hreflang) インバウンド対応している店舗は EN / ZH 版を

インバウンド対応をしている店舗は、英語と中国語 (繁体字 / 簡体字) 版を hreflang で整備しておくと、海外旅行者が「Tokyo halal restaurant」のような質問を AI に投げた時に拾われやすくなる。


関連リンク

飲食業種別ガイドRestaurant schemaLocalBusiness

自社サイトを今すぐ診断

47項目のチェックを約5秒で実行。登録不要・無料。

診断ページへ