You build one main page about a service. Then you build a page for each town you send a van to. You link every town page back to the main page. That is the whole model.
Sister pages, for the parts this one does not repeat: the service page playbook covers how to build one service page, and the service area playbook covers the town pages that hang off it.
You probably paid somebody for a pile of blog posts nobody read. Here is what was wrong with them. A blog post is not a page that takes a call.
A homeowner with water on the floor does not read an article. She types the job and her town into Google. She calls the first plumber that looks real and close. The page that wins that call is a page about that job, in that town. Not a post about "five signs your water heater is failing."
All three are ours, measured on September 2, 2026. The full record is in the numbers section. Every mark on this page works the same way.
This model is built for a plumbing company that sends vans to more than one town. HVAC and electrical work the same way. If you do the work in several places, you need a page for each place.
Say you are a plumber in Austin. Your water heater page is the hub. The towns your vans go to are the spokes. Each town gets its own page, and every one of them points back to the hub. Put your own towns on this map and it still works.
The center is the page that explains the job and takes the call from anywhere. The ring is one page per town. Most sites we meet have the ring with no center, or the center with no ring.
A hub is a page that can take money. A spoke is that same job in one town. The links between them tell Google which page answers which search.
Why does this fit a plumbing company? A big blog has thousands of questions to answer. Your town has a few dozen searches that matter, and the person typing them is minutes from calling somebody. The pages that take money are the hub and its spokes. Blog posts can help. They are not the spokes.
The one line to keep. One page that takes the call, one page for every town you drive to, and every town page points back at the first one.
Nobody publishes a study that says how many town pages a plumber needs. So we do not look it up. We derive it from the vans and the map.
New town pages go in one folder under one "Areas We Serve" page. The address pattern is the town, then the service, like /areas-we-serve/round-rock/water-heater-repair/. The main menu gets one link to the Areas page. That page links every town. Each town links its jobs. Do not build a menu with forty towns in it. One link in the menu, and the tree lives on the page behind it.
Nothing that already ranks moves. When we take over a site, the service pages that already have a history with Google stay where they are, at the top level. The town pages are added beside them. The folder pattern applies to what comes next, not to what already works. Moving a page that ranks is how you lose the ranking.
The owner's version: type the service and the town into Google on your phone. Look for a map with pins and for ads at the top. Both present means people search it. The builder's version: run the keyword through the research tool and read the pending flag before the volume. A lookup that has not finished reports zero, and a live term reads dead.
The hub explains the job. The spoke proves you do that job in that town. Every number below is ours and wears the house mark. The lengths went up on September 2, 2026, after we measured our own pages against the pages that beat them. That record is in the next section.
| What | The hub (one per service) | The spoke (one per town, per service) |
|---|---|---|
| Its job | Explain the service. Take the call from anyone in your area. | Take the call from one town. Prove you work there. |
| Length | 1,500 to 2,500 words. | 1,200 to 1,800 words, about that town all the way through. |
| What must be unique | How you do the job. What waiting costs. What the day looks like. | Facts that survive a town swap: neighborhoods, house types, the water, the soil, drive time from your shop. If it still reads true with the town changed, it is not done. |
| Headings | 3 to 8, one topic each. Keyword in the first one. | Same. Town in the first heading and in the first 100 words, next to your name and the service. |
| Quick answers box | 3 to 5 short lines at the top. | Same. |
| Images | 5 to 7 real photos. Our articles ship 7. Our page template ships 1 today, and we say so. Every image described in plain words. | Same. A van on a street in that town beats any stock photo. |
| Links out | Every spoke, early. Plus two or three related jobs. | The hub near the top, plus related jobs in that town. At least 3 links to your own pages, never more than 10. |
| Phone | At least 2 tap-to-call links. | Same. |
| Questions block | At least 3 real questions, 40 to 100 words each. | Same, with one only that town would ask. |
| Reading level | Under 18 words a sentence. Plain words. | Same. |
| Title tag | 50 to 60 characters, keyword first, your name last, no dash. | Same, with the town in it. |
| The ask | One call to action. The number. What happens when they call. | Same, plus how fast a van gets there. |
The lengths above are not from Google. Google's own self-check for content asks: "Are you writing to a particular word count because you've heard or read that Google has a preferred word count? (No, we don't.)" That line is dated December 2025. Our lengths are not a ranking trick. They are the room it takes to say something true about a job and a town without padding, and they sit where the pages that beat ours sit.
The first table is what named sources say, with the date. The second is what we do, and we say so. If a number ever moves from one table to the other, that is a lie, and this page is built so it cannot happen quietly.
| The claim | Who said it | Dated |
|---|---|---|
| Google has no preferred word count: "(No, we don't.)" | Google Search Central, helpful content | December 10, 2025 |
| Pages made "for the primary purpose of manipulating search rankings and not helping users" are scaled content abuse. | Google spam policies | August 28, 2026 |
| "Multiple domain names or pages targeted at specific regions or cities that funnel users to one page" is doorway abuse. | Google spam policies | August 28, 2026 |
| "Crawling can take anywhere from a few days to a few weeks," and a crawl request does not guarantee inclusion "instantly or even at all." | Google Search Central, recrawl | December 10, 2025 |
| FAQ rich results "no longer appear in Google Search starting May 7, 2026." | Google FAQ markup page | May 2026 |
| Blog-style pillar pages that do well run "around 2,000 words or more." A blog pillar, not a service hub. | Search Engine Land guide | December 31, 2025 |
| For an information cluster, "look for topics with between 10 and 20 subtopics." Directional. A service hub's count is derived, not looked up. | Ahrefs, content pillars | January 6, 2026 |
| Hub links each spoke "early, ideally in the introduction or first few paragraphs," and each spoke links back "near the top." | Search Engine Land guide | December 31, 2025 |
| "The average word count of a Google top 10 result is 1,447 words," and "no direct relationship between word count and rankings." | Backlinko, ranking factors study | April 14, 2025 |
| "53.4% of pages cited by AI Overviews are under 1,000 words." The link between length and being cited is "essentially zero." | Ahrefs, short vs long content in AI Overviews | December 3, 2025 |
| A breadcrumb list needs "at least two" items to count. | Google breadcrumb markup page | current doc |
| What we measured | What it showed | What it means |
|---|---|---|
| 626 pages on 10 client sites, 8 of them with Search Console, June 4, 2026 to September 1, 2026. | Words counted on every page. Search results joined to each one. | This is our own work, not a survey. It includes pages we built and pages we inherited. |
| Service pages under 600 words: 35 of them, median 385 words. | Median position 11. Median 1 click in ninety days. | They sit at the top of page two, and nobody clicks page two. |
| One client site: 9 service pages against 90 of its articles at a median 1,741 words and 7 images. | The service pages drew 18 clicks in ninety days. The articles drew 406. | Short pages that take money lost to long pages that answer a question. The fix is not more articles. It is service pages with room to answer. |
| Town pages on 3 sites: 70 of them, median 683 words. | Median 0 clicks. 13 on page one. | A thin town page does not earn calls. Most of these read the same with the town swapped. |
| Pages over 600 words against pages under, on the same sites. | Median position 20 against 11. | Length by itself is not the lever. The long pages that ranked worst were long about nothing local. |
| 26 pages that rank for three plumber searches in Central Texas: water heater repair in Round Rock, drain cleaning in San Antonio, a plumber in New Braunfels. | Median 951 words. A quarter run over 1,494. The biggest brands run 1,300 to 2,500. | That is the bar today. Our old hub range topped out below where the brands start. |
| The number | What we do | The reason |
|---|---|---|
| Spokes per hub | Derived: services times towns, minus no demand, minus no crew. Floor of 3 live spokes. | Nobody publishes this for a plumber. Below three the hub has nothing to point at. |
| Hub length | 1,500 to 2,500 words. Raised September 2, 2026 from 1,000 to 1,500. | Our service pages under 600 words sit on page two. The pages that beat them run 900 to 2,500. Past 2,500 it pads. |
| Spoke length | 1,200 to 1,800 words. Raised the same day from 800 to 1,200. | Enough for real town facts, and no more than a town can honestly fill. Our build gate refuses anything under 1,000 or over 2,600. |
| Images | 5 to 7. Our articles ship 7. Our page template ships 1 today. | The template has one photo slot right now. We say so instead of pretending. |
| Links per spoke | At least 3 to your own pages, never more than 10 | Fewer and the tree has gaps. More and every link means less. |
| Phone links | At least 2 | One at the top, one at the bottom. The call is the point. |
| Questions block | 3 or more, 40 to 100 words each | Short enough for an AI answer to quote whole. |
| Pace | 2 new pages a month, then faster once the first ring is live | Two real pages beat ten thin ones. Speed comes after the shape is right. |
| When to judge a page | 90 days. Merge or rewrite at 180. | Google says crawling alone can take weeks. Ninety days is the honest read. |
| The traffic number that matters | Your page showed up in search at all by day 90. Clicks by day 180. Calls are the real score. | Showing up is the first sign of life. Calls are the only score an owner keeps. |
Schema is a small block of code on the page that says, in Google's format, what business this is, where it works, and what the page is about. Owners never see it. Google and the AI tools read it first.
| Page | Main type | Also on the page | The rule |
|---|---|---|---|
| The hub | Service, with your business as the provider | BreadcrumbList (Home to this page). A questions block in plain HTML. | The business carries one fixed identity across the whole site: your site address plus a business marker, the same on every page, with your web address, your logo, and your other profiles listed. |
| The spoke | LocalBusiness, with the town as the area served | BreadcrumbList. The same questions block. | Copy Google's required and recommended fields from its LocalBusiness page. Never write them from memory. Every value must match the live site and your Google profile. |
| A blog post | Article | BreadcrumbList | Posts are not spokes. They get the smaller markup and they link to a hub. |
| The questions block | None needed for Google's results anymore | Keep the questions and answers on the page in plain HTML. | Google stopped showing FAQ rich results in May 2026. The block still earns its place: a homeowner reads it, and AI answers quote it. Markup it if you like. Do not expect a Google feature from it. |
Our build gate checks that at least two of these code blocks parse on every page, that the main type matches the page type, and that the breadcrumb block is the third. A page that fails does not ship.
Anyone who promises two weeks is either lying or counting the wrong thing. Here is what the source says, then what we do.
We read the Reddit threads too. People who do this for a living say town pages become the biggest driver of calls in the second or third month, when each page is a real place and not a template with the town swapped. They also say they have watched sites tank after somebody churned out fifty templated town pages. One asked the question this page answers: one hub, layers of hubs, or loose pages. One hub per service. Nobody offered a study, so none of their numbers wear a mark here.
| Stop | Why |
|---|---|
| Publishing the thirty. | Our own planning tool proposes 30 blog topics per hub. That is a research output, a list of things people ask. It was never a publish target. A six-van plumber does not need thirty posts about drain cleaning. Pick the two or three that are real jobs. |
| Swapping the town name. | Google's spam policy names "pages targeted at specific regions or cities that funnel users to one page" as doorway abuse. A page that reads the same with the town changed is that page. |
| Making pages to make pages. | Google's own self-check asks whether "the content is primarily made to attract visits from search engines." If the honest answer is yes, the page comes down. |
| The forty-town menu. | One link to one Areas page. The tree lives on that page, not in the menu. |
| Moving pages that rank. | A page with history stays where it is. New pages take the folder pattern. |
| Waiting for FAQ stars. | Google stopped showing them in May 2026. Keep the questions. Drop the expectation. |
Open your site and look for these. Most sites we meet have at least two.
A service page that mentions ten towns in one paragraph and links to none of them. Google has one page to rank for ten searches, and it ranks it for none.
Town pages that exist but nothing links to them. They sit in the sitemap and nowhere else. A homeowner can only reach them by luck. Google treats an unlinked page as a page you do not care about.
A town page that talks about the job but never links back to the main service page. The link back is what tells Google which page is the main one.
A spoke with zero appearances in search at 90 days gets rewritten with real town facts. Still nothing at 180 days and it gets folded into its hub with a permanent redirect (a 301). You are told before either happens. Nobody deletes a page you paid for without saying so.
Name the service you most want more of. Name the town you most want more of it in.
That is your hub and your first spoke. You can name both tonight. The arithmetic above is for later, or for us.
A hub done to the standard above takes about 8 to 12 hours to research and write. A spoke with real town facts takes 4 to 6. The schema, the links and the checks add about 1 hour a page. One hub with three spokes is two working weeks of nights. Those are our hours, from our own builds. SwarmSystem does this work for you, and you own every page we build. Leaving is easy.
More calls is what you buy. Your time back is what you get.
Fill these in before you close this tab. A service, a town, a second town. That is a tree.
Left out on purpose: numbers that agency blogs repeat without the study behind them, guides from before 2024 unless they are Google policy pages, and every Reddit number.