「朝食バイキングは何時から?」にAIが答えられない理由

74%
宿泊検索で「朝食」「レストラン」を含むクエリの割合
91%
館内レストラン情報が構造化されていない施設サイト
3.1倍
Restaurant schema実装後のAI引用率向上

出典: Phocuswright「Japan Travel Search Behavior 2025」、Google Search Central Blog「Structured Data Impact Report 2025」

ChatGPTやGeminiに「京都で朝食が美味しいホテルは?」と聞いた時、AIは公式サイト、OTA、口コミを横断して回答を組み立てます。しかし、最も確実に拾えるのが構造化データです。レストラン名、営業時間、メニュー内容がJSON-LDで記述されていれば、AIは推測ではなく事実として引用できます。

現実には、ほとんどのホテル・旅館の公式サイトでは「朝食 7:00〜9:30」「和洋バイキング」といった情報がHTMLテキストとして埋もれています。AIにとっては長い文章の中から該当箇所を探すしかなく、取りこぼしや誤認が頻発します。

この記事では、館内レストラン・朝食・メニュー情報をAIが確実に読める形で構造化する方法を、コピペ可能なJSON-LDコード例と自動作成ツール付きで解説します。

はじめての方へ: 構造化データの基本(施設全体の情報・予約導線の書き方)は基本ガイドをご覧ください。本記事は基本実装が済んだ施設向けに、レストラン・メニュー情報をさらに詳しく構造化する方法を解説します。

schema.orgでレストラン情報を表現する方法

館内レストランの構造化には、施設の形態によって適切なschemaが異なります。

施設形態推奨schema使い分けの基準
一般的な館内レストランRestaurant独立した飲食店舗として機能している
宴会場・多目的ダイニングFoodEstablishmentレストラン以外の用途(宴会・会議等)も兼ねる
バー・ラウンジBarOrPub飲料中心の営業形態
カフェ・ティーラウンジCafeOrCoffeeShop軽食・喫茶中心

多くのホテルではRestaurantが最適です。和食処・鉄板焼き・ビュッフェレストランなど、料理ジャンルが明確に分かれた店舗がある場合は、それぞれ別のRestaurantエンティティとして記述します。宴会場と食事処を兼ねる場合のみFoodEstablishmentを使ってください。

RestaurantとFoodEstablishmentの違い: Restaurantはschema.orgでFoodEstablishmentのサブタイプです。より具体的な型を使うほうがAIの理解精度が上がります。「レストラン」として機能している施設にはRestaurantを使い、FoodEstablishmentは上位互換として宴会場兼用等の曖昧なケースに限定するのが推奨です。

Restaurant schemaの基本実装

館内レストランの基本情報をRestaurant schemaで記述します。servesCuisineで料理ジャンルを明示し、openingHoursSpecificationで営業時間を構造化するのがポイントです。

// 館内レストランの基本情報 { "@context": "https://schema.org", "@type": "Restaurant", "name": "日本料理 花月", "description": "地元の旬の食材を活かした会席料理と季節の懐石コース。個室あり(要予約)。朝食は和定食またはビュッフェ形式で提供", "servesCuisine": ["日本料理", "懐石", "和食"], "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], "opens": "07:00", "closes": "09:30", // 朝食 }, { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], "opens": "11:30", "closes": "14:00", // ランチ }, { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], "opens": "17:30", "closes": "21:00", // ディナー } ], "hasMenu": "https://example-hotel.com/restaurant/menu/", "acceptsReservations": "True", "priceRange": "¥¥¥", "address": { "@type": "PostalAddress", "addressLocality": "京都市東山区", "addressRegion": "京都府", "addressCountry": "JP" } }

実装のポイント

Menu + MenuSection + MenuItem schemaの実装

レストランの情報だけでなく、メニューの中身まで構造化すると「このホテルではどんな料理が食べられるか」にAIが具体的に回答できるようになります。Menu schemaはMenuSection(食事カテゴリ)とMenuItem(個々の料理)の階層構造で記述します。

// メニュー全体の構造化(朝食・ランチ・ディナー) { "@context": "https://schema.org", "@type": "Menu", "name": "日本料理 花月 メニュー", "hasMenuSection": [ { "@type": "MenuSection", "name": "朝食メニュー", "hasMenuItem": [ { "@type": "MenuItem", "name": "和朝食膳", "description": "焼き魚、出汁巻き卵、小鉢三種、味噌汁、ご飯、漬物", "offers": { "@type": "Offer", "price": "3500", "priceCurrency": "JPY" } }, { "@type": "MenuItem", "name": "朝食ビュッフェ", "description": "和洋50種以上。地元野菜のサラダバー、焼きたてパン、おばんざいコーナーあり", "offers": { "@type": "Offer", "price": "4000", "priceCurrency": "JPY" } } ] }, { "@type": "MenuSection", "name": "ランチメニュー", "hasMenuItem": [ { "@type": "MenuItem", "name": "季節の御膳", "description": "前菜、お造り、焼物、煮物、ご飯、デザート", "offers": { "@type": "Offer", "price": "5500", "priceCurrency": "JPY" } } ] }, { "@type": "MenuSection", "name": "ディナーメニュー", "hasMenuItem": [ { "@type": "MenuItem", "name": "懐石コース「雅」", "description": "先付、八寸、お造り、焼物、強肴、食事、水菓子の全7品", "offers": { "@type": "Offer", "price": "15000", "priceCurrency": "JPY" } }, { "@type": "MenuItem", "name": "特選懐石コース「花」", "description": "A5黒毛和牛と旬の鮮魚を中心にした全9品の特別懐石", "offers": { "@type": "Offer", "price": "25000", "priceCurrency": "JPY" } } ] } ] }

メニュー構造化のポイント

Hotel schemaからレストランを紐付ける

Restaurant schemaを単独で記述しただけでは、AIがそのレストランとホテルの関係を把握できない場合があります。Hotel schemaからdepartmentで紐付けることで、「このホテルの中にこのレストランがある」という関係を明確にします。

// Hotel schemaからレストランを紐付ける { "@context": "https://schema.org", "@type": "Hotel", "name": "ホテル京都花園", "@id": "https://example-hotel.com/#hotel", "department": [ { "@type": "Restaurant", "name": "日本料理 花月", "servesCuisine": ["日本料理", "懐石"], "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], "opens": "07:00", "closes": "09:30" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], "opens": "17:30", "closes": "21:00" } ] }, { "@type": "Restaurant", "name": "鉄板焼 京(みやこ)", "servesCuisine": ["鉄板焼", "ステーキ"], "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], "opens": "17:00", "closes": "21:30" } ] } ], "amenityFeature": [ { "@type": "LocationFeatureSpecification", "name": "朝食ビュッフェ", "value": true }, { "@type": "LocationFeatureSpecification", "name": "ルームサービス", "value": true } ] }

紐付けの使い分け

朝食ビュッフェ・ルームサービスの構造化

「朝食付きのホテルはある?」「ルームサービスは何時まで?」は宿泊予約時の頻出クエリです。朝食ビュッフェやルームサービスの料金・提供時間をOffer schemaで構造化すると、AIが直接回答できるようになります。

// 朝食ビュッフェの料金・提供時間を構造化 { "@context": "https://schema.org", "@type": "Offer", "name": "朝食ビュッフェ", "description": "和洋50種以上のビュッフェ。地元野菜のサラダバー、シェフが目の前で焼くオムレツ、焼きたてクロワッサン、京のおばんざいコーナーあり。宿泊者以外も利用可", "price": "4000", "priceCurrency": "JPY", "priceSpecification": { "@type": "UnitPriceSpecification", "price": "4000", "priceCurrency": "JPY", "unitText": "1名", "description": "大人1名。小学生2,000円、幼児無料" }, "availability": "https://schema.org/InStock", "availabilityStarts": "07:00", "availabilityEnds": "09:30", "seller": { "@type": "Hotel", "name": "ホテル京都花園", "@id": "https://example-hotel.com/#hotel" } }

ルームサービスがある場合は、Hotel schemaのamenityFeatureに「ルームサービス」を追加し、対応時間と料金レンジをOfferで記述します。深夜対応(例: 23:00〜翌6:00)がある場合は、その時間帯を明記すると「深夜に食事ができるホテル」というクエリに刺さります。

御施設のレストラン情報はAIに正しく伝わっていますか?

AI検索でのレストラン情報の引用状況を無料診断します

無料診断を申し込む

インバウンド対応:英語でのMenu記述

「hotel with good breakfast in Kyoto」「Japanese kaiseki dinner at ryokan」 -- 訪日外国人は英語で館内レストランを検索します。英語版ページには英語のJSON-LDを用意し、アレルギー情報を含めると引用精度が大幅に向上します。

// English menu with allergen info for inbound travelers { "@context": "https://schema.org", "@type": "Menu", "name": "Kagetsu Japanese Restaurant Menu", "inLanguage": "en", "hasMenuSection": [ { "@type": "MenuSection", "name": "Dinner - Kaiseki Course", "hasMenuItem": [ { "@type": "MenuItem", "name": "Kaiseki Course 'Miyabi' (7 courses)", "description": "Seasonal appetizer, sashimi, grilled dish, simmered dish, rice, and dessert. Features locally sourced Kyoto vegetables and fresh seafood", "offers": { "@type": "Offer", "price": "15000", "priceCurrency": "JPY" }, "suitableForDiet": [ "https://schema.org/GlutenFreeDiet" ], "nutrition": { "@type": "NutritionInformation", "description": "Contains: fish, soy, wheat (soy sauce). Gluten-free option available on request" } }, { "@type": "MenuItem", "name": "Vegetarian Kaiseki Course (7 courses)", "description": "Plant-based kaiseki using seasonal Kyoto vegetables, tofu, and Buddhist temple cuisine techniques", "offers": { "@type": "Offer", "price": "13000", "priceCurrency": "JPY" }, "suitableForDiet": [ "https://schema.org/VegetarianDiet", "https://schema.org/GlutenFreeDiet" ] } ] } ] }

英語メニュー記述のポイント

FAQ schemaでレストラン質問に答える

レストラン・朝食に関するFAQをschema化しておくと、AIが質問に対して正確な一次情報として引用します。以下はホテル・旅館で頻出するFAQ例です。

構造化すべきレストランFAQ 15項目

  1. 朝食の時間と場所は?
  2. 朝食はビュッフェ形式ですか?
  3. 朝食の料金はいくらですか?
  4. レストランは宿泊者以外も利用できますか?
  5. ディナーは予約が必要ですか?
  6. アレルギー対応はしていますか?
  7. ベジタリアン・ヴィーガンメニューはありますか?
  8. 子供向けメニューはありますか?
  9. ルームサービスは何時まで利用できますか?
  10. 個室のあるレストランはありますか?
  11. ハラール対応のメニューはありますか?
  12. レストランのドレスコードはありますか?
  13. 地元の名物料理は食べられますか?
  14. 誕生日・記念日のサプライズ対応はできますか?
  15. レストランの英語メニューはありますか?

これらをFAQPage schemaとして記述し、公式サイトのFAQページとレストラン紹介ページの両方に埋め込みます。記事冒頭のJSON-LD(<head>内)に5件程度、各ページの内容に合わせたFAQを設定するのが推奨です。

実装の優先順位

すべてを一度に実装する必要はありません。効果が出やすい順に段階的に進めます。

  1. Week 1: Restaurant schemaの基本実装 -- レストラン名、servesCuisine、openingHoursSpecificationを記述。最小工数で最大効果
  2. Week 1: Hotel schemaからのdepartment紐付け -- 既存のHotel schemaにdepartmentを追加するだけ。Restaurant schemaと同時に実装
  3. Week 2: Menu schemaの実装 -- 各食事タイプから代表メニュー3〜5品を構造化。朝食メニューを優先
  4. Week 3: FAQ schemaのレストラン版 -- 上記15項目から自施設に該当する8〜10件を選んで実装
  5. Month 2: 朝食ビュッフェ・ルームサービスのOffer schema -- 料金・提供時間を構造化
  6. Month 3: 英語版Menu JSON-LDの作成 -- インバウンド対応。アレルギー情報・食事制限情報を含める

Week 1のRestaurant schema基本実装は、既存のJSON-LDに数十行足すだけで完了します。CMS管理画面から編集できる場合は1時間で実装可能です。コード編集が必要な場合はWeb制作会社に依頼してください。

実装後の確認にはGoogle リッチリザルトテストSchema.org Validatorを使います。エラーが0件であれば、AIも正しく読み取れる状態です。
御施設のレストラン情報をかんたん構造化
1入力 2自動作成 3コピーして貼るだけ
専門知識は不要です。下のフォームに御施設のレストラン情報を入力してください。
1. 基本情報
2. 営業情報
3. メニュー

各食事タイプの代表メニューを追加してください(任意)

朝食メニュー
ランチメニュー
ディナーメニュー
4. オプション
生成されたJSON-LD

このコードを公式サイトの <head> タグ内に貼り付けてください