飲食サービスのための AI エージェント対応ガイド
飲食店・カフェ・チェーン外食企業の Web サイトを AI エージェントから見つけてもらえる状態にするための実装。LocalBusiness / Restaurant / Menu スキーマ、複数店舗 (チェーン) 構造、営業時間、アレルゲン情報まで具体的に解説します。
「渋谷駅近くで今空いてるイタリアン」「ヴィーガン対応のカフェ、麻布十番」「子連れ歓迎の和食、平日ランチで個室あり」 — 飲食店を探すクエリは、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 で定義されていて、VeganDiet、VegetarianDiet、GlutenFreeDiet、HalalDiet、KosherDiet、LowLactoseDiet のような値を入れられる。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 で datePublished と dateModified を明示する。終了日 (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 に投げた時に拾われやすくなる。
関連リンク