gaash.ai

Technical & Structure · 5 min read · September 24, 2026 · , gaash.ai

Making a restaurant menu readable for AI: every dish, its labels and its price, in text

A restaurant's menu is the page that answers most of what a guest asks an assistant: do they have a real vegan main, is the pasta gluten-free, what does dinner cost. Put every menu on the site as text, each dish with a plain description, its price and the dietary label the kitchen stands behind, with the times each menu is served. A PDF or a photo of the printed menu holds the same words where an answer cannot use them.

Why the menu page decides the diet questions

A guest asking for "a restaurant with a real vegan main course" is asking about a line on a menu. An answer can say yes only if a page it read says so, beside the dish, in words. Our audit of 9,483 small business websites found 2.1% keeping their real content, a price list or a service menu, in a PDF, and a menu in an image is further out of reach still: a picture of words is not words. The restaurants overview covers the rest of what a restaurant's site states; this article is the menu.

What each dish line states

The parts of one dish line on a restaurant's menu page, what to write in each, and an example with placeholders.
PartWhat to writeExample
The dishIts name as the menu prints it[Dish name]
What it isA plain description a guest who has never heard the name would follow[Main ingredient], [how it is cooked], served with [side]
The priceThe price, and what it covers where that is not obvious[price]; [sides priced separately]
The labelYour dietary label in your own words, defined once at the topVegan; gluten-free
What can changeWhat the kitchen can adapt, and what it cannotCan be made without [ingredient] on request
The sectionThe heading it sits underMains

The label has to be a word beside the dish. A leaf icon with no word next to it is a picture, and it tells nothing reading the text that the dish is vegetarian. Define each label once, at the top of the menu, in the terms your kitchen uses: what vegan means on your menu, and what "made without gluten ingredients" does and does not promise.

Several menus, one site

Most restaurants run more than one menu: lunch and dinner, brunch on weekends, a set menu, a tasting menu, a children's menu, a wine list. Give each its own page or its own headed section, and say at the top when it is served, by day and hour. A guest asking where to eat on Sunday at noon needs to know the brunch menu exists and when it stops.

  • Name each menu as the restaurant does, and state its serving times in the first line under its heading.
  • Give set and tasting menus a price per person and what is included, courses and any pairing.
  • Say how a market-price dish is priced, and where the day's price is shown.
  • Keep the children's menu with ages or sizes, if you set any.
  • Put the wine list in text too; guests ask about it, and a file is where it usually hides.

Dietary labels and allergens

Treat dietary labels and allergen information as two different things. A label says what a dish is, in the kitchen's own words. Allergen questions are about a particular guest's safety, and the page should send them to people: one line at the end of every menu such as "Our kitchen handles [allergens]. If you have an allergy, tell your server before you order." That sentence can be passed on to a guest by an answer; a promise the kitchen cannot keep should not be on the page at all.

The rules on which allergens must be declared, and how, differ by jurisdiction, and this page states none of them. Your local food authority is the place to ask. What the page can always carry is the honest description, the label as your kitchen defines it, and the line that routes allergy questions to staff.

When the menu changes every week

  1. Keep one source for the menu, a spreadsheet or the point-of-sale export, and make the website, the printed menu and every delivery app copy from it.
  2. Put the dishes that stay on the menu in the standing sections, and the week's dishes in a dated section of their own.
  3. Change the date at the top of the menu page every time it changes.
  4. Take the old version down the same day: last season's PDF, a menu page nobody links to, an app listing that still shows it.
  5. Check the delivery apps' copies the same day, because a guest may read any of them.

A menu that changes weekly is easier to keep true on a web page than in a PDF, because a page can be edited in place and a PDF gets replaced by a second PDF with a slightly different name. Keeping a restaurant's data the same everywhere covers the other copies.

The markup, briefly

Schema.org's Restaurant type takes hasMenu, which can list several Menu nodes, one per menu, each with MenuSection and MenuItem nodes carrying an Offer with a price and a priceCurrency, and suitableForDiet where your label claims exactly what the value says. Write it in JSON-LD, with every value copied from the page. A café menu machines can read has a full template of the same types; for a restaurant, repeat its Menu block once per menu and name each one.

Markup restates the page and adds nothing to it. Google's structured data guidelines require markup that describes the visible page and does not mislead, so a dish in the markup that is not on the menu page should not be there.

Common questions

Can we keep the PDF menu for printing?

Yes, as a copy of the page, linked from it. The page in HTML is the one an answer can read, and it is the one to keep current. A PDF that lingers after the menu changes is a second, wrong menu, so replace or remove it the day the page changes.

Do dish photos help?

They help guests, and they carry no words unless you add them. Give each photo alt text that says what the dish is and a caption in text where the photo stands in for a description. The dish line itself, name, description, price and label, has to be text either way.

Should prices be on the website menu?

Yes. A guest asking what dinner costs gets an answer from somebody's page, and if yours has no prices, it may be someone else's. Put the price on every dish, a per-person price on set menus, and say how market-price dishes are priced.

What about our delivery app's menu?

Make it match the website, dish for dish and price for price, or say on your menu page why delivery prices differ. Change both on the same day. A guest comparing the two, or an answer reading both, should find the same dishes.

Sources

The PDF figure is this site's own, from the audit named below, and covers all 40 trades. What Google asks of markup is from its own guidelines; the menu types are schema.org's.

Sources: our audit of 9,483 small-business sites, with its method · schema.org, Menu, MenuSection and MenuItem · Google, structured data general guidelines

All articles