Cafés and coffee shops
Oat milk, a free outlet, open before eight. An assistant can only pass on what is written down, and your site is where you write it.
Someone two blocks from the office asks ChatGPT for a café that is open now, makes a flat white with oat milk and will not mind a laptop until three. The answer is a short list of names. Whether yours is on it turns on facts only you can publish: today's hours, the milks, the seats and the door.
A café is named for an attribute, a place and a time: oat milk, near the station, open at eight on Sunday. An assistant answering with web search can confirm each part only from a page that states it. So the menu goes on the site as text, the hours cover every day and holiday, and the seats, wifi, laptop rules and entrance are written down.
How your customers ask
What people type when the coffee has to be close and open
An attribute, a place and a time: how a café question is built
Read the questions above and each one has three parts. An attribute: oat milk, a gluten-free pastry, wifi, a quiet table. A place: near Union Station, in the West End, downtown. A time: now, this afternoon, before eight on Sunday. A café that fails any one of the three has no place in a useful answer.
An AI assistant answering with web search reads pages to check those parts, and a café whose pages never mention one of them has given it nothing to check against. Oat milk only on the chalkboard, Sunday hours taped to the door, a laptop policy in the staff's heads: to anything reading the website, none of them has been said.
The moment is short, too, and what decides it is plain: today's hours, the door to use, a free seat and a plug. Each has one right answer, and it must read the same everywhere it appears.
Eight questions, and where a café's site answers each
The first column is what the person asks, the second is the fact that answers it, and the third is where it belongs on your site. Give each fact one home and link to it from everywhere else, so a change is made once.
| The question | What the café states | Where it goes |
|---|---|---|
| What can I drink? | Every drink with sizes and prices; every milk and any charge for it; decaf, if you make it | A menu page in HTML, not a PDF or a photo of the board |
| What can I eat? | The bakery case and any food, your dietary labels in your own words, and a line sending allergy questions to your staff | The same menu page |
| Are you open? | Hours for each day, Saturday and Sunday written out, when food stops if earlier, holiday dates posted ahead | The visit page and the footer; the same hours on every listing |
| Can I sit and work? | Seats, wifi and how to get on it, outlets, and the laptop policy with its limits | A visit page, in sentences |
| Can I get in? | A step-free entrance or the number of steps, the restroom and whether it is accessible, room for a stroller | The visit page, beside the directions |
| Where is the door? | The address the way your mail arrives, the neighborhood, the cross street, the entrance to use in a mall or a station | The contact page and the homepage's first paragraph |
| How much? | Prices on the menu, and a matching price level on your listings | The menu page, and priceRange in the markup |
| Is anything on? | Tastings, classes or live music, each with a date and a time; past events taken down | An events page |
The markup: CafeOrCoffeeShop, with the menu attached
schema.org has a type for the trade. CafeOrCoffeeShop sits under FoodEstablishment, one of the LocalBusiness subtypes, and schema.org gives its path as Thing, Organization, LocalBusiness, FoodEstablishment, CafeOrCoffeeShop. From FoodEstablishment it inherits servesCuisine, acceptsReservations and hasMenu, which takes the menu as Menu, MenuSection and MenuItem nodes, as text or as a URL. Hours go in OpeningHoursSpecification; a tasting night can have its own Event node.
Google's local business documentation requires a name and an address and recommends the telephone, opening hours, geo coordinates, price range and URL. It recommends aggregateRating only for sites that collect reviews of other businesses, so a café's own block leaves ratings out. Write it in JSON-LD with every value copied from the page; the menu part, with a template, is in the café menu article.
The crawl's figures, and why none of them is a café figure
In our audit of 9,483 small business websites (40 trades, 90 metros in the US, Canada, Europe and the UAE, late August to early September 2026), a crawler that ran no JavaScript read each site's homepage, contact page and about page. The audit publishes no figure for cafés on their own; every number below is for the whole sample.
2.1% of the sites kept their real content, the price list or the service menu, in a PDF, and 3.0% served their text only through JavaScript, which a crawler that runs no scripts receives as an empty page. A café menu kept as a PDF, a photo of the board or an ordering widget is in the same position.
On their own homepage, contact page and about page, 43.1% of the sites were inconsistent about who and where they are; more than one phone number appeared on 36.9% of them, and 34.1% gave no postal address a machine could parse. For a café, the address is the answer to "near me".
On 64.7% of the sites a crawler found no review signal it could read, and 61.5% had no question-and-answer content of any kind. On a café's site, that second gap is the unanswered wifi question and the time the kitchen stops.
When we put one buyer question per business to Claude with web retrieval on, for 9,240 of them, 14.9% were named: one assistant, one question and one day, across every trade, so a direction rather than a café rate.
Start with the crawler's way in, end with a first reading
- Make sure the crawlers get in. 7.2% of the audited sites served a crawler a challenge page instead of the site; the free crawler access check reads your robots.txt the way each AI crawler would.
- Put the menu on a page as text, with the milks, the bakery case, prices and your own dietary labels, as in a café menu machines can read.
- Write the hours for every day and every holiday in one place on the site, then make every listing match; reviews and listings for cafés has the places to check.
- Answer the working questions in sentences: wifi, outlets, laptop hours, noise, how long people may stay; the laptop article has two answer blocks to adapt.
- Describe the way in: the cross street, the door, the step or the step-free entrance, the restroom.
- Add CafeOrCoffeeShop markup with hasMenu and OpeningHoursSpecification, every value matching the page.
- Ask each assistant about your café by name and check every fact, with the fact check for your café; then take a first reading with a fixed panel, as in measuring a café's AI visibility and our methodology.
Go deeper
Five articles, one question each
Fundamentals
AI visibility for cafés: what being named means, and how to count it
Measurement & Reporting
Ask the AI about your café by name, then check every fact it gives
Technical & Structure
A café menu machines can read: milks, pastries and the seasonal board
Authority & Mentions
Café reviews and listings: the drink people name, and one set of hours
Content & Answer Pages
Laptop-friendly café: answering the wifi, outlet and time-limit questions
Four objections from behind the counter
Our specials and hours are on Instagram. Why isn't that enough?
A post is a photo and a caption on a platform's page, and last Tuesday's caption says nothing about today. Keep posting, but put the standing menu, each day's hours and the holiday dates on your own site as text, with the day's specials as a dated line on the menu page: the one page where every word is yours to change.
Our map listing is complete. Do we still need a website?
A listing is a set of fields on someone else's page, with little room to say that laptops are welcome until noon, that the side door on the lane is step-free, or which pastries are vegan. Those need a page of your own, and its hours and the listing's have to match, character for character.
We are a takeout window with a few stools. Does any of this apply?
Yes, and there is less of it. People still ask when a takeout window opens, which milks it has and where exactly it is. You have no laptop policy to write, and saying so plainly (takeout only, a few stools, no wifi) is itself an answer for someone deciding where to sit for an hour.
We are one location of a chain. Isn't the brand's site our site?
Then the location page on the brand's site is your page, and it needs this door's facts: its hours, holiday dates, entrance and seats. If it cannot carry them, the map listing and the location page must at least agree, and the gap is worth raising with whoever runs the brand's site.