The full matrix, built the way the reference client should have been. Plus what it costs and which cells to skip.
This is the structure you described. Every city page lists its services; every service is a link to a city-specific service page.
/services/ac-repair/fort-worth/
Both work. Nesting under the city keeps each city page as the parent of its own children, which is the relationship we want Google to read, and it makes the city page the natural canonical hub. The reference client nested under the service instead, and their city pages ended up orphaned from their own service pages entirely.
You asked whether a "Not your area? More areas covered" block at the bottom is too much. It is not too much. But all-fifteen is the wrong version of it, for a specific and measurable reason.
| Option | Words | Share of shared budget | Total site links | Effect on uniqueness |
|---|---|---|---|---|
| All 15 areas on every page | ~53 | 19% | 1,800 | Hurts. Identical block on all 120 pages counts as shared text. |
| 5 nearest areas | ~23 | 8% | 600 | Helps. Different on every page, so it counts as unique. |
| 3 nearest areas | ~17 | 6% | 360 | Helps, but thin for users |
A nearest-five block is different on every single page, because Weatherford's five nearest neighbours are not Edgecliff Village's. That means it counts toward the unique 60% rather than against it. The all-fifteen version is identical everywhere, so it eats 19% of the shared budget and buys nothing.
It is also just better for a human. Someone reading the Benbrook page wants to know you also cover White Settlement and Westworth Village, not that you cover Annetta South forty minutes west.
It was not that they had too many links. It was that /locations/{city}/ linked to all nine service hubs and to zero of that city's own service pages. The two axes never connected. Your instinct to keep the web interconnected is the correct instinct; the fix is to connect it in the right direction, parent to child, before worrying about lateral links.
Sixteen cities by eight services is 128 combinations. Scored against the per-town data we now have: build era, heating fuel, lot size, permits.
| AC Repair | AC Install & Replace | Heating & Furnace | Heat Pump | System Replacement | Maintenance | Indoor Air Quality | Emergency | |
|---|---|---|---|---|---|---|---|---|
| Fort Worth1998 · 35.4% gas | S | S | S | S | S | S | S | S |
| Aledo2010 · 40.0% gas, newest | S | S | S | W | V | S | V | V |
| Weatherford1998 · 22.4% gas, oldest+renters | S | V | S | V | S | V | W | S |
| Willow Park2003 · 94.8% electric | S | S | W | S | S | S | W | V |
| Saginaw2000 · 25.2% gas | S | V | V | V | V | V | W | V |
| Benbrook1983 · 24.3% gas | S | V | V | V | S | V | W | V |
| White Settlement1973 · 23.6% gas | S | V | V | V | S | V | W | V |
| River Oaks1953 · 43.0% gas, oldest stock | S | V | S | W | S | V | V | V |
| Hudson Oaks1999 · 91.5% electric | S | V | W | S | V | V | W | W |
| Annetta1999 · 0% gas, 90% electric | S | V | S | S | V | V | W | V |
| Westover Hills1975 · 47.2% gas, highest value | V | S | S | W | S | V | V | W |
| Westworth Village1976 · 61.1% gas, highest | V | V | S | W | V | V | W | W |
| Edgecliff Village1976 · 42.4% gas | V | W | V | W | V | W | W | W |
| Lakeside1970 · 43.4% gas + 7.8% LP | V | W | S | W | V | W | W | W |
| Annetta South1992 · 24.6% propane, peak | V | W | S | V | V | W | W | W |
| Annetta North1994 · 18.8% propane, 141 homes | V | W | S | V | W | W | W | W |
Heating and Furnace is Strong where gas or propane share is high: Westworth Village 61.1% gas, River Oaks 43.0%, Annetta South 24.6% propane. It is Weak where almost nobody heats with fuel: Willow Park 2.9% gas, Hudson Oaks 4.3%.
Heat Pump is Strong in the all-electric towns (Willow Park 94.8%, Hudson Oaks 91.5%, Annetta 90.1%) and Weak in the gas towns, because you cannot write a distinctive heat pump page for a town that heats with gas.
Indoor Air Quality is Weak nearly everywhere, because we have no per-town data that makes it different. It stays as a single service hub rather than 16 city versions. That is the honest call, and it removes 14 pages by itself.
| Scope | Pages | Unique words required | Comment |
|---|---|---|---|
| Full 15 x 8 matrix, unscored | 145 | 60,900 | Every cell built regardless of whether it has anything to say |
| Scored matrix, weak cells skipped | 118 | ~49,600 | Recommended |
| City pages and hubs only | 26 | 10,900 | The earlier plan |
The scored matrix needs roughly 49,600 genuinely unique words, verified by the checker, before any of it is worth publishing. That is a book. At a realistic pace for researched local copy it is a months-long content programme, not a build.
This is the actual risk to the plan, and it is not an SEO risk. It is a capacity risk. The failure mode is not that the matrix is a bad idea; it is that page 60 gets written at 2am on a deadline, the uniqueness gate gets skipped "just this once," and we have rebuilt the reference client one page at a time.
Stage it. Fort Worth plus the four Tier 2 cities is 40 pages and about 17,000 unique words, which is achievable. Publish, run the checker, measure for 90 days, then decide whether Tier 3 and 4 earn the next 78 pages.
Google's own guidance warns against publishing a large batch of near-identical pages at once, so staging is both the safe content decision and the safe SEO decision.
This is what the reference client could never have done, because they had no per-town data. We do.
| Page | What it actually says that no other page says |
|---|---|
| Heating & Furnace in Annetta South | One home in four runs a propane furnace. No gas utility serves the town at all, so a propane furnace cannot be converted. Different orifices, different burner setup, and the tank is yours, not a utility's. |
| Heating & Furnace in Westworth Village | 61.1% on utility gas, the highest of any town we serve. Housing built around Carswell AFB from 1941; median 1976. Gas furnace and original ductwork territory. |
| AC Repair in River Oaks | Median home built 1953, the oldest stock in the service area. Post-war construction, undersized returns, ductwork that predates the equipment by decades. |
| Heat Pump in Willow Park | 94.8% of homes are all-electric and 40.5% were built 2000 to 2009, so a large cohort is 17 to 26 years old and on original equipment. Tri-County members can claim up to $200 on a 16 SEER+ heat pump. |
| AC Install in Aledo | Median build 2010, newest in the area, 27.7% of the housing stock permitted in the last six years. Warranty-era equipment, and unlike its neighbours Aledo is on the gas main at 40.0%. |
| System Replacement in Westover Hills | Highest home values in the set, median build 1975, 47.2% gas heat. Premium equipment is sellable here in a way it is not two miles away. |
If a city-service page cannot say something in that column, it does not get built. That is what the 36 weak cells are. The scoring is not a nicety; it is the mechanism that prevents the matrix from decaying into the reference client.
Gate every page on tha-uniqueness-check.py at 60% before it goes live. It masks city names before comparing, so a template with the town swapped in scores zero, exactly as the reference client's pages do.
Prepared by Shepard (Tech Director), 19 August 2026. Heating fuel and build era from US Census ACS 2024 5-year, tables B25040 and B25035, pulled directly. Search volume and seasonality from DataForSEO. Reference client per-page figures from Google Search Console, 16-month window (2025-04-18 to 2026-08-15). Companion documents: tha-location-seo-sitemap.pdf, tha-visual-sitemap.pdf, tha-city-page-content-spec.md, tha-uniqueness-check.py.