Technical
42
Domains splitting one brand
Separate hosts, three CMSes and 1,140 redirect chains of three hops or more. Crawl budget went to duplicates, not new pages.
A fictional business. The figures are a modelled scenario, not a client result.
Coldwater Comfort HVAC franchise, 42 locations Toronto
organic leads post-migration
Local Services · North America · 12-month engagement on the Signal plan
Drag the dial, or focus it and use the arrow keys.
Month 01 / 12 · Diagnose
Inventory 42 domains
Every franchise domain crawled side by side: 18,960 URLs, 6,800 near-duplicate service pages, three different CMSes and 3,120 crawl and redirect errors.
01The challenge
Every franchisee ran their own domain, splitting authority and creating duplicate service pages that cannibalised each other.
A homeowner in Mississauga searching for furnace repair saw three Coldwater franchises on page one, each with a thinner page than the last, and none in the top three. Links earned by head office never reached the franchises. Every new location launched with zero authority, and the plan to consolidate had stalled for two years on one fear: that moving 42 sites would wipe out the rankings the business ran on.
02Diagnosis
Technical
42
Separate hosts, three CMSes and 1,140 redirect chains of three hops or more. Crawl budget went to duplicates, not new pages.
Content
38
6,800 near-identical service pages. Franchises in the same metro outranked each other, so none held the top three.
Local
27%
Business Profiles pointed at retired domains or the wrong phone number; service areas overlapped between neighbouring franchises.
Performance
410ms
A chat widget, two booking scripts and 31 third-party tags blocked the main thread on every tap of "Book a technician".
03The strategy
Built on our Signal plan: technical foundations first, then templates that scale, with every change measured against a frozen pre-migration ranking baseline.
One domain, /locations/<city>/ folders. A 11,400-row redirect ledger, page-level parity checks, staged DNS cutover and a 90-day log watch for stray 404s.
One template, 42 genuinely local pages: crew, service area, reviews, permits and rebates per city, with LocalBusiness and Service schema built in.
Main-thread budget for every template: deferred chat, split booking bundle, tag audit. Mobile INP from 410ms to 140ms in field data.
Service hubs to locations, locations to nearest neighbours, breadcrumbs everywhere. Authority from the head office flows to every franchise.
04Month by month
Every franchise domain crawled side by side: 18,960 URLs, 6,800 near-duplicate service pages, three different CMSes and 3,120 crawl and redirect errors.
errors 3,120 · INP 410ms
Each legacy URL scored by links, traffic and leads, then paired 1:1 with its future home. 3,800 rows signed off by the first eleven franchisees.
errors 2,650 · INP 405ms
A single location-page template: local technicians, service-area map, LocalBusiness schema, reviews feed and booking module. Redirect ledger reaches 8,200 rows.
errors 1,900 · INP 330ms
Chat widget deferred, booking script split, third-party tags halved. Mobile INP on staging falls to 210ms. All 11,400 redirects mapped and tested.
errors 1,100 · INP 260ms
DNS switched over a single Sunday night in three waves. Tracked rankings dip just 1.8% in the first fortnight; 404s are caught and patched within hours.
errors 640 · INP 190ms
Google merges the old domains' signals. Cannibalised "furnace repair" pages collapse into one canonical service page per city.
errors 310 · INP 175ms
Service hubs link to every location; each location links to its six nearest neighbours and its top four services. Orphan pages: zero.
errors 180 · INP 165ms
Templated pages for 64 high-demand neighbourhoods, each with genuinely local copy, technician bios and heat-pump rebate notes.
errors 120 · INP 158ms
Furnace and boiler service pages refreshed ahead of heating season; FAQ schema and pricing guides added to the ten highest-volume services.
errors 80 · INP 150ms
Real-user INP passes on 96% of mobile visits. Booking form interaction rebuilt to respond in a single frame.
errors 50 · INP 145ms
Links once spread across 42 domains now point at one. Mid-sized suburbs start ranking on the strength of the whole network.
errors 30 · INP 142ms
Organic sessions up 61% and organic leads up 73% against the pre-migration baseline, from one fast domain the whole franchise shares.
errors 18 · INP 140ms
05Results
Modelled scenario for a fictional business — not a client result. Rankings and traffic are never guaranteed; see our Terms.
| 200ms good threshold
Tracked keywords · best position
| Keyword | Before | Cutover | M12 |
|---|---|---|---|
| furnace repair toronto 4.4k/mo | 7 | 8 | 2 |
| emergency hvac brampton 1.3k/mo | 9 | 10 | 1 |
| ac installation mississauga 1.9k/mo | 11 | 11 | 3 |
| heat pump rebate ontario 6.6k/mo | 18 | 17 | 4 |
| ductless mini split vaughan 880/mo | 14 | 15 | 3 |
| boiler service oakville 720/mo | 6 | 6 | 2 |
| furnace replacement cost 5.4k/mo | 23 | 22 | 6 |
| hvac maintenance plan 2.1k/mo | 31 | 29 | 8 |
Running several sites, or planning a migration you cannot afford to get wrong? We map every URL before anything moves.