사진 속 메뉴는 글자를 찍은 그림입니다
많은 식당 웹사이트가 인쇄된 메뉴판을 찍은 사진이나 PDF로 메뉴를 보여줍니다. 큰 화면에서, 눈이 좋은 손님에게는 그래도 괜찮습니다. 그 밖의 손님이 얻는 정보는 줄어듭니다. 화면 낭독기는 이미지의 대체 텍스트만 읽을 수 있습니다. 브라우저의 번역 버튼은 사진을 그대로 둡니다. 페이지 내 찾기는 아무것도 찾지 못합니다. 휴대폰에서는 손가락으로 메뉴판을 확대하고 이리저리 옮겨 봐야 합니다.
검색엔진과 AI 어시스턴트도 같은 처지입니다. 페이지를 가져가는 크롤러가 받는 것은 이미지 파일입니다. Google은 캡션과 이미지 제목을 포함한 주변 페이지의 내용으로 이미지를 이해한다고 설명합니다. 사진 안의 메뉴 이름과 가격은 그 글자에 들어 있지 않습니다.
Midori Sushi의 공식 메뉴는 이미지 10장으로 전달됐습니다. 지금 같은 메뉴는 식당 웹사이트에서 24개 섹션, 210개 항목의 글자로 되어 있습니다. 디자인은 Midori 프로젝트 사례에서 다뤘고, 이 글은 저희가 식당 메뉴를 공개할 때마다 쓰는 방법을 정리합니다.
메뉴 전용 페이지, 모든 요리는 글자로
- 고유한 주소·제목·설명을 가진 메뉴 전용 페이지. 홈페이지와 Google 비즈니스 프로필의 메뉴 링크에서 연결합니다.
- 모든 요리를 글자로: 이름, 메뉴에 있으면 짧은 설명, 그리고 가격을 식당이 쓰는 섹션 그대로 정리합니다.
- 메뉴 전체를 서버가 보내는 HTML에 담아, 스크립트가 실행되기 전에도 읽을 수 있게 합니다.
- 긴 메뉴에는 검색과 카테고리 필터를 둡니다. Midori Sushi 메뉴에서는 요리 이름이나 재료를 입력하면 일치하는 항목 수가 표시됩니다.
검색엔진과 AI 어시스턴트가 받는 것
웹 검색으로 답하는 AI 어시스턴트는 OAI-SearchBot, PerplexityBot, ClaudeBot 같은 자체 크롤러로 페이지를 가져갑니다. 2026년 9월 27일, Midori Sushi, King Katsu Land, Cocobang의 메뉴 페이지는 이 크롤러들과 Googlebot 모두에게 전체 페이지를 돌려줬습니다. 각 크롤러가 받은 것은 메뉴를 찍은 그림이 아니라 글자로 된 메뉴였습니다.
같은 내용을 구조화 데이터로
각 메뉴 페이지에는 schema.org 어휘로 된 구조화 데이터도 있습니다. Menu는 MenuSection으로 나뉘고 그 안에 MenuItem이 있으며, 페이지에 가격이 있으면 그 가격을 미국 달러로 담은 Offer가 붙습니다. 식당 자체의 구조화 데이터는 이 메뉴를 가리킵니다.
구조화 데이터는 눈에 보이는 메뉴를 대신하지 않습니다. 어떤 숫자가 어떤 요리의 가격인지 추측하지 않아도 소프트웨어가 읽을 수 있는 형태로 같은 내용을 한 번 더 적을 뿐입니다. 저희 원칙은 페이지에 보이는 것만 적는 것입니다. 2026년 9월 27일 공개 페이지를 확인한 결과, Midori Sushi(가격 141개)와 King Katsu Land(29개 항목, 가격 33개)의 메뉴 데이터에 있는 모든 가격이 페이지에서 해당 요리 옆에 표시되어 있었습니다.
세 사이트 모두 메뉴 페이지와 구조화 데이터를 하나의 메뉴 파일에서 만듭니다. 그래서 가격을 한 번 고치면 두 곳이 함께 바뀝니다.
가격은 정확하게, 아니면 싣지 않습니다
메뉴 페이지의 쓸모는 가격의 정확도에 달려 있습니다. 가격은 식당의 공식 메뉴에서 옮기고, 빈칸을 추정값으로 채우지 않습니다.
가격이 두 개인 요리도 있습니다. Midori Sushi에서 스시는 1피스, 사시미는 3피스 단위로 가격이 매겨지고, 와인은 잔과 병으로 나뉩니다. 페이지에서는 열 제목이 붙은 표로 보여줍니다. 구조화 데이터에서는 이런 요리에 가격을 하나로 정해 넣지 않고, 두 가격은 페이지의 표가 보여줍니다.
Midori의 별도 글루텐프리 메뉴는 자체 6개 섹션, 47개 항목과 그 가격을 그대로 유지합니다.
확인되지 않은 가격은 페이지에 싣지 않습니다. Cocobang 메뉴 페이지는 다섯 카테고리의 26개 요리를 가격 없이 보여주고, 구조화 데이터도 각 요리의 이름만 가격 없이 담습니다. 주문하려는 손님은 Uber Eats, DoorDash, Grubhub의 매장 페이지로 이동합니다.
PDF는 두고, 내용은 글자로
식당에는 이미 PDF 메뉴가 있는 경우가 많고, 인쇄용으로는 여전히 쓸모가 있습니다. 그래서 PDF는 내려받기 파일로 두고, 내용은 페이지로 공개합니다. Midori Sushi의 점심 특선은 PDF로 전달됐습니다. 지금 점심 페이지에는 17가지 특선이 미소 된장국 포함 $15부터 $19.50까지 모두 글자로 올라 있고, 각각의 가격이 구조화 데이터에도 들어 있으며, PDF 링크도 함께 있습니다.
옛 메뉴 주소를 살려 둡니다
식당이 사이트 빌더에서 옮겨 오면 옛 메뉴 페이지는 한동안 검색 결과와 즐겨찾기에 남습니다. 옛 주소가 오류 페이지를 보여주면, 그 링크를 누른 손님은 막다른 길에 서게 됩니다.
공개 전에 옛 사이트의 사이트맵과 검색엔진에 아직 남아 있는 페이지에서 주소를 모으고, 옛 메뉴 주소마다 새 메뉴 페이지로 가는 영구(301) 리디렉션을 겁니다. Wix와 Squarespace에서 옮긴 식당 사이트에서는 /20, /price, /feature 같은 옛 주소가 쿼리 문자열을 유지한 채 한 번에 현재 메뉴로 이어집니다.
공개 뒤에도 다시 살핍니다. 한 사이트에서는 이전 뒤 옛 /newark-menu 주소가 검색 결과에 나타났고, 오류 페이지를 보여주고 있었습니다. 지금은 이 주소도 메뉴로 리디렉션됩니다.
계절 메뉴와 가격 변경
글자로 된 메뉴는 고치기 쉬운 만큼 조용히 낡기도 쉽습니다. 그래서 메뉴 페이지에는 마지막으로 확인한 날짜가 있어야 합니다. Midori Sushi 메뉴에는 "Menu and prices checked September 17, 2026"이라고 적혀 있고, 주문할 때 현재 가격을 확인해 달라고 안내합니다. 점심 페이지는 9월 22일에 확인했습니다.
계절 메뉴는 시작할 때 섹션과 가격을 붙여 메뉴 파일에 넣고, 끝나면 뺍니다. 확인 날짜도 함께 옮깁니다. 페이지와 구조화 데이터가 같은 파일에서 만들어지므로 어느 한쪽만 뒤처지지 않습니다.
메뉴의 접근성은 글자에서 시작합니다
Midori Sushi 메뉴 페이지에서는:
- 24개 섹션마다 제목이 있어 화면 낭독기로 섹션 사이를 건너뛸 수 있습니다.
- 가격이 두 개인 요리는 캡션과 열 제목("Sushi · 1 pc", "Sashimi · 3 pc" 등)이 있는 표에 들어 있습니다.
- 검색창에는 레이블이 있고, 일치하는 항목 수가 바뀔 때마다 알려줍니다.
- 날것 요리에는 범례로 설명한 표시가 붙고, 매운 요리는 글자로 표시합니다.
- 글자가 휴대폰 화면 폭에 맞춰 줄바꿈되어, 사진처럼 확대하고 이리저리 옮겨 볼 필요가 없습니다.
메뉴 페이지 체크리스트
- 모든 요리와 가격이 사진이나 PDF에만 있지 않고, 식당 웹사이트의 페이지에 글자로 있다.
- 가격은 현재 공식 메뉴에서 가져온다. 확인되지 않은 가격은 추정하지 않고 뺀다.
- 가격이 두 개인 요리는 열 제목이 있는 표로 둘 다 보여준다.
- 페이지에 Menu 구조화 데이터가 있고, 그 안의 모든 가격이 페이지에 보인다.
- 메뉴를 마지막으로 확인한 날짜가 페이지에 있다.
- Google 비즈니스 프로필의 메뉴 링크가 이 페이지를 가리킨다.
- 이전 사이트의 옛 메뉴 주소가 새 페이지로 301 리디렉션된다.
- 검색엔진과 AI 검색 크롤러가 페이지를 가져갈 수 있다.
- 섹션마다 제목이 있고, 휴대폰 화면 폭에서도, 스크립트가 실행되기 전에도 메뉴가 제대로 읽힌다.
이 글의 사실은 저희 프로젝트 기록과 2026년 9월 27일에 확인한 공개 메뉴 페이지에서 가져왔습니다.
