We tested 36 Toronto business websites to see whether an AI agent could answer basic questions about them — when they open, what they charge, how to book. Twenty-three could not reliably say when they were open.
Not "had unusual hours." Could not communicate them to a machine at all.
That study is published in full with its method. This handbook is the practical companion: what an AI agent needs from your site, what typically breaks, and how to check your own in an afternoon. It is written for owner-operators, not developers, and the parts that need a developer are marked.
What an AI agent is actually doing
When someone asks an assistant "is there a physio clinic near Ossington open Saturday?", the engine is not reading your website the way a person does. It is trying to answer three questions:
- Does this business exist, and is it what it claims to be? Resolved by cross-referencing your site against Google Business Profile, Bing Places, Apple Business Connect, Yelp and industry directories. Disagreement between sources reduces confidence.
- What specifically does it offer? Resolved from structured data if present, and from guessing at your page text if not.
- Can I state a fact about it without being wrong? Hours, address, phone, services. If the answer is buried in an image, a PDF, or a JavaScript widget, the engine has nothing to state.
Most local sites fail at step three while passing steps one and two — which is why "we rank fine on Google" and "we never get mentioned by ChatGPT" are both true at once.
The nine checks
Work through these in order. The first four cost nothing and fix most of the problem.
1. Can a machine read your opening hours?
This is the single most common failure — 65% of the sites we tested.
Hours in an image, hours in a JavaScript accordion, hours only on your Google listing and not the site, hours written as "open late Thursdays" — all invisible.
The fix. Plain text hours on the page, plus openingHoursSpecification in your schema. Both. The text is for humans, the schema is for machines, and neither substitutes for the other.
"openingHoursSpecification": [
{ "@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00", "closes": "17:00" },
{ "@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday", "opens": "10:00", "closes": "14:00" }
]
Add specialOpeningHoursSpecification for holidays. "Are they open on Family Day?" is a question people genuinely ask assistants, and almost nobody has answered it.
2. Is your name, address and phone identical everywhere?
Engines build confidence from agreement. "Suite 200" on your site and "#200" on Google and "Unit 200" on Yelp reads as three possible businesses.
The fix. Pick one exact format. Copy it character-for-character into your website footer, contact page, Google Business Profile, Bing Places, Apple Business Connect, Yelp and every industry directory you appear in. Including punctuation.
This is tedious and it is the highest-return hour you will spend.
3. Have you claimed the listings you did not create?
Most businesses have profiles they never made — generated from data feeds years ago, still carrying an old address or a phone number that rings nowhere.
Claim, at minimum: Google Business Profile, Bing Places, Apple Business Connect, Yelp. Then whatever is standard in your industry — healthcare directories for clinics, association listings for professional services.
A caveat worth stating plainly: we have seen confident claims that one specific directory supplies "roughly 70% of the local business data ChatGPT uses." We have not verified that figure and would not repeat it as fact. The defensible version is simpler — claim the major listings, keep them consistent, and do not bet your strategy on any single source's alleged share.
4. Can AI crawlers actually reach your site?
If they are blocked, nothing else matters.
Check yourdomain.com/robots.txt for GPTBot, OAI-SearchBot, ChatGPT-User, PerplexityBot, ClaudeBot, Google-Extended, CCBot. If any is disallowed and you did not decide that deliberately, you have opted out of AI answers.
Some hosts and CDNs block these at the edge regardless of robots.txt. Worth checking directly rather than assuming.
5. Does your site have LocalBusiness schema?
The base layer. Use the most specific type available — Dentist, LegalService, Physiotherapy, HVACBusiness — rather than generic LocalBusiness. Specificity is what lets an engine match you to a query.
Minimum viable node: name, address, phone, URL, opening hours, geo coordinates, price range, image, and sameAs linking to every profile you claimed in step 3.
6. Is each service its own page, with its own answer?
A services page listing twelve things tells an engine you do twelve things vaguely. Twelve pages, each answering the question a customer actually asks, tells it what you do specifically.
Write the question as the heading and answer it in the first sentence. Not "Invisalign Services" but "How much does Invisalign cost in Etobicoke?" — with the answer, or an honest range, immediately below.
7. Do your reviews say what you did?
Star ratings are a filter. Review text is the data.
"Great service, five stars" is worthless to an engine. "Fixed our furnace on a Sunday in January, took two hours" tells it exactly which job to send you.
The fix. Ask. When a customer is happy, ask them to mention the specific service. That single behavioural change outperforms most technical work on this list.
8. Is anything important trapped in an image or PDF?
Price lists as JPEGs. Menus as PDFs. Hours in the header graphic. Service areas on a map image with no text equivalent.
The fix. Every fact that matters must exist as selectable text somewhere on the page. Keep the image if you like the design — just make sure the information also exists in a form a machine can read.
9. Does your site say where you actually serve?
"Serving the GTA" is vague. Engines answer questions by municipality and neighbourhood.
The fix. Name the areas explicitly — Etobicoke, North York, Scarborough, Mississauga, Vaughan, Markham, whichever are genuinely yours — in body text and in areaServed. Do not list places you do not serve; an engine that sends someone 40km to a business that will not take them has learned to stop citing you.
How to test your own site in an afternoon
Step one — ask the engines. Open ChatGPT, Perplexity, Gemini and Claude in fresh sessions, logged out or in temporary chats. Ask each the questions a customer would ask: "best [your service] in [your area]," "is there a [your business type] open Saturday near [landmark]." Write down who gets named. If it is not you, write down who is.
Step two — ask about yourself directly. "Tell me about [your business name]." Check every fact. Wrong hours, wrong address, services you dropped years ago, or a confident description of a business that is not yours — all more urgent than being absent, because they actively misinform someone who was already looking for you.
Step three — check the plumbing. View source and search for application/ld+json. Load /robots.txt. Open your site with JavaScript disabled and see what survives.
Step four — check agreement. Open your Google, Bing, Apple and Yelp listings side by side. Any field that differs is a field an engine cannot confirm.
Repeat monthly. The numbers move slowly and you will not notice progress without a baseline.
What we found by industry
Across the 36 sites, the pattern was not what most people assume. The businesses with the most polished websites were not the most readable. Several of the worst performers had recent, expensive redesigns — heavy on animation, light on text, with key information rendered client-side or baked into images.
The best performers were often plain. Text-based hours in the footer. A contact page with a real address. Service pages that answered questions in sentences. Unglamorous, and legible to a machine.
If you are choosing between a redesign and a schema project, the schema project will do more for AI visibility. The redesign may actively hurt it.
Frequently asked questions
How long does this take?
The listings and consistency work is one focused afternoon for most single-location businesses. Schema is a few hours for someone comfortable with JSON-LD. Reviews compound over months. Most businesses see measurable change 30–90 days after the listings sync.
Will this get me recommended by ChatGPT?
It makes you eligible. Whether you are named depends on competition in your category and area, and on review depth relative to nearby businesses. Anyone guaranteeing placement is selling something — there is no ad slot and no ranking algorithm to buy into.
Do I need an agency?
Steps 1–4 and 7, which are most of the benefit, need no agency and no developer. Steps 5, 6 and 8 need someone comfortable with markup. Plenty of businesses do all of it themselves.
Is 36 sites a big enough sample?
For a headline percentage, no — treat 65% as directional rather than precise. For identifying failure modes, yes: the same gaps recurred so consistently that a larger sample would mostly confirm what a smaller one already showed. The method and limitations are in the study itself.
My site is fine on Google. Why would AI be different?
Google ranks pages. Answer engines verify businesses. Google can rank you on relevance and links while an engine declines to name you because it cannot confirm your hours. The two systems are asking different questions about you.
What if an AI describes my business wrongly?
Fix the source. Wrong facts in an answer usually trace to an unclaimed listing, an outdated directory entry, or a contradiction between sources. Correct the underlying data and the answers update as the engines refresh — typically weeks, not days.
The short version
Three things, in order:
- Make your hours machine-readable. 65% of the sites we tested could not do this. It is the most common failure and among the easiest to fix.
- Make every listing agree, character for character. Free, tedious, highest return per hour.
- Ask customers to name the service in their review. No technical work, and it is what engines weight most when choosing between similar businesses.
Everything else on this page is worth doing. Those three are worth doing first.
Fade Digital is a Toronto AI SEO agency working with clinics, firms and home service businesses across the GTA. The 36-site study behind this handbook — including how sites were selected and what we deliberately did not test — is published in full.