Location SEO Plan: Texan Heating & Air

What we learned from the reference client, what it means for THA, and the 23-page structure we recommend building.

Prepared for Sarah Olds · 18 August 2026 · iProv

1The goal

Build Texan Heating & Air a location page structure that captures HVAC search demand across their Fort Worth service area, using what we have learned from the location structure iProv built for the reference client.

Before copying that structure, we audited whether it actually worked. It did not. This document explains what we found, and what we recommend building instead.

The short version

The reference client's 109-page service-by-city matrix earned 465 clicks in 16 months. Their blog earned 4,886. The one part of the structure that genuinely worked was the single page per city, which out-earned the matrix pages by 8 times per page.

We should build THA the part that worked and skip the part that did not. That means 23 pages: 8 service hubs and all 15 cities THA lists as its service area, on the city axis only. It does not mean multiplying 8 services against 15 cities, which would be 120 pages of the exact kind that failed.

Decision recorded 18 August 2026

Sarah's direction is to build out all 15 cities listed on THA's service-areas page, rather than the 5 with measurable search volume. That is reflected throughout this document. The tiering in section 5 exists to make the other 10 defensible, and section 5 is explicit about what those pages can and cannot be expected to do.

2What the reference client's data actually says

The reference client runs 119 pages on a service-by-city matrix across 10 cities across their service area. We pulled 16 months of Search Console data, 42,216 query-page pairs, to see which pages earned anything.

Page groupPagesClicks (16 mo)ShareClicks per page
Blog / editorial2364,88675.4%20.7
Homepage175711.7%757
Service hubs93605.6%40.0
City pages /locations/{city}/102003.1%20.0
Service x city matrix681752.7%2.6

Source: Google Search Console, reference client site, 16-month window (2025-04-18 to 2026-08-15). Analysis by Gus (Marketing Analyst).

Three findings that decide the THA build

First: one page per city beats ten. The /locations/{city}/ pages earn 20 clicks each. The service-by-city pages earn 2.6. When someone searches "{service} {city}", the purpose-built matrix page wins its own exact-match query only 48.8% of the time. Google picks the single city page instead 30% of the time. The value lives in the city dimension, not in multiplying services against cities.

Second: the impressions were not real people. Queries phrased exactly like the reference client's title tags, the "{service} in {city}" pattern, pulled 648,808 impressions and one click in 16 months. That includes a position 1.0 ranking with 9,578 impressions and zero clicks. A real page-one ranking converts at 5 to 30%. This traffic reads as rank-trackers and scrapers echoing the page titles back, not customers. It accounts for 87% of the matrix's impressions.

Why this matters for tomorrow

If anyone in the room believes the reference client's structure was effective, this is almost certainly why. In a Search Console screenshot it shows hundreds of thousands of impressions and page-one rankings. Those numbers are real. What they measure is not.

Third: the pages compete with each other. A median of 12 of the reference client's pages register impressions on the same query, with a maximum of 33. On a search for their flagship service in one of their cities, the best-ranking page turns out to be a different city's page, the wrong one. This is why 51% of the matrix pages that appear in Search Console have never earned a click.

Supporting evidence all points the same way: only 52% of impressions are US traffic, clicks are flat to declining across 16 months, brand terms account for 25% of all clicks, and not one geo-modified term appears in the top 20 click-earning queries.

What we are keeping from the reference client

The URL architecture is genuinely good and we are keeping it. Clean hierarchy, city as a directory under a parent, breadcrumbs that make sense. What we are rejecting is the content model underneath it. We diffed three of the reference client's city pages for the same service and found 48 of 51 sentences identical across all three cities. The pages are 13% unique, and the unique part is the city name swapped into the headline. That is a doorway page by Google's own definition, and it is the part that earned 2.6 clicks per page.

3What we found on THA's site today

We crawled texanhvac.com. Before any new pages get built, there are foundational problems that matter more than page count.

IssueDetailPriority
No H1 on any pageEvery page checked, homepage through service pages, has zero H1 tags. The main heading renders as an H2.Fix first
No meta descriptionsNot one page has a meta description. Google is writing THA's search snippets for them.Fix first
No local schemaOnly stock WebPage, ImageObject, BreadcrumbList, WebSite. No LocalBusiness, no Service, no areaServed. Nothing tells Google these pages are geographic.Fix first
Duplicate service pagesHeat Pump Repair is 11% unique against Furnace Services, and its body copy is about heating repair, not heat pumps. There are also two AC pages covering the same service.Fix first
Keyword-free titles"Fort Worth - Texan Heating & Air", "Services - Texan Heating & Air". No service or geographic terms.Fix first
One service area page14 towns are named in body copy. Only Fort Worth has a page.Build

Source: direct crawl of texanhvac.com, 18 August 2026. 14 pages in sitemap, 2 blog posts.

Worth saying plainly

THA already has the reference client's problem in miniature. Their Heat Pump page is a copy of their Furnace page with the title changed. Adding city pages on top of this foundation would multiply the problem, not solve it.

4Where the search demand actually is

THA's site names 14 towns it serves. We pulled search volume for 168 service-and-city keyword combinations across all of them.

4,180
Monthly searches, Fort Worth terms
1,020
Monthly searches, all other towns combined
9 of 14
Claimed towns with no measurable volume
0–24
Keyword difficulty range. All winnable.
KeywordVolume/moDifficultyCPCIntent
ac repair fort worth1,30011$71.32Commercial
air conditioning repair fort worth1,3008$71.32Commercial
hvac fort worth72021$28.06Commercial
furnace repair fort worth390Commercial
hvac companies fort worth3205$25.72Commercial
ac repair weatherford tx26024$55.32Informational
air conditioning repair weatherford tx2608$55.32Informational
hvac repair fort worth2102$26.12Commercial
ac installation fort worth1409Commercial
hvac weatherford tx14014$42.27Navigational
ac repair benbrook900$4.74Navigational
ac replacement fort worth9010Commercial
ac repair saginaw tx900$10.25Commercial
heating repair fort worth7015Commercial
ac maintenance fort worth7012$64.14Commercial
ac repair aledo500$73.19Commercial
emergency ac repair fort worth200$70.30Informational

Source: DataForSEO, pulled 18 August 2026, US national volume for geo-modified terms. Terms returning no data are omitted.

The economics

CPC on the core terms runs $55 to $73. "ac repair aledo" costs $73.19 per click in paid search at only 50 searches a month. These are low-volume, high-value keywords. One captured job pays for a lot of page-building, which is why low search volume does not by itself disqualify a city page.

Seasonality changes the publishing calendar

KeywordPeakTroughSwingImplication
ac repair fort worth2,400 (Jul, Sep)480 (Nov, Dec)5xCooling pages must rank by May
furnace repair fort worth1,900 (Feb)30 (Nov)63xHeating pages must rank by December
heating repair fort worth320 (Sep)10 (Jan, Jun)32xSame

Source: DataForSEO monthly search volume, trailing 12 months.

We are entering the year at the wrong end of the cooling season and the right end of the heating season. New pages take time to rank. Heating and furnace pages should be built first, because their demand peaks in February and a page built in August has time to earn position. Cooling pages have until roughly April.

5The recommended structure

Twenty-three pages: 8 service hubs and all 15 service-area cities. City axis only, no service-by-city cross-product.

texanhvac.com/ │ ├── services/ rebuild │ ├── ac-repair/ ac repair fort worth · 1,300 · KD 11 │ ├── ac-installation-replacement/ ac installation fort worth · 140 · KD 9 │ ├── heating-furnace-repair/ furnace repair fort worth · 390 first │ ├── heat-pump-services/ (consolidate, currently duplicate) │ ├── hvac-system-replacement/ hvac replacement fort worth · 10 │ ├── hvac-maintenance-tune-up/ ac maintenance fort worth · 70 · KD 12 │ ├── indoor-air-quality/ (named on site, no page today) │ └── emergency-hvac-repair/ emergency ac repair fort worth · 20 · KD 0 │ └── service-areas/ rebuild │ │ TIER 1 · anchor market ├── fort-worth/ pop 1,049,355 · 4,180/mo rework │ │ TIER 2 · measurable search volume ├── weatherford/ pop 30,385 · 690/mo build ├── saginaw/ pop 27,227 · 180/mo · KD 0 build ├── benbrook/ pop 24,294 · 100/mo · KD 0 build ├── white-settlement/ pop 18,269 · no volume build │ │ TIER 3 · near-me and map pack ├── river-oaks/ pop 7,423 · no volume build ├── willow-park/ pop 4,936 · no volume build ├── aledo/ pop 4,858 · 50/mo · KD 0 build ├── edgecliff-village/ pop 3,758 · no volume build ├── annetta/ pop 3,647 · no volume build │ │ TIER 4 · micro-towns ├── westworth-village/ pop 2,770 · no volume build ├── hudson-oaks/ pop 2,174 · no volume build ├── lakeside/ pop 1,649 · no volume build ├── annetta-south/ pop 744 · no volume build └── westover-hills/ pop 643 · no volume build NOT on THA's list, worth asking about: annetta-north/ pop 665 ask
Two corrections to carry into the build

Spelling. THA's service-areas page spells it "Anneta" and "Anneta South". The towns are Annetta and Annetta South, Parker County. The URLs must use the correct spelling or the pages will not match how anyone actually writes the town.

A missing town. They claim Annetta and Annetta South but not Annetta North (pop. 665), which sits between the two. Almost certainly an oversight rather than a service boundary. Worth confirming Friday.

What the ten zero-volume pages are actually for

Ten of the fifteen cities have no measurable organic search volume. We verified this across two DataForSEO endpoints and several phrasings. Nobody searches "ac repair westover hills". Building those pages is still defensible, but only if we are honest about the job they are doing.

JobTierWhere success shows up
Rank for "{service} {city}" organic terms1 and 2Search Console, geo queries
Support map pack relevance for "near me" and unbranded local searchesAllGoogle Business Profile insights, not Search Console
Convert referral, direct, and paid traffic from that town3 and 4GA4 landing page conversions
Answer "do you serve my town?" for a real prospect3 and 4Form fills, reduced bounce

This matters for how we report on the work. If we tell THA that 15 city pages will drive organic traffic, 10 of them will not, and at the 90-day review that looks like failure. If we tell them the Tier 3 and 4 pages exist to support the map pack and to convert people who already found them, that is both true and measurable.

Verified per-town differences to write from

Thin pages are the one thing that would sink this, so the uniqueness has to come from facts rather than adjectives. The Texas Railroad Commission publishes natural gas service and residential consumption by city, which turns out to separate these towns sharply.

TownGas utilityResidential McfPer residentWhat it implies
Westover HillsAtmos Mid-Tex53,61383.414x Benbrook. Very large homes on gas heat.
Westworth VillageAtmos Mid-Tex41,52215.0Contains NAS JRB territory
AledoTexas Gas Service63,13313.0Median home $525,604
River OaksAtmos Mid-Tex88,66011.9Dense older gas-heated stock
Edgecliff VillageAtmos Mid-Tex38,39510.2
LakesideAtmos Mid-Tex15,4259.4Azle ISD, Eagle Mountain Lake area
Hudson OaksTexas Gas Service18,8898.7
SaginawAtmos Mid-Tex180,6196.6
BenbrookAtmos Mid-Tex140,2895.8
WeatherfordTexas Gas Service167,6595.5
White SettlementAtmos Mid-Tex98,9335.4
Willow ParkTexas Gas Service7,9131.6Lowest by far. Most homes are not on piped gas despite service existing.
AnnettaNone listedNo gas utility serves it. Propane territory.
Annetta SouthNone listedSame

Source: Railroad Commission of Texas, Table 1B, Natural Gas Service to Texas Cities, Investor Owned Gas Distribution Utilities, calendar year 2021. Per-resident figures are residential Mcf divided by current population, used as a rough indicator of gas-heating intensity, not a precise per-household measure.

How homes are actually heated, by town

Gas volume is a proxy. Census ACS measures it directly, household by household, and it separates these towns into three distinct markets. This is the single most useful table in this document for whoever writes the copy.

TownMedian yr builtUtility gasPropaneElectricMarket type
Westworth Village197661.1%0.0%38.4%Gas furnace, strongest
Westover Hills197547.2%0.0%52.8%Gas furnace
Lakeside197043.4%7.8%47.9%Gas plus notable propane
River Oaks195343.0%1.1%54.5%Oldest stock in the set
Edgecliff Village197642.4%0.2%52.8%Gas furnace
Aledo201040.0%0.0%59.7%Newest stock, gas furnace
Fort Worth199835.4%0.7%61.9%Mixed
Saginaw200025.2%0.5%71.7%Mixed, newer
Benbrook198324.3%1.9%72.6%Mixed
White Settlement197323.6%1.8%74.1%Mixed, older
Weatherford199822.4%1.3%74.8%Mixed
Annetta19990.0%9.3%90.1%All-electric, no main
Hudson Oaks19994.3%2.6%91.5%All-electric
Willow Park20032.9%1.5%94.8%All-electric
Annetta South19920.0%24.6%75.4%Propane
Annetta North19943.0%18.8%75.9%Propane

Source: US Census ACS 2024 5-year, tables B25040 and B25035. All nine Tarrant County towns pulled directly by me from the Census Reporter API; Parker County figures from research, with Aledo and Willow Park independently re-verified against the Census Reporter API. Gas service confirmed against Railroad Commission of Texas Table 1A and Texas Gas Service's own tariff, neither of which lists any Annetta.

Two corrections to earlier drafts of this document

Aledo is a gas market, not a heat pump market. An earlier draft called Aledo "new-build heat pump territory versus older Fort Worth central air." That is backwards. Aledo has the highest utility-gas share of any town here, 40.0%, above Fort Worth's 35.4%. Its new construction is being built on the gas main because Aledo has one. Verified directly.

"Hudson Oaks has piped gas" is true but misleading. A gas main exists, but only 4.3% of homes use it and 91.5% are electric. Hudson Oaks is an all-electric town with a gas main almost nobody connected to. Willow Park is the same story at 2.9% and 94.8%.

The earlier "well water and propane" claim was wrong for Hudson Oaks and Aledo, and right for the Annettas. Corrected above.

Three angles this hands the writer

Annetta South is the propane page. Nearly one home in four heats with tank propane, and no gas utility serves the town at all. A propane furnace has different orifices and burner setup and cannot be converted, because there is no main to convert to. That is real, specific work.

Willow Park and Hudson Oaks are the all-electric pages. Over nine in ten homes. Completely different conversation from Aledo one town over.

Aledo is the gas furnace page. Newest housing in the set, median year built 2010, and the highest gas-heat share. New homes on the main.

One caution before anyone writes "heat pump"

ACS records the fuel, not the equipment. "Electricity" covers both heat pumps and electric-resistance strip heat on a straight-cool condenser. No source splits those by town. Write "all-electric," which is provable. Do not write "heat pump" as a demographic fact anywhere.

The internal linking rule that the reference client got wrong

On the reference client's site, /locations/{city}/ links to all nine service hubs but to zero of that city's own service pages. The two axes of the matrix never connect. A visitor on that city's page cannot reach their core service in that city.

Do this instead

Every city page links to every service hub. Every service hub links to every city page. City pages link to neighbouring city pages. It is a small enough set that full cross-linking is practical, and it is the single cheapest structural advantage we can hand THA over the reference client.

What makes a city page legitimate rather than a doorway

Google's published spam policy defines doorway abuse as "sites or pages are created to rank for specific, similar search queries. They lead users to intermediate pages that are not as useful as the final destination." Two of its three listed examples describe the reference client's structure directly:

Google Search spam policies, verbatim

"Having multiple domain names or pages targeted at specific regions or cities that funnel users to one page"

"Creating substantially similar pages that are closer to search results than a clearly defined, browseable hierarchy"

Source: developers.google.com/search/docs/essentials/spam-policies, retrieved 18 August 2026.

A note on thresholds: Google publishes no percentage for how unique a location page must be. Various SEO blogs cite figures between 40% and 70%, but they contradict each other and none traces back to a Google source. The 400-word rule below is our own editorial standard, not a documented requirement. What is documented is the qualitative test, and practitioner guidance converges on the same five traits: original localized content, genuine local proof, real placement in the site hierarchy rather than orphaned pages, conversion focus over ranking-only intent, and honesty about whether the business has a physical presence in that city.

Practitioner source: Marco Silva, "Location Page Spam", RicketyRoo, 30 June 2025.

The 13% uniqueness on the reference client's pages is what capped their performance. Every THA city page needs genuine local substance, not a name swap. At minimum:

If we cannot write 400 unique words about a city, that city does not get a page. It gets a line on the service-areas parent instead. That rule is what keeps this from becoming the reference client.

6An opportunity that needs a client answer

The cities THA does not currently claim have more search demand than most of the ones it does.

City"ac repair {city}"DifficultyCurrently claimed?
Arlington3200No
Burleson26023No
North Richland Hills2100No
Keller1400No
Mansfield904No
Benbrook900Yes
Saginaw900Yes
Aledo500Yes

Source: DataForSEO, 18 August 2026.

THA's stated service area runs west from Fort Worth into Parker County. Arlington, Keller, North Richland Hills, and Mansfield are east and northeast. The demand is real and the difficulty is near zero, but we should not build pages for territory they do not actually serve.

Question for Friday's onboarding

What is the real drive radius, and would THA take work in Arlington, Burleson, North Richland Hills, Keller, or Mansfield? Roughly 1,020 monthly searches sit in those five cities at difficulty 0 to 23, which is more than their entire current non-Fort-Worth service area combined.

7Sequence

PhaseWorkWhy now
1Technical foundation: H1s, meta descriptions, LocalBusiness and Service schema, title rewrites, consolidate the duplicate heat pump and AC pagesCheapest wins available. Every later page inherits these.
2Rebuild the 8 service hubsThe reference client's hubs earned 40 clicks per page, the best ratio in the structure after the homepage.
3Heating, furnace, and heat pump pages first within phase 263x seasonal swing peaking in February. Build now to rank by then.
4Rework Fort Worth, then build Tier 2: Weatherford, Saginaw, Benbrook, White SettlementThe proven pattern. One page per city, largest markets first.
5Build Tier 3 and 4: the remaining 10 citiesStaged deliberately. Google's guidance warns against publishing a large batch of near-identical pages at once, and staging gives us a quality gate before the hardest pages to write.
6Full cross-linking: 15 cities x 8 hubs, both directionsThe defect that capped the reference client.
7Editorial plan on non-geo HVAC terms75% of the reference client's clicks came from blog content. It was the engine nobody credited.
8Measure at 90 days before expandingIf the first city cohort earns nothing, do not build the next five.

8What we cannot see yet


Prepared by Shepard (Tech Director) with Gus (Marketing Analyst). Search Console analysis covers the reference client's site, 16-month window (2025-04-18 to 2026-08-15). Keyword and seasonality data from DataForSEO, 18 August 2026. Site crawls of the reference client's site and texanhvac.com performed 18 August 2026.