// ai visibility · restaurants

AI visibility for restaurants

Your menu is the most valuable content you own and the most likely to be completely invisible. If it's a JPEG, a PDF or a widget, an answer engine has never read a single dish you serve.

Restaurants have the clearest, most fixable version of this problem in any category I've looked at, and almost nobody fixes it.

Your menu is a picture of a menu

Go and look at your own site right now. Your menu is one of these:

  • An image: a beautifully typeset JPEG or PNG of the menu. To a crawler this is a file reference. Not one dish is readable. Zero.
  • A PDF: better, but it's a separate document that may not be crawled, may not be associated with your restaurant entity, and certainly isn't part of the page a model reads.
  • A JavaScript widget: from your ordering platform, injected at load. AI crawlers do not execute JavaScript, per Vercel's AI crawler study. The container is empty.
  • Plain HTML text: readable. This is rare, and it's the whole point of this page.

Think about what that means. The single most defining, most differentiating, most searched-for content you own, what you actually cook, is invisible to every answer engine, in most restaurants, most of the time. Someone asks "where can I get proper Chettinad food in Bangalore" and your restaurant, which serves exactly that, contributes nothing to the answer, because the words never existed in a readable form.

Why Zomato and Swiggy get cited instead

Because they did the thing you didn't. Your menu is on Zomato, as text. Your hours are on Zomato, as data. Your price range, your cuisine tags, your address, all structured, all comparable across thousands of restaurants.

When an answer engine assembles "good Thai near Indiranagar", it needs readable options. The aggregator hands it a structured list. You hand it a photograph of a chalkboard.

This isn't a complaint about aggregators; they earned it. It's an observation that the readable version of your restaurant already exists, someone else owns it, and it's monetised at 18-25% per order.

The fix, which is genuinely not hard

Publish your menu as HTML text. That's it. That's the fix. Keep the beautiful image if you like it. Put the text version on the same page, underneath. Dish name, description, price, as words.

This costs an afternoon and it is the highest-leverage AI visibility action available to a restaurant, by a distance. Not schema. Not llms.txt, which does nothing at all. Text.

Then Restaurant schema, which has unusually good properties

Once the words exist, Schema.org's Restaurant type maps almost suspiciously well onto what people actually ask an answer engine:

  • servesCuisine: the literal question in most restaurant queries.
  • hasMenu / Menu / MenuItem: your dishes as entities, with prices. Very few restaurants do this. It exists.
  • priceRange: "cheap eats" and "somewhere nice" are both price questions.
  • acceptsReservations: a yes/no fact usually buried in a contact form.
  • openingHoursSpecification: including the kitchen closing earlier than the bar, which is the single most common thing people get wrong about you.

The hours problem

Worth its own note, because it's the one that costs you actual covers. Your hours exist in four places: your site, Google, Zomato, Instagram. And they disagree. You changed your Sunday timings in March and updated one of them.

An answer engine reading contradictory sources will either pick wrong or hedge. Both cost you the booking. Pick your own site as the source of truth, mark the hours up properly, and fix the others when they drift.

Report Card: free, no signup
Paste your URL. You get a 0-100 answer-engine readability score and a ranked list of what to fix, in about ten seconds. Nothing is stored.
Grade my site free →

Honest scope

I haven't scanned a restaurant sample, so there's no statistic on this page about what percentage of restaurant sites have unreadable menus. I'd be making it up, and this site's entire argument is that you shouldn't trust people who do that. What I'm describing is a mechanism, not a measurement: crawlers don't run JavaScript and can't read pictures of words. Both of those are established.

You can check your own restaurant in about ten seconds with the free Report Card, and see the method I use for published samples in the AI Visibility Index.

Want it fixed rather than explained?
I do this as an AI Visibility Audit. I scan the site, find what a machine can't read, and hand back a prioritised fix list you can give any developer. If you'd rather I did the fixing, that's the day job.
See how that works →

Frequently asked questions

Why doesn't my restaurant show up in AI search?

Most often because your menu, the content that actually defines you, is published as an image, a PDF or a JavaScript widget, none of which an AI crawler reads reliably. If your dishes aren't in HTML text, an answer engine has no idea what you serve.

Can AI read a menu that's a PDF or an image?

An image menu is unreadable: a crawler sees a file reference, not the dishes. A PDF is better than an image but worse than HTML, since it's a separate file that may not be crawled or associated with your restaurant. Plain HTML text is the only reliably readable option.

Why does Zomato get cited instead of my restaurant's website?

Because Zomato publishes your menu, hours, price range and cuisine as structured text across thousands of restaurants, and you publish a photograph of a chalkboard. On the question 'where can I get good Thai food nearby', the aggregator has the answer in readable form and you don't.

What schema should a restaurant use?

Schema.org has a Restaurant type with servesCuisine, priceRange, hasMenu, acceptsReservations and openingHoursSpecification. It lets you state what you serve and when you're open as data rather than leaving a machine to infer it from a photo gallery.

Related

Written by Vishesh Kulshrestha. I'm a marketer who builds. I make free, no-signup tools that measure whether a page is readable by AI answer engines, and I publish the results with the raw numbers attached. If you want your own site looked at properly, grade it free, read the clinic index, or see how to work with me.