SOYOYU
업종 · 음식extends FoodEstablishment, LocalBusiness

Restaurant

음식점의 표준 타입. 일반 LocalBusiness가 인식하지 못하는 요리 종류·메뉴·예약까지 schema.org가 알게 만듦.

XEO 효과 4가지

리치 결과

●●●●●결정적

구글 비즈니스 프로필 매칭 + 지도 검색 + "근처 ~" 검색의 핵심. 별점·영업시간·예약 버튼·메뉴 링크가 한꺼번에 노출.

AI 인용

●●●●○높음

AI의 "근처 한식집"·"가성비 일식" 답변에서 servesCuisine·priceRange를 직접 인용. 답변 정확도의 핵심.

사용 빈도

●●○○○낮음

음식점에 한정. 그러나 음식점이라면 반드시 LocalBusiness 대신 Restaurant.

구현 난이도

●●○○○낮음

LocalBusiness 필드에 servesCuisine·menu만 추가. 5~10분 작업.

이럴 때 쓴다

  • 모든 음식점·식당·카페
  • 더 구체적이면 Bakery·CafeOrCoffeeShop·BarOrPub 사용
  • 배달 전문점도 Restaurant (servesCuisine로 한국식·중식·일식 등 명시)
  • 푸드트럭·팝업 식당도 가능 (단 시간 제한)
한식당 기본
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "@id": "https://example.com/#restaurant",
  "name": "예제 한정식",
  "image": ["https://example.com/img/exterior.jpg", "https://example.com/img/dishes.jpg"],
  "servesCuisine": ["한식", "전통 한정식"],
  "priceRange": "$$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "삼청로 12",
    "addressLocality": "서울특별시 종로구",
    "addressCountry": "KR"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": 37.58, "longitude": 126.98 },
  "telephone": "+82-2-1234-5678",
  "menu": "https://example.com/menu",
  "acceptsReservations": true,
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Tuesday","Wednesday","Thursday","Friday","Saturday"],
    "opens": "11:30",
    "closes": "21:00"
  }],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": 87
  }
}

servesCuisine과 priceRange가 함께 있어야 예산·요리 종류 검색에서 매칭됨.

자주 보는 안티패턴

  • LocalBusiness만 쓰고 Restaurant를 안 씀 — 요리·메뉴 시그널 사라짐
  • servesCuisine 누락 — 한식·중식·일식 같은 도메인 필터에서 빠짐
  • menu URL 누락 — 메뉴 페이지가 별도일 때 연결 시그널 없음
  • acceptsReservations 거짓 표시 (예약 불가인데 true)
  • hasMenu 객체 형식 오류 — Menu·MenuSection·MenuItem 계층 누락
servesCuisine 누락
{ "@type": "Restaurant", "name": "..." }

한식 맛집·근처 일식 같은 도메인 검색에서 매칭되지 않음. Restaurant 마크업의 효과 절반 이하.

필수 필드

  • nameText음식점명
  • addressPostalAddress매장 주소
  • telephoneText매장 전화
  • servesCuisineText|Text[]요리 종류 (한식·일식·이탈리안 등)
  • priceRangeText$ ~ $$$$ 또는 가격대 텍스트
  • menuURL메뉴 페이지 URL
  • hasMenuMenu메뉴 구조화 데이터 (MenuSection·MenuItem 포함)
  • acceptsReservationsBoolean예약 가능 여부
  • openingHoursSpecificationOpeningHoursSpecification[]요일별 영업시간
  • geoGeoCoordinates위도·경도
  • imageURL[]내부·외부·요리 사진
  • aggregateRatingAggregateRating평점 집계

해설

음식점 사이트가 LocalBusiness만 마크업한 경우가 너무 흔하다. 틀리진 않지만 절반의 효과다. Restaurant 타입은 요리 종류·메뉴·예약 가능 여부 같은 음식점에만 의미 있는 필드를 추가로 인식한다 — 한식 맛집·가성비 일식 같은 도메인 검색의 매칭 정확도가 달라진다.

리치 결과 관점에서 Restaurant는 지역 음식 검색의 모든 시각화를 활성화한다. 구글 비즈니스 프로필의 카테고리: 한식 음식점과 매칭되면 — 지도 검색·근처 식당·평점 정렬에서 노출이 두드러진다. acceptsReservations: true라면 SERP에 예약하기 버튼이 직접 노출되어 — 클릭 한 번에 예약 페이지로 갈 수 있다.

AI 인용 관점에서 ChatGPT·Perplexity의 "강남 점심 추천"·"근처 일식 가성비" 답변에서 — Restaurant + servesCuisine + priceRange 마크업이 AI의 필터 매칭 기준. 마크업이 없는 식당은 본문 텍스트에서 추측해야 해서 답변 후보에서 빠진다.

가장 큰 함정: servesCuisine 누락. Restaurant 마크업의 절반의 가치가 servesCuisine에서 나온다. "한식"·"일식"·"이탈리안" 같은 명확한 분류로 채우자. 여러 종류라면 배열로 (["한식", "전통 한정식"]). 모호한 분류("맛있는 음식")는 의미가 없다.

hasMenu메뉴 구조 자체를 마크업할 수도 있다. MenuMenuSection(전채·메인·디저트) → MenuItem(개별 메뉴) 계층으로 — 각 메뉴의 이름·가격·설명·이미지를 schema.org에 등록. AI가 "~ 식당의 대표 메뉴"에 답할 때 정확히 인용된다. 작업 부담은 있지만 — 경쟁 음식점이 거의 하지 않는 차별화 영역.

예약 시스템이 있다면 acceptsReservations: true. 외부 예약 플랫폼(캐치테이블·네이버 예약)을 쓰면 potentialAction으로 ReserveAction까지 마크업할 수 있어 — SERP에서 예약하기가 클릭 가능한 액션으로 노출된다.

이 카드는 음식 업종 심화 시리즈의 진입점. Restaurant + MenuSection + Menu + Recipe(레시피 콘텐츠) 결합, Bakery·CafeOrCoffeeShop 같은 세부 타입의 선택 기준은 별도 시리즈에서 다룬다.