Fade Digital
Home

Services

Get Found by AI Paid Client Acquisition Local Dominance Content & Authority Website & Conversion

Industries · GEO Programs

Optometrists Chiropractors Dentists Law Firms Real Estate Med Spas Physiotherapy Accountants Home Services

Industries · Full-Stack Marketing

Healthcare Dental & Clinics Legal Real Estate
Results

Playbooks

AI Visibility Tracking AI Prompting Google Ads + Claude Claude Design Claude SEO Agent View All Playbooks

Company

About Us GEO Insights Knowledge Base Contact Client Portal

Aug 10, 2026

We Tested 36 Toronto Business Websites for AI Agents. 65% Can't Say When They're Open.

We audited 36 Toronto service businesses across 9 industries. Almost all were crawlable — but 65% had no machine-readable hours and 44% no business schema.

We Tested 36 Toronto Business Websites for AI Agents. 65% Can't Say When They're Open.

We expected to find broken websites. We found something more awkward: websites that work perfectly for humans and say almost nothing to a machine.

We audited 36 Toronto-area service business websites across nine industries — optometrists, chiropractors, dentists, law firms, real estate teams, med spas, physiotherapy clinics, CPA firms and home services trades — scoring each on whether an AI agent could actually extract what it needs to recommend or book them.

Going in, the assumption was that JavaScript-heavy sites would lock agents out, and that businesses would be accidentally blocking AI crawlers. Neither turned out to be the main problem.

Not one reachable site hid its content behind JavaScript. Only one blocked AI crawlers. But 65% couldn't tell a machine what time they open, and 44% had no business schema at all.

The doors are open. There's just nothing written down inside.

65%
Have no machine-readable opening hours
44%
Have no LocalBusiness schema
3%
Actually block AI crawlers

Why test websites against AI agents at all?

Because agents now visit websites on customers' behalf, and they need different things than people do. HUMAN Security observed a 6,900% increase in requests from AI agents and agentic browsers since July 2025, and over the Black Friday to Cyber Monday window agent traffic to e-commerce sites rose 144.7% against the preceding five days.

The consumer behaviour behind it is no longer niche either. OpenAI reported ChatGPT passed 800 million weekly users in October 2025, and Google says AI Overviews reach more than 1.5 billion people per month (Alphabet Q1 2025 earnings).

When someone asks an assistant "is there a physiotherapist near Liberty Village open right now who treats vertigo?", something has to read your website and answer. This study measures whether it can.

How we tested (and what we deliberately didn't do)

We scored each site on six checks weighted toward whether an agent can see the information at all. We never submitted a form. Testing real booking flows end to end would create phantom appointments and waste staff time at businesses that never agreed to take part, so we only read publicly available pages — exactly what a search crawler does.

Check Points Why it matters
AI crawlers not blocked in robots.txt 20 A blocked crawler ends the conversation before it starts
Content present without JavaScript 20 Agents frequently read raw HTML and never run JS
LocalBusiness schema present 15 Tells a machine what kind of business this is
Booking cue in raw HTML 15 "Book an appointment" must exist before JS runs
Machine-readable opening hours 10 "Are they open now?" is the most common agent question
Structured phone and address 10 Required to act on a recommendation
Booking not JavaScript-gated 10 A link that appears only after render is invisible

Four businesses per vertical, thirty-six total, of which 34 responded successfully. Two returned an error to our declared bot and are excluded from percentages — a failure mode worth its own note below.

Two honest limits. This is a small sample, so treat it as a signal rather than a census. And these businesses were selected from live search results, which means they're the ones already winning at traditional SEO — if anything, that biases the sample toward better-built sites than the market average. The gaps below are the optimistic version.

The instrument is open source. It ships with a self-test so you can verify it discriminates correctly before trusting a single number, and you can run it against your own site: scripts/agent-readiness-audit.mjs.

What actually failed

Average score across reachable sites was 80/100, and 19 of 34 (56%) scored 70 or better. Eleven sites scored a flawless 100. This is not a market of broken websites.

But the failures cluster hard in one place:

Failure Sites Share
No machine-readable opening hours 22 65%
No LocalBusiness schema 15 44%
Blocks AI crawlers in robots.txt 1 3%
No booking cue without JavaScript 1 3%
Content invisible without JavaScript 0 0%
Booking visible only after JavaScript 0 0%

Read the bottom half of that table first, because it's the good news and almost nobody expects it. Zero reachable sites hid their content behind JavaScript. Zero gated their booking link behind a render. Only one site in thirty-four blocked AI crawlers in robots.txt.

The "your React site is invisible to AI" warning that circulates in marketing content did not show up in this sample at all. Toronto service businesses are, overwhelmingly, running server-rendered sites that a machine can fetch and read.

They just haven't labelled anything.

Why does machine-readable opening hours matter so much?

Because "are they open?" is the question that converts, and text on a page doesn't reliably answer it. A human reads "Mon–Fri 9–5" in your footer and understands instantly. A model has to infer which timezone, whether that's still current, whether holidays apply, and whether the hours in your footer contradict the ones on your contact page.

Structured hours remove the guess. An openingHoursSpecification block states opening and closing times per day in a format built for machines. When an engine is choosing between a business it can verify is open and one it would have to guess about, at 8pm on a Tuesday, it recommends the one it can verify.

Twenty-two of thirty-four businesses we tested cannot answer that question in a machine-readable way. For the home services trades — where "emergency plumber open now" is the entire game — that gap is the most expensive line in this report.

Which industries were ready, and which weren't?

Law firms and real estate teams were best prepared; home services was the clear laggard, and the only vertical where not a single site cleared 70.

Vertical Sites Avg score Blocks AI crawlers No business schema
Law firms 4 91/100 0/4 1/4
Real estate 4 90/100 0/4 0/4
Physiotherapy 4 86/100 0/4 1/4
Dentists 4 83/100 0/4 2/4
Accountants 4 83/100 0/4 2/4
Chiropractors 4 80/100 0/4 2/4
Med spas 3 78/100 0/3 1/3
Optometrists 3 67/100 1/3 2/3
Home services 4 61/100 0/4 4/4

Home services was the only vertical where every single site lacked business schema — four out of four — and no site scored above 65. For a trade where the highest-intent query in local search is a homeowner with a burst pipe asking an assistant who can come now, that is a structural disadvantage against any competitor who fixes it.

Real estate was the standout in the other direction: zero sites missing schema, and every site scored 80 or above. Our read is that agent and brokerage website platforms ship structured data by default, which quietly lifts the whole vertical. The lesson isn't that realtors are more sophisticated — it's that the platform did the work for them.

The pattern across the whole sample is polarization, not mediocrity. Scores clustered at either 100 or 65, with very little in between. Businesses either have a schema layer or they don't. There's no partial credit in practice, and no long tail of nearly-there sites.

What about the two sites that didn't respond?

Two of the thirty-six returned an error rather than a page when a declared bot requested them. We excluded both from the percentages rather than score them, because we can't distinguish a deliberate block from a transient outage without more testing.

It's worth flagging as a possibility, though: a server that refuses a self-identified crawler is the most complete failure available. Every other problem in this report degrades your chances. That one removes you from consideration entirely, and it produces no symptom a business owner would ever notice — rankings hold, analytics look normal, and the site loads fine in a browser.

If you run a site behind an aggressive WAF or bot-protection rule, that's worth verifying deliberately.

Does this contradict the warnings about AI crawler blocking?

Partly, and we'd rather say so than quietly drop it. We've written about how businesses accidentally block AI crawlers and about Cloudflare's September 2026 default changes. In this sample, that specific failure was rare — one site in thirty-four.

The honest conclusion is that crawler blocking is a severe but uncommon problem, while missing structured data is a moderate but near-universal one. Both are worth fixing. If you only have budget for one, the data here says start with schema — it affects roughly half of all businesses, versus roughly one in thirty.

That's a finding that argues against a story we've told before, which is exactly why it's worth publishing.

How do I check my own site?

Four checks, about ten minutes, no tools required.

  1. Test your structured data. Paste your homepage into Google's Rich Results Test and confirm you have a LocalBusiness block — or an industry subtype like Dentist, Physician, LegalService, Plumber — carrying hours, phone and address. This is where 44% of the sample failed.
  2. Check your hours specifically. Text in a footer doesn't count. You're looking for openingHoursSpecification in the structured data. This is where 65% failed.
  3. View source on your homepage and search for the word "book". If it isn't in the raw HTML, an agent may never see it.
  4. Read your robots.txt at yourdomain.com/robots.txt for disallow rules naming GPTBot, ClaudeBot, PerplexityBot or Google-Extended.

The fixes are unglamorous and cheap. Adding a complete LocalBusiness block with hours is typically a same-day change for a developer, and it moved sites in this sample from 65 to 100.

Frequently asked questions

Did you actually book appointments at these businesses?

No. We only read publicly available pages, exactly as a search crawler does. No form was submitted and no appointment was created at any business. Testing real booking flows end to end would generate phantom appointments and waste staff time at businesses that never consented to take part in a study, which isn't a defensible way to gather data.

Why won't you name the businesses you tested?

Because the finding is a market-wide pattern, not a list of offenders. Nearly every site we tested was competently built to a brief that never mentioned AI agents — that's an industry blind spot, not negligence by any individual business. Naming them would add nothing to the analysis and would punish businesses for a gap their web developer didn't know existed.

Does a low score mean the website is bad?

No, and this is the most common misreading. Several low-scoring sites are well-designed, fast, and convert human visitors perfectly well. They were built before machine readability mattered. The score measures one narrow dimension: whether an automated agent can extract the facts it needs. A beautiful site can score 65 and a plain one can score 100.

Will fixing schema get my business recommended by ChatGPT?

It makes you eligible, which is not the same as guaranteed. Machine readability is the entry requirement — engines can't recommend what they can't verify. Which businesses actually get named among the readable ones is decided by reviews, third-party citations and entity consistency. Our methodology covers that full sequence.

Is a sample of 36 big enough to draw conclusions from?

It's big enough to show a pattern and too small to be a census, which is why we've published the per-site scores and the instrument itself. Notably, these businesses were drawn from live search results, so they're already winning at traditional SEO. A random sample of Toronto businesses would likely look worse, not better.

How long does it take to fix these gaps?

Adding a complete LocalBusiness schema block with hours, phone and address is usually a few hours of developer time and the single highest-return fix available. Entity consistency across directories takes longer — weeks, not days. Engines then need a crawl cycle to pick up changes, so expect 30 to 90 days before AI answers reflect the work.


About the author: Lorne Fade is the founder of Fade Digital, a Toronto Generative Engine Optimization agency. He has 22+ years in digital marketing and is also COO of VR Vision. This study was run in August 2026 using an open-source instrument published with the article.

Want to know your own number — and what AI engines actually say about you? The AI Visibility Audit tests your business across ChatGPT, Claude, Perplexity, Gemini, Grok and Copilot and hands you a prioritized fix list. $499, and it's yours to keep whether or not you continue.

Working in one of these industries? See the specifics for home services, optometrists, dentists and law firms.

GEOAI SearchAI AgentsOriginal ResearchToronto
Lorne Fade
Lorne Fade

Founder & CEO, Fade Digital

Lorne runs an AI-native digital marketing agency. He writes about generative engine optimization, AI search citation mechanics, and entity architecture — the infrastructure layer that determines whether AI recommends your brand or your competitor's.

Free · No credit card · Results in 24 hrs

Is AI recommending your competitors instead of you?

Get your AI Visibility Score across ChatGPT, Gemini, and Claude — free scan, instant results, no fluff. See exactly where you're invisible and what to fix first.

Back to Intelligence Hub