음식점·카페 LocalBusiness 스키마 적용 가이드 (복붙용 예제 포함)
음식점·카페가 검색·AI에 정확히 노출되려면 Restaurant/LocalBusiness 스키마가 필요합니다. 영업시간·가격대·메뉴종류·평점까지 들어간 복사·붙여넣기용 JSON-LD 예제와 필드별 해설.
한 줄 요약
음식점·카페가 검색과 AI에 정확히 노출되려면 Restaurant(카페는 CafeOrCoffeeShop) 타입의 LocalBusiness JSON-LD를 페이지에 넣어야 합니다. 상호·주소·전화·영업시간·가격대·음식 종류·좌표를 한 블록에 담아 <script type="application/ld+json"> 태그로 붙이면 끝입니다. 아래 예제를 그대로 복사해 내 가게 정보로 바꾸기만 하면 됩니다.
1. 왜 음식점에 스키마가 필요한가
검색엔진과 AI는 페이지를 사람처럼 "읽지" 못합니다. "영업시간 09:00~21:00"이라고 적혀 있어도, 그게 영업시간인지 전화번호인지 추측에 의존합니다. LocalBusiness 스키마는 그 추측을 없앱니다.
- 구글 리치 결과 — 검색 결과에 영업 상태(영업 중/마감), 평점, 가격대가 카드로 노출됩니다.
- 구글 지도·로컬 팩 — 비즈니스 프로필과 사이트 정보가 연결돼 신뢰도가 올라갑니다.
- AI 검색(ChatGPT·Perplexity·Gemini) — "강남역 근처 파스타집 추천"에 답할 때, 스키마가 있는 가게를 정확히 인용합니다. LocalBusiness는 AI가 가장 잘 신뢰하는 타입 중 하나입니다.
2. 타입 선택: Restaurant vs CafeOrCoffeeShop
| 업종 | 사용할 @type |
|---|---|
| 일반 음식점·식당 | Restaurant |
| 카페·커피전문점 | CafeOrCoffeeShop |
| 베이커리 | Bakery |
| 바·펍 | BarOrPub |
| 배달 전문 | FoodEstablishment 또는 Restaurant |
모두 LocalBusiness의 하위 타입이라 주소·영업시간 같은 공통 속성을 그대로 씁니다. 더 구체적인 타입일수록 좋습니다 — LocalBusiness보다 Restaurant가 낫고, 그래야 servesCuisine 같은 전용 필드를 구글이 인식합니다.
3. 복사·붙여넣기용 전체 예제
아래는 서울의 가상 파스타 음식점 예시입니다. <head> 안이나 </body> 직전에 넣으세요.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "트라토리아 솔레",
"image": "https://example.com/photos/store.jpg",
"url": "https://example.com",
"telephone": "+82-2-555-1234",
"priceRange": "₩₩",
"servesCuisine": ["이탈리안", "파스타", "피자"],
"menu": "https://example.com/menu",
"acceptsReservations": "True",
"address": {
"@type": "PostalAddress",
"streetAddress": "테헤란로 123, 2층",
"addressLocality": "강남구",
"addressRegion": "서울특별시",
"postalCode": "06234",
"addressCountry": "KR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 37.4979,
"longitude": 127.0276
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "11:30",
"closes": "21:30"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday", "Sunday"],
"opens": "11:00",
"closes": "22:00"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "128"
},
"sameAs": [
"https://www.instagram.com/trattoria_sole",
"https://place.map.kakao.com/000000000",
"https://m.place.naver.com/restaurant/0000000"
]
}
</script>
4. 필드별 해설
name— 정식 상호명. 슬로건이나 지점 표기는 빼고 간판 이름 그대로.image— 외부 접근 가능한 절대 URL. 가게 외관·대표 메뉴 사진을 넣으면 리치 결과 카드에 쓰입니다. 가로형 고해상도 권장.telephone— 국제 형식(E.164). 한국 번호는 첫0을 빼고+82-를 붙입니다.02-555-1234❌ →+82-2-555-1234✅.priceRange— 가격대.₩(저렴)~₩₩₩₩(고가) 또는"10000-30000원"같은 범위 텍스트도 가능. AI가 "가성비" 같은 질의에 답할 때 활용합니다.servesCuisine— 제공 음식 종류. 배열로 여러 개 나열하면 "이탈리안 맛집" 같은 질의 매칭에 직접 도움이 됩니다. 카페면["커피", "디저트", "브런치"].address—PostalAddress로 분해.addressCountry는 반드시 ISO 코드KR("한국"·"Korea" 금지),addressRegion은 광역(서울특별시),addressLocality는 시·구(강남구).geo— 위경도 좌표. 지도 연동과 "근처 ○○" 질의에 결정적입니다. 네이버·카카오 지도에서 좌표를 확인해 넣으세요.openingHoursSpecification— 요일 그룹별 영업시간. 24시간 형식, KST 기준. 휴무일(예: 월요일)은 아예 배열에서 빼면 됩니다.aggregateRating— 평점·후기 수. 내 사이트에서 실제로 표시하는 후기 기반일 때만 넣으세요(자세한 주의는 아래).acceptsReservations— 예약 가능 여부("True"/"False").sameAs— 인스타그램·네이버 플레이스·카카오맵 등 공식 채널. 한국 음식점이면 네이버 플레이스·카카오맵 링크를 꼭 포함하세요.
5. 흔한 실수
! 음식점 스키마에서 가장 많이 보이는 실수
- 별점을 외부에서 베껴옴 — 네이버·구글 지도 별점을 그대로 넣으면 정책 위반. 내 후기 시스템이 없으면
aggregateRating을 생략하세요. addressCountry에 "한국" — 반드시KR.- 전화번호에
0이 남음 —+82-2-...형식으로. - 영업시간을
openingHours한 줄 문자열로만 적음 — 요일별로 다르면openingHoursSpecification배열을 쓰는 게 정확합니다. - 여러 지점을 한 페이지에 몰아넣음 — 지점별 페이지에 각 지점 LocalBusiness를 하나씩.
6. 검증
코드를 넣었으면 구글 리치 결과 테스트와 Schema Markup Validator로 확인하세요. "Local business" 항목이 감지되고 오류가 없으면 정상입니다.
더 깊은 배경은 Organization 스키마 한국 기업용 작성 가이드도 함께 보시면 좋습니다.
직접 만들기
운영 중인 가게 사이트 URL을 넣으면 페이지 정보에서 LocalBusiness/Restaurant 후보를 추출해 JSON-LD로 만들어 줍니다. 복사해 바로 붙이세요.
→ URL로 LocalBusiness 자동 생성URL을 넣으면 현재 적용된 구조화 데이터와 누락된 음식점 필드(영업시간·좌표·가격대 등)를 우선순위로 알려줍니다.
→ 내 가게 사이트에 스키마가 있는지 진단