Schema markup is the quiet machinery behind AI visibility. It is structured data added to your pages that tells an assistant, in a form it cannot misread, exactly what your restaurant is and offers. Get it right and you hand the machine the facts on a plate. Get it wrong, or leave it out, and the assistant has to guess, which usually means it skips you.

Most restaurants either have no schema or have the wrong kind, copied from a template that was never meant for hospitality. Here are the five fields that matter most, and the mistakes we see again and again.

1. The wrong @type

A surprising number of restaurant sites declare themselves as a generic LocalBusiness, or worse, an Organization. Use Restaurant. It is a recognised type with fields built for exactly your situation, including cuisine, menu, and opening hours. The more specific type tells an assistant precisely what kind of business it is dealing with.

2. servesCuisine left blank

servesCuisine is how you state what you actually cook: Neapolitan, Sichuan, modern British, plant based. When a guest asks for “a good Thai place near me,” this is one of the first fields an assistant checks. Leaving it blank means you are invisible to every cuisine specific question, which is most of them.

Pointing the menu field at a PDF is barely better than nothing. The hasMenu and Menu types let you express sections, individual dishes, prices, and dietary labels as real data. This is the difference between an assistant knowing you do a set lunch with vegan options and an assistant knowing only that a file exists.

4. openingHoursSpecification done as free text

Hours written as a sentence are easy for a person and ambiguous for a machine. openingHoursSpecification lets you state each day, open and close, including split shifts and different weekend hours, in a structured way. Restaurants change hours constantly, so this is also the field that most often drifts out of date. Keep it accurate and consistent with Google and your booking platform.

5. No connection between the parts

Even when the fields exist, they often float free, with the Restaurant, its Menu, and its reviews living as disconnected fragments. Tying them together with proper identifiers lets an assistant see one coherent entity rather than a pile of unrelated facts. A coherent entity is one it can recommend with confidence.

A short checklist

  • Use the Restaurant type, not a generic one.
  • Fill in servesCuisine with how guests would actually describe you.
  • Express your menu as structured data, not just a linked file.
  • Mark up hours with openingHoursSpecification and keep them current.
  • Connect the pieces so they read as one entity.

None of this changes how your site looks to a guest. All of it changes how readable you are to the assistants now deciding where that guest eats. If you want to know which of these you are missing, a free AI visibility check will show you, in plain language.

Playbook