Four content properties, each owning a set of questions no other agent in Halton can answer — built so that Google ranks them and AI assistants quote them. This is the plan before the work; nothing here is built yet.
Where the site actually stands
The site is well built — 25 routes, working forms with per-page lead tracking, a real Cloudflare deployment. The problems are not technical. They are that the pages meant to hold knowledge don't hold any, and that nothing on the site tells a machine who you are.
/insights goes to Royal LePageFour article cards, all opening blog.royallepage.ca in a new tab. Zero original writing. Anyone who wants depth leaves your domain, and Google sees a page whose entire value is outbound.
app/insights/page.tsx — 4 cards, 4 external links, 0 owned articles
/resources promises twelve guides and delivers a contact form"The true cost of buying an older home." "Should you renovate or sell as-is?" Real questions with real intent — and every single one links to /contact. It is indexed and in your sitemap. This is the page most likely to lose someone permanently.
app/resources/page.tsx — 12 titles, 12 links to /contact
No Person, no RealEstateAgent, no LocalBusiness, no Article, no FAQPage, no breadcrumbs. Google and every AI retrieval system are reading raw HTML and guessing. This is the single cheapest fix with the largest effect.
grep "application/ld+json" across app/ → no matches
/og-urban-towns, /kerr-village-towns and /rental-cash-flow sit as static files in public/. They carry your most verified work — the cash-flow page runs on real July 2026 TRREB numbers — and they are in neither the navigation nor the pre-construction hub.
public/*.html — in sitemap.ts, absent from nav in app/components.tsx
llms.txt, and robots.txt says nothing about AI crawlersUser-agent: * lets them in by default, which is fine today. But nothing states the intent, and there is no machine-readable map telling an assistant what this site is for or which pages are authoritative.
public/robots.txt — 4 directives, none naming an AI agent
It has been the centrepiece of the written strategy since July. There is no route, no page, no intake form. Meanwhile the free reno estimate, which is the offer it feeds, is already live and already the best thing on the site.
app/ — no /contractors route
The idea
There are thousands of agents in the GTA publishing market updates and buyer tips, and Royal LePage corporate outranks all of them for the general queries. Adding a blog to that pile changes nothing.
What none of them can publish is what things actually cost and what is actually behind the walls, with twenty-five years of construction standing behind the number. Contractors won't publish real prices — it costs them negotiating room. Agents can't — they don't know. You are the only person in this market positioned to do both.
That content also happens to be exactly what AI assistants quote: specific, numeric, dated, local, and attributable to a named person with a real credential. The SEO play and the ChatGPT play are the same play.
So the hub is not one page with links on it. It is four properties, each owning a question class, all feeding the two forms that already produce your leads.
Architecture
Each hub is the strongest internal link target on the site for its topic. Spokes link up to their hub; the hub links down to every spoke; every page routes into the tools.
It could sit inside the contractor hub. I don't think it should. It is the one thing on this list that can genuinely earn citations in AI answers and rank against national sites, and burying it two levels down wastes that. It also serves a different visitor — someone pricing a job is not yet looking for a trade. This is decision one on the list at the bottom.
Hub 02 in detail
This is the phase that matters most, so it gets the most detail. Twelve job pages, each built to the same shape.
Last reviewed date, and your bylineBasement finish · kitchen · main bathroom · roof · windows & doors · electrical panel and rewire · HVAC replacement · foundation and waterproofing · rear addition · garden suite / ADU · flooring · exterior and siding.
A cost table with real numbers, a place name, a date, and a named author with twenty-five years in the trade is the highest-value thing a language model can find on a local real estate site. It is extractable, it is specific, and it is corroborated by a credential. Generic advice posts are none of those things.
Published numbers have to stay current. A 2026 price still sitting there in 2028 damages exactly the credibility it was built to create. The Last reviewed stamp is not decoration — it is the mechanism, and it means a real review twice a year.
Hub 04 in detail
Five pillars, drawn from what you actually know and already have data for. Two posts a month. Twenty-four genuinely original pieces a year beats a hundred rewrites of someone else's market update.
| Pillar | What it covers | Why you can write it |
|---|---|---|
| Behind the Walls | Condition, structure, what a home inspection does and does not tell you, cosmetic vs serious | Twenty-five years of opening walls |
| What It Actually Costs | The long-form pieces that feed and link into the cost library | You have priced this work |
| Pre-Construction, Honestly | Reading a floor plan, freehold vs condo, deposit structures, assignment, builder upgrades worth taking | VIP access plus a builder's eye on the drawings |
| The Investor's Math | Cash flow, DSCR, total return, what the spreadsheet leaves out | Verified July 2026 TRREB and Cornerstone data already in hand |
| Halton on the Ground | Oakville, Milton, Burlington, Hamilton — housing stock by era, commute reality, what each pocket actually is | You work it every day |
/insights becomes /journal with a redirect. The Royal LePage curation doesn't disappear — it moves to a sidebar block, where it belongs, instead of being the entire page.
Getting found
Most of this is one-time engineering, and none of it requires you to write anything.
Person on /about — with knowsAbout, areaServed, the construction background, and sameAs pointing to every profile you ownRealEstateAgent and LocalBusiness on the home page — address, phone, hours, service areaArticle with author, published and modified dates on every journal postFAQPage on service pages and every cost pageService on /reno-estimateBreadcrumbList everywhere below the top level/resources either becomes a real index into the journal, the cost library and the tools — or it comes downGoogle Business Profile is the largest single factor for local queries and it is already in progress. The one requirement here: the name, address and phone on the profile must match the site character for character, and the profile's primary link points at yovan-gabric.ca, not the corporate page.
Getting cited
There is no ChatGPT algorithm to optimise, and anyone selling you one is selling you something. What decides whether an assistant names you comes down to five things, and all five are buildable.
Models build entity graphs. If "Yovan Gabric" resolves cleanly to a licensed REALTOR® in Oakville with a construction background, you become an answerable thing. If it doesn't resolve, you are just text on a page. This is what the Person schema and the sameAs links are for — Linktree, the Royal LePage corporate profile, LinkedIn, Google Business Profile, realtor.ca, YouTube, all declared as the same person.
A question as an H2, answered in the forty words directly beneath it. Tables. Numbers with units attached. Dates. Place names. Models quote specifics and skip adjectives. Every cost page and every journal post gets an "at a glance" block near the top for exactly this reason.
One source is a claim. Four consistent sources is a fact. Identical name, phone and address across the site, GBP, the corporate profile, LinkedIn and realtor.ca is doing more work for AI visibility than any amount of on-page copy.
Name the AI agents explicitly in robots.txt — GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot — rather than relying on the wildcard, so the intent survives any future change in defaults. Add a /llms.txt: a plain markdown map of the site, one line per hub, saying what each is authoritative for.
Retrieval systems weight recency heavily for anything involving price or market conditions — which is most of what you publish. dateModified in the schema, and a visible "last reviewed" line on the page.
Google-Extended controls whether Google may train Gemini on your content. Allowing it makes you more likely to be known by the model; the cost is that your cost data helps a model answer the question without sending anyone to you.
My recommendation is to allow it. At your scale, being known is worth more than the leakage — and blocking training does not stop retrieval-based citation anyway, so you would give up the upside without removing the downside.
Once a month, run the same twelve prompts through ChatGPT, Google's AI Overviews and Perplexity, and log whether you were named. That is the only honest measurement available. Starting set:
The build
Ordered so that the technical foundation lands before any content is written, and the highest-value content lands before the easiest.
llms.txt and explicit AI directives in robots.txt/resources resolved — index or removed/renovation-costs index plus the first eight job pagesFAQPage schema on each page/journal, topic pages, Article schema, author box/insights redirected; Royal LePage curation demoted to a sidebar/contractors index and eight trade pages/contractors/join — intake, standards, and what each side givesHonest risks
Over to you
Does the cost library stand as its own hub at /renovation-costs, or live inside the contractor hub?
I recommend its own hub. It serves a different visitor and it is the piece most likely to rank nationally-competitive queries.
Rebuild /insights as /journal, or keep the existing name?
I recommend /journal with a permanent redirect. "Insights" currently means curated links; the rename signals the change and costs nothing since the page has no ranking to protect.
/resources — take it down now, or leave it until phase 2 replaces it?
I recommend taking it down this week. It is a live trust leak and there is nothing behind it to lose.
Allow Google-Extended and AI training on your content?
I recommend yes, for the reasons above — but it is genuinely your call and reasonable people go the other way.
Contractor hub — referral fees, or pure goodwill and reciprocity?
This changes the compliance work substantially and I need the answer before writing a word of that hub. No recommendation until I know what you want commercially.
Can you commit six to eight hours to get eight cost pages out of your head?
Voice notes or a call per job, forty-five to sixty minutes each; I write it up. This is the hinge for the entire plan — if the answer is no, phase 1 doesn't happen and the rest is just a normal agent website.
Does Groundwork Marketing Co. reuse this playbook for clients, or does it stay yours alone?
The hub architecture and cost-library pattern is a sellable product. Worth deciding now, because it changes how I document the build.