Guides

Is your café ready for AI assistants? I tested 11 Dublin café websites

Mostly not yet. On 26 September 2026 I read 11 Dublin café websites the way ChatGPT's crawler reads a page, without JavaScript. None had all four basics: five had structured data, three machine-readable hours, two a readable menu, three an llms.txt. The six checks below tell you where your own site stands in ten minutes.

Disclosure first: I build websites for Dublin cafés, and I build them to pass the four checks below. Read the count with that in mind. The method is at the foot of the page so you can repeat it.

Check your own site in ten minutes

Or let a program do the first pass: our free check reads your address the same way and scores the four basics in a few seconds, storing nothing. The six steps below are the long way, and they cover your Google listing too.

No tools to buy and nothing to install. A laptop is easier than a phone for the first three.

  1. See what a crawler sees. Open your site in Chrome or Edge, then press Ctrl+U (Cmd+Option+U on a Mac) to see the page source. Press Ctrl+F and search for your Sunday closing time, then for the price of a flat white. If neither is there, a crawler that does not run JavaScript cannot see them either.
  2. Check the structured data. Paste your address into the Schema Markup Validator. You want to see CafeOrCoffeeShop, Restaurant or LocalBusiness, with your address and openingHoursSpecification under it. If all it finds is WebSite or Organization, the data describes your website, not your café.
  3. Check the menu. Go to your menu page and repeat step 1. If the prices are not in the source, the menu is a PDF, a photo or built by JavaScript. Put it on the page as text; keep the PDF as well if you like it.
  4. Check for an llms.txt. Type your address with /llms.txt on the end. A page of plain text about your café is a pass. A "not found" page, or a page about something else, is not.
  5. Ask an assistant. In ChatGPT with search switched on, ask "What time does [your café], [your area] close on Saturday, and do they do oat milk?" Look at the answer and at where it says it got it. If it quotes an old directory or your Instagram from last year, that is what your customers are being told.
  6. Check your Google listing's hours. Your website is one source among several, so check the listing at the same time. Bank holiday hours are the easy ones to forget.

What an AI assistant needs from a café website

When someone asks ChatGPT, Claude, Gemini or Perplexity "is there a café near Stoneybatter open now that does oat milk", and the assistant goes and reads your site, it wants four things it can find there without guessing.

  1. Structured data. A small block of code in the page, in the schema.org vocabulary, that says in machine terms: this is a café, this is its address, this is its phone number.
  2. Opening hours in that data. Hours by day, written so a program can work out whether you are open at 4pm on a Sunday. Hours in a photo or a sentence on the page can be misread; hours in the data cannot.
  3. A menu as text. Items and prices in the page itself. A PDF or a photo of the chalkboard is readable to a person and much harder for a crawler.
  4. An llms.txt. A short plain-text file at yoursite.ie/llms.txt that sums up the site for a language model. It is a proposal from September 2024, not a standard, so treat it as the least important of the four. It costs nothing to add.

Underneath all four sits a fifth thing: whether there is anything on the page at all without JavaScript. Vercel and MERJ's study of AI crawlers (December 2024) found that the crawlers behind ChatGPT and Claude do not run JavaScript, while Google's Gemini and Apple's do. A site that builds itself in the browser can look complete to you and blank to them.

What to hand whoever looks after your site

If someone else built your site, send them this page. The two pieces they need are small. The first goes inside the page's <head>, with your own details in it:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "CafeOrCoffeeShop",
  "name": "Your Café",
  "url": "https://yourcafe.ie/",
  "telephone": "+353 1 000 0000",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1 Main Street",
    "addressLocality": "Dublin",
    "postalCode": "D07 XXXX",
    "addressCountry": "IE"
  },
  "openingHoursSpecification": [
    { "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "07:30", "closes": "17:00" },
    { "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday","Sunday"],
      "opens": "09:00", "closes": "16:00" }
  ],
  "hasMenu": "https://yourcafe.ie/menu"
}
</script>

The second is a text file saved as llms.txt at the top of the site:

# Your Café

> An independent café on Main Street, Dublin 7. Coffee, pastries and lunch.

- Open Monday to Friday 07:30 to 17:00, Saturday and Sunday 09:00 to 16:00.
- Oat, soya and almond milk. Vegan options every day.
- Phone: +353 1 000 0000

## Pages

- [Menu](https://yourcafe.ie/menu): the full menu with prices.
- [Find us](https://yourcafe.ie/contact): address, map and phone.

Google documents the first in its local business structured data guide, which is worth sending along with it. Whatever goes in either file has to match the shop. Hours in the data that differ from the hours on the door are worse than no hours at all.

The count

The sites came from my count of 77 independent Dublin cafés on 20 September: every one whose Google listing points at a site of its own (less one that points at a QR-code link page, which is not a website), plus one whose listing is empty but whose café has a page on its building's website. That made 15 sites. Four could not be reached on 26 September (two addresses no longer resolve, one returns "not found", one did not answer), which leaves 11.

What the site has, read without JavaScriptSites
Structured data of any kind5 of 11
Opening hours in that data3 of 11
A menu readable as text2 of 11
An llms.txt3 of 11
All four0 of 11
Home page nearly blank without JavaScript3 of 11

The aggregate as a CSV.

What stood out

The menu is the biggest gap. Seven of the 11 had no menu a crawler could reach without JavaScript: not on the home page, and no link to one. One linked to a PDF and one to a picture of the menu. Of the four checks, it is the one the fewest sites passed.

Structured data mostly describes the website, not the café. Of the five sites that had any, two described only the website or the company behind it, with no opening hours and no café address in it. Three described the café as a business with its hours.

None of the llms.txt files reads as written by the café. Each of the three is a title, a one-line summary and a list of the site's pages, and one of them is about a different business from the café altogether.

The best site missed one thing. One café had structured data with its hours, its menu as data, and links to order and to book. It had no llms.txt, so it met three of the four.

Three home pages were nearly empty to a crawler. Under 300 characters of text without JavaScript, which is a name and a menu bar. They looked complete in a normal browser.

Does any of this matter yet?

I have not found a count of how many Irish café customers ask an assistant first, so I will not guess one. What is changing is who does the looking. When the thing reading your hours is a program acting for a customer, it takes whatever it finds and does not ring to check. The cheap protection is to make sure what it finds is right: the checks above take ten minutes, and the fixes are an afternoon for whoever built your site. For the wider question of whether a café needs a site at all, that has its own guide, and so does what one costs in Ireland.

The method, so you can repeat it or dispute it

One request per site on 26 September 2026, with a plain user agent and no JavaScript, following redirects, then these rules and no others:

  • Structured data: any JSON-LD block or schema.org microdata on the home page.
  • Hours: openingHours or openingHoursSpecification anywhere in that data, on the home page or the menu page.
  • Menu: the home page, or the first link whose text or address says "menu", counts if its text carries at least five prices, or if it has a schema.org Menu. A PDF or a picture does not count.
  • llms.txt: the file answers with a 200 and plain text, not a web page.
  • Nearly blank: under 300 characters of text on the home page once scripts and styles are removed.

The limits. Eleven sites is a small number; it is every Dublin café site in my count that answered on the day, not a sample of Ireland, and nobody should quote it as a national figure. A menu held on a separate ordering site that the home page does not link to as "menu" counts as not found. And I am not publishing which café is which, because none of them asked to be written about; the aggregate is the whole of what goes out.

You are welcome to use the numbers. Cite them as Cupán Studio, Dublin café websites read as an AI crawler reads them, 11 sites, 26 September 2026, and link to this page.

Questions

How do I know if ChatGPT can read my café's website?
Open the page source (Ctrl+U in Chrome) and search it for your opening hours and a price. ChatGPT's crawler does not run JavaScript, so if they are not in the source, it cannot see them. Then ask ChatGPT about your café with search on and see where its answer comes from.
What is an llms.txt file and does my café need one?
A plain-text summary of your site for the AI models behind assistants like ChatGPT, at /llms.txt. It is a 2024 proposal, not a standard. It takes ten minutes to write and costs nothing, so it is worth having, but it is the least important of the four checks.
What is structured data?
A block of code in the page that states facts in a fixed vocabulary (schema.org) that programs understand: that you are a café, your address, your hours, your menu. Customers never see it. Search engines and assistants read it.
Is a PDF menu bad for AI?
It is harder for a crawler than a menu written on the page, and a photo of a menu is harder again. Keep the PDF if customers like printing it, and put the same menu on a page as text as well.
My site was built on Wix, Squarespace or GoDaddy. Am I covered?
Partly, and it varies. In this count, some of the structured data and all three llms.txt files follow a generated pattern, and still only two sites of 11 had a menu a crawler could read. Run the checklist; it takes ten minutes.

If you want a café website built this way, that is what I do.