When someone in Etobicoke at 11pm asks ChatGPT "who's a good plumber for emergency drain cleaning near me," the model isn't searching live. It's pulling from the citation graph it built from indexed pages and structured data, and it's picking the contractor who showed up with the cleanest schema, the most service-area depth, and the most consistent local signals. AEO is how you get into that pull. The studio's own site gets 32% of its traffic from AI engines, more than 11,618 visits in a single week from ChatGPT, Perplexity, and AI Overviews, so this is the playbook we run on ourselves first. Background reading on the discipline lives in what is answer engine optimization.
The four layers of AEO for a trade contractor
Layer 1: Schema
The contractor schema stack is tighter than most industries. The parent type is LocalBusiness, but the sub-type matters because that's what the AI engines key off:
- Plumber for plumbing pages and the plumbing sub-trade hub
- Electrician for electrical pages
- HVACBusiness for furnace, AC, and heat-pump pages
- RoofingContractor for roofing pages
On top of that, every service page gets Service schema with areaServed (the cities you actually dispatch to) and AvailableLanguage (English plus French for Montreal and Quebec City, English plus Mandarin or Punjabi for some Toronto suburbs). The 24/7 emergency lines get OpeningHoursSpecification with the always-open marker so AI engines can answer the "open now" question. The full pattern is laid out in the structured data guide for AI search.
Layer 2: llms.txt
llms.txt is the AI-engine analogue of robots.txt, a plain-text file at the site root that tells crawlers what to index and how to interpret the structure. For a contractor it's where you declare the sub-trade taxonomy, the service-area list, and the priority pages (emergency lines, top-revenue services). It's lightweight, it's free to ship, and it's the single biggest difference between a site that gets cited and one that gets ignored. We include it at every retainer tier.
Layer 3: FAQPage schema
The questions that drive AI citations for contractors are remarkably consistent: "how much does X cost in Y," "do I need a permit for Z," "what's the average lifespan of A," "is B covered under home insurance." For each sub-trade we build out a FAQPage with 8 to 15 of these, with honest answers (price ranges, not bait), and the structured data so the model can pull the answer cleanly. Honest answers get cited. Marketing copy gets skipped.
Layer 4: Per-page topic depth
This is where most contractors lose. A single "services" page covering plumbing, HVAC, electrical, and roofing in 800 words isn't a topic-depth signal, it's noise. Per-sub-trade pages, per-city pages, per-job pages (Toronto tankless water heater install, Brampton furnace replacement, Vaughan EV charger installation) is where the depth lives. The same model that ranks Starlit Homes' twelve building-science pages for custom-home queries is the same model that ranks twelve service-area pages for a plumber or twelve roof-type pages for a roofer. Same discipline, different vertical.
The city by sub-trade matrix
This is the deepest pSEO well in the contractor playbook. If you dispatch trucks to twenty cities (Toronto, Vancouver, Calgary, Mississauga, Brampton, Hamilton, Vaughan, Markham, Burlington, Oakville, Kitchener-Waterloo, London ON, Ottawa, Quebec City, Montreal, Winnipeg, Edmonton, Halifax, Victoria, Surrey) and run four sub-trades, that's eighty pages. Each one with the precise schema sub-type, areaServed, and a 400 to 600 word body that answers the specific intent ("emergency plumber Toronto," "HVAC repair Vaughan," "electrical panel upgrade Mississauga," "flat roof repair Hamilton"). At the Engine tier we ship 200+ of these with structured data automation, and the ones that hit are usually live and indexed within 30 days.
Cite-met monitoring
You can't optimize what you don't measure. Cite-met is the studio's own AI citation monitor, and it runs across six engines (ChatGPT, Perplexity, Gemini, Claude, Copilot, AI Overviews) on the queries that matter for your sub-trades and cities. We surface the citations in real-time, not quarterly, and we feed the gaps back into what gets written next. Most contractors find out within 60 days of launch which long-tail queries they're winning and which need another round of depth.
What this looks like across the studio's other service ICPs
The pattern carries. For custom home builders we ship the per-model and per-building-science page depth, with HomeBuilder schema. For auto shops, another direct-call-focused service vertical, the matrix is city by service (Mississauga brake repair, Toronto oil change, Vaughan tire rotation) with AutoRepair schema. The schema sub-type changes; the discipline doesn't.
Where to start
The free audit includes the AEO surface check. We'll run your current site through the six citation engines on a sample of the queries you care about (city plus sub-trade plus job), tell you where you're showing up, where you're not, and what schema work would close the gap. If you want to see the playbook in action on the studio's own site, the citation traffic numbers are public, and the framework lives at mahmoudhalat.com/marketing-os.