Agent readiness for local businesses
People already ask AI assistants "is there a good Thai place open near me right now?" or "how much is a men's haircut at Birchwood Barbers?". For a restaurant, salon, clinic or tradesperson, the answer depends on a few facts: hours, location, prices and how to book. This guide shows how to make those facts easy for AI agents to find, read and trust.
What people ask about local businesses
Questions about local businesses are short and practical. They're about whether you can serve someone, soon, at a price they'll accept:
- When "Is it open on Sunday evening?"
- Where "Is there parking? Which entrance?"
- How much "What does a gel manicure cost?"
- Can I book "Get me a table for four on Friday at 7"
An assistant answering these will read your website, your listings on maps and directories, and whatever else it can find. If the facts are clear, in text, and agree with each other, you're easy to recommend. If your hours are in a photo of the door sign and your menu is a scanned PDF, the assistant has to guess or move on to someone else.
Hours, address and phone, in text and in data
Put your address, phone number and opening hours on your website as plain text, ideally in the footer of every page and on a contact page. Then describe the same facts in structured data, so agents don't have to work them out from the layout.
schema.org has a LocalBusiness type, with more specific types for many kinds of business, such as Restaurant, HairSalon, Dentist or Plumber. Google's local business structured data documentation shows how to mark up address, phone, hours, price range and, for restaurants, a menu link and cuisine. A short example for a fictional café:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CafeOrCoffeeShop",
"name": "Northwind Coffee, Harbor Street",
"url": "https://northwind.example/harbor-street",
"telephone": "+1-555-0142",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Harbor Street",
"addressLocality": "Portland",
"postalCode": "97201",
"addressCountry": "US"
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "07:00",
"closes": "17:00"
}],
"menu": "https://northwind.example/harbor-street/menu"
}
</script>
Two details from Google's documentation are easy to miss. Holiday or seasonal hours can be given with validFrom and validThrough dates. And a day you're closed is shown by setting both opens and closes to 00:00. If you have several locations, give each its own page and its own block. Our guide to Organization and LocalBusiness data covers the full set of properties and the rules that keep it trustworthy.
Keep your Business Profile and website in step
For many local businesses, the Google Business Profile gets more attention than the website. Google's own advice is that businesses with complete and accurate information are more likely to show up in local results, and it asks for your full address, hours (including special hours), category and details such as parking.
AI assistants may read your profile, your website and directory listings. When they disagree, an assistant has to pick one, and a person who turns up to a closed door doesn't care which was wrong. Treat one place as the source of truth, and update everything else from it on the same day.
| Fact | Where it should match | Common way it drifts |
|---|---|---|
| Opening hours | Website text, structured data, Business Profile | Holiday hours changed on the profile only |
| Phone number | Website, structured data, profile, booking site | An old number left in the footer after a switch |
| Address and entrance | Website, structured data, profile | A move updated on the map but not on the contact page |
| Services and prices | Website price list, booking site | Prices raised in the booking tool, not on the website |
Out of step
- Website: open until 6pm
- Business Profile: open until 8pm
- Booking site: last slot 5:30pm
In step
- One source of truth for hours
- Every listing updated the same day
- Special hours added before the holiday
Menus and price lists agents can read
Menus and price lists are where local sites most often lose agents. A beautifully designed menu saved as an image says nothing to an agent that reads text. A PDF is better than an image, but still harder to read and quote than a web page. See PDFs and documents AI agents can read.
- Publish the menu or price list as a web page, with each item and its price as text. Keep the PDF as a download if you like.
- Be specific about what a price covers. "Women's cut and blow-dry, from $65, longer hair may cost more" lets an agent answer honestly. "Prices vary" doesn't.
- Say what's included and how long it takes for services: a 45-minute consultation, a call-out fee that covers the first hour.
- Date anything seasonal, such as a set menu or a winter boiler service price, so old prices aren't quoted next year.
For more on making prices readable, see prices AI agents can read.
Booking: online, third-party or by phone
How people book you decides how far an agent can go for them:
- Your own booking form Labeled fields, clear times, the agent can fill it in
- A third-party booking tool Often embedded in a frame; works if the tool is agent-friendly
- Booking by phone only The agent can find the number and tell the person to call
- Your own form: label every field, show available times as text or real buttons, and explain errors in words. Leave deposits and payment to the person. See sign-up, booking and lead forms AI agents can finish.
- A booking platform: many local businesses use one, often embedded in a frame on their own site. Link to your booking page with an ordinary link as well as embedding it, and ask your provider whether AI agents can use its booking flow. See iframes and embedded widgets.
- Phone only: that's fine, but say so. "Appointments by phone only: call 555-0142, Monday to Friday, 9 to 5" tells an agent exactly what to tell the person. Put the number in text, with a
tel:link, not only in an image.
Whichever you use, give people a reason not to fail: say how far ahead to book, whether you take walk-ins, and what happens if they're late.
What AgentScore checks for a local business
Most AgentScore checks apply to any website, so they apply to yours: whether robots.txt and bot protection let AI assistants in, whether your content loads without JavaScript, whether your page title and headings are clear, whether buttons and links have names, and whether a pop-up blocks the page. The structured data check passes when your home page has schema.org JSON-LD in its HTML, so a LocalBusiness block there counts.
AgentScore was built with stores and software sites in mind. Its store and checkout checks only run when it finds product pages or a cart, and are marked "not tested" otherwise, so they never count against you. If your home page links to a page called "Prices" or "Pricing", or to an address such as /prices, and AgentScore finds no products or cart, it classes your site as a software site and treats that page as its pricing page. It then checks that AI agents can open it, that its prices are in the HTML and that it's linked from the home page, and it looks for a sign-up, booking or buy button. It recognizes booking words such as "Book now", "Reserve" and "Make a reservation" in the languages it reads, so a salon price list with a clear "Book now" button counts. What matters is that your booking button is a real button with clear text, not an icon or a styled box. AgentScore doesn't test booking flows. Ghost Agents can: describe the journey, such as "book a haircut for Saturday morning", and real AI agents try it, stop before anything is paid, and replay each step.
Where to start
- Address, phone and hours as text on every page
- A LocalBusiness block (or a more specific type) in the page HTML
- Business Profile and website say the same thing, including holiday hours
- Menu or price list as a web page, not only an image or PDF
- The website says how to book: form, booking site or phone
Start with the facts customers ask about most: hours and how to book. Check that your website and Business Profile agree, fix the one that's wrong, then run a free AgentScore scan to see whether AI assistants can get in and read the result. For a wider introduction, see what is agent readiness?