HouseHelperHub city pages, what the research actually says
Private deliverable. Enter the hub password to continue.
That's not right. Try again.
HouseHelperHub city pages, what the research actually says
Google has already indexed them. The GBP they were built for is not available to you. And the one thing that would make them rank is the one thing you do not have yet.
The short version
You asked what else to put on the 144 new city pages before submitting them to Google. Eight research threads later, three things changed the question:
- They are already indexed. No submission was needed. Your robots.txt allows everything and declares your sitemap, so Google found all 382 URLs on its own. This is not a decision you are about to make. It is a situation you are already in.
- The Business Profile you built them for is not available to you. Google's eligibility guidelines name "lead generation agents or companies" as ineligible, in writing, on two current Help pages. HouseHelperHub performs no services and makes no in-person contact with customers. There is no GBP for these pages to feed.
- The pages are still the right asset, for a different reason. The same practitioners who say city pages barely matter for the map rank "dedicated page for each service" as the number one factor of 187 for localized organic search. You built the right thing and attributed it to the wrong mechanism.
The recommendation is not "add more to 144 pages." It is: cut to about 20, make those genuinely different using data you can pull for free in an afternoon, stop indexing any page with no worker behind it, and put your 13 workers into the map instead of the brand.
What is actually wrong right now
The pages make a claim that is not true
Your Louisville window cleaning page says:
Workers near Downtown Louisville and Main Street are ready to help.
You have no window cleaners in Louisville. Further down the same page: "Real reviews coming soon."
Google's published helpful-content self-assessment asks directly whether content has "any easily-verified factual errors." This is one, it is live, and it is indexed. It is also simply not how you would want to talk to someone who needs help.
The repetition is visible
This block appears on all 153 English pages:
Homeowners. HouseHelperHub connects homeowners in Boulder with experienced local workers for house cleaning service. Renters. HouseHelperHub connects renters in Boulder with experienced local workers for house cleaning service. Busy Professionals. HouseHelperHub connects busy professionals in Boulder with experienced local workers for house cleaning service.
One sentence, four times, one word swapped. Measured similarity between the same service in two different cities is 70 percent.
The sharpest test anyone has published for this: a doorway page is one that would be indistinguishable from another if the place name were removed. Your pages currently fail it.
The scale is larger than 144
The live sitemap holds 382 URLs. 153 English city-plus-service pages, 153 Spanish mirrors, 9 city hubs, 17 service hubs, and their Spanish twins. Against 13 real workers, all in one city.
The demand problem, with numbers
Live Google Ads volume for Colorado, pulled during this research.
Fifteen of 35 city-plus-service phrases returned no measurable data at all, including "window cleaning superior co," "dog walker erie co," "gutter cleaning superior co," "pet sitter erie co," and "house cleaning niwot co."
The twenty that do register:
| Phrase | Monthly searches |
|---|---|
| handyman longmont co | 210 |
| carpet cleaning longmont co | 170 |
| junk removal boulder co | 170 |
| house cleaning boulder co | 140 |
| house cleaning broomfield co | 140 |
| window cleaning boulder co | 110 |
| house cleaning longmont | 90 |
| gutter cleaning boulder co | 70 |
| handyman broomfield co | 50 |
| dog walking boulder co | 50 |
| house cleaning louisville co | 40 |
| handyman erie / house cleaning erie / handyman lafayette | 30 each |
| everything else measurable | 10 to 20 each |
Total: roughly 1,400 searches a month across the whole grid, with 60 percent concentrated in three cities. That is an average of under 10 searches per page.
Realistic organic yield from all 144 pages at maturity: 50 to 150 clicks a month. The Local Pack takes absolute positions one through three on every one of these queries, so organic number one is really position four.
The obvious alternative is worse
I assumed consolidating into 9 city hubs plus 17 service pages would beat 153 combinations. The research tested it. "Cleaning services boulder county" returns no data. "Boulder county house cleaning" returns no data. "Home services longmont co" returns no data.
The hub structure targets less demand than the combinations it would replace. Good thing we checked.
Spanish city-plus-service demand is effectively zero
"Limpieza de casas boulder," "servicio de limpieza boulder co," "jardinero boulder": all below the reporting threshold.
But "trabajos cerca de mi" gets 1,900 searches a month.
Your Spanish tier is aimed at demand that does not exist, while the query your Spanish-speaking audience actually types is a single generic jobs search that one page could own. Boulder County has roughly 7,000 residents who speak Spanish and limited English, and most of them are your supply side, not your demand side.
Translation is not duplicate content, and Google says so outright. That worry is off the table. What the Spanish tier does instead is double the count of thin pages, and the quality classifier counts pages, not languages.
Why authority is not your problem
The most useful surprise in this research: the giants are beatable here.
- awalkintheparktoday.com ranks organic number one for "dog walker erie co" with 43 referring domains.
- superior-petservice.com holds Local Pack one and organic four with no measurable backlink profile at all.
- Thumbtack, with 46,259 referring domains, does not appear anywhere on either Boulder County SERP tested.
And on the exact query shape you are targeting, a tiny local cleaner beats the marketplaces:
casabellacleaning.co ranks fifth for "house cleaning services louisville co," above Molly Maid, Thumbtack, and Homeaglow. Its page is 1,489 words with zero schema markup. Its edge is that 63 percent of its words are genuinely city-unique: named neighborhoods (Old Town, Coal Creek Ranch, Steel Ranch, DELO), housing stock ("century-old mining cottages, original hardwood, older tile"), and local geography tied causally to the service:
Louisville's 1,700+ acres of open space and 27 parks mean dust, pollen, and pet hair are a constant.
That is what a page that earns its URL looks like. It is writing, not technology.
What actually makes marketplace pages rank
Look at what the marketplaces beating you put in their search snippets:
Rover, Erie: "The average cost for Dog Walking in Erie on Rover is $20 per walk." Care.com, Boulder: "Find 75 affordable house cleaning options in Boulder, CO, starting at $23.54/hr." Care.com, Erie: "Compare 60 in-home pet sitters in Erie."
Every one of those is a supply fact. Provider counts, real rates, a date stamp. When Boulder and Longmont pages were diffed with the city name normalized out, Care.com came out 52.8 percent city-unique and Thumbtack 43 percent, and essentially all of that uniqueness was worker names, worker-written bios, review snippets, and computed price figures. The editorial content on those pages is national boilerplate.
Supply is not a prerequisite for the SEO. Supply is the SEO.
There is also a mechanical demonstration of this. Care.com runs multiple service URLs per city. For "house cleaning services louisville co," the one that ranks is /cleaning-lady/louisville-co, advertising 60 providers, not /house-cleaning/louisville-co, advertising 6. Same city, same site, same intent. The page with ten times the supply got the slot.
The Google Business Profile finding
This is the one that changes your plan.
Google's Business eligibility and ownership guidelines, current, list who cannot have a Business Profile. Two entries:
"Lead generation agents or companies" "Brands, organizations, artists, and other online-only businesses"
And the affirmative test:
"To qualify for a Business Profile, a business must make in-person contact with customers during its stated hours."
HouseHelperHub performs no services, takes no commission, and hands customers to workers over WhatsApp. You never make in-person contact. The workers do.
Even if you restructured to qualify, Google allows a service-area business one profile, not nine: "If your business doesn't have a storefront with clear signage but travels to customers at their physical locations, you're allowed one service-area Business Profile."
And setting service areas does not do what people think. Whitespark's 2026 survey ranks it 152nd of 187 factors and puts it on their published myths list. Sterling Sky tested it directly: "The service area listed in Google Business Profiles does not currently impact rankings. Rankings are based on the address used to verify the listing."
The risk of doing it anyway
"If a merchant's account is restricted, all Business Profiles associated with that account will be suspended."
Nine profiles for cities where you have no presence would require a false address, which is the highest-ranked suspension trigger in Whitespark's risk table. If your Google account gets restricted, that reaches every profile associated with it, including any you help a worker set up.
The unlock
Your 13 workers are each eligible for exactly what HouseHelperHub cannot have. Every one of them is a real independent operator who travels to customers, which is precisely the case Google's service-area rules were written for.
Helping them set up their own profiles puts your actual supply into the Local Pack legitimately, gives each woman an asset she owns and keeps whether or not she stays on your platform, and is a far better pitch for the next workshop than anything on your website. The map stops being a closed door and becomes your distribution channel.
The local data you already have access to, free
This is the good news. Boulder County publishes an ArcGIS REST server that returns square footage, year built, bedroom counts, and assessor neighborhood names per city, no key required, in about two hours of scripting.
Average single-family home size:
| City | Avg sq ft | Median year built | Owner-occupied |
|---|---|---|---|
| Erie | 2,326 | 2007 | 87.9% |
| Superior | 2,240 | 1997 | 61.7% |
| Boulder | 1,804 | 1978 | 47.9% |
| Louisville | 1,740 | 1991 | 70.9% |
| Longmont | 1,711 | 1990 | 62.6% |
| Lafayette | 1,708 | 1993 | 66.7% |
A 36 percent size spread between Erie and Lafayette, and cleaning is priced by square footage. That is load-bearing, not decorative.
Other verified, checkable, genuinely per-city facts:
- Three different minimum wages across your nine cities. Boulder city is $16.82 an hour in 2026, rising to $18.17 in 2027. Cross Highway 36 into Louisville and the floor is Colorado's $15.16. Broomfield, Westminster, and Arvada sit in a different metro wage area entirely.
- Different growing seasons. Boulder runs 154 days with last freeze May 4. Longmont runs 138 days with last freeze May 11. Fifteen miles apart, two weeks different. Use one lawn schedule for both and you are wrong in one of them.
- Different watering rules per city. Boulder is under a Drought Watch permitting irrigation only before 10am and after 6pm. Westminster assigns days by even and odd address, three days a week maximum.
- Real neighborhood names, hundreds of them. Boulder has 30 assessor neighborhoods (Table Mesa 1,983 parcels, North Boulder Park 1,678, Wonderland Hill, Martin Acres, Whittier). Superior is essentially one: 3,997 of roughly 4,300 residential parcels are Rock Creek. Broomfield has 868 named subdivisions, Westminster 1,005, Arvada 1,999.
- The Marshall Fire. 1,105 homes destroyed across Louisville, Superior, and unincorporated Boulder County. Louisville is roughly 90 percent rebuilt, Superior roughly 74 percent permitted. That makes new-construction cleaning a real, specific service on exactly two of your nine city pages.
- A Spanish-speaking gradient that should drive editorial decisions. Longmont is 13.8 percent Spanish-at-home, Erie 3.3 percent. Four times the difference. That tells you which pages deserve the strongest Spanish treatment.
What is not available, stated honestly
- No assessor data for Broomfield, Westminster, or Arvada. Different counties.
- No trustworthy per-city home services pricing. Every "average cost of house cleaning in Boulder" figure online comes from lead-generation sites with undisclosed methodology. Do not publish those as facts. You could, however, survey your own 13 workers and publish a sourced, dated Boulder County rate table, which would be better data than anyone else has.
- Watering rules verified for only Boulder and Westminster. The other seven need manual lookup and change seasonally.
- Erie straddles two counties. Boulder County holds about 5,791 Erie parcels against 11,277 town-wide housing units, so roughly half of Erie is in Weld County. An Erie page built only on Boulder County data describes half the town.
- One figure flagged as suspect: NOAA returned 88.3 inches annual snowfall for Boulder and 32.2 for Longmont. That gap is larger than expected over 15 miles and the Longmont station may have incomplete records. Do not publish it without a second source.
What I recommend
Do this week
- Remove the false availability line from every generated page. Replace it with the truth, which also converts better: "HouseHelperHub is new. We started with 13 cleaners in Boulder in July 2026 and we are adding workers weekly. Post your job and we will connect you when we have someone in Louisville, or sign up to be notified."
- Delete the four-times-repeated boilerplate block. It costs nothing and it is the single most visible tell on the site.
- Add
noindex, followto every city-plus-service page with no worker behind it. Follow preserves your internal linking. They stay on the site for visitors; they leave Google's index. This is the single highest-leverage action available. - Do not create a HouseHelperHub Business Profile. Not one, and certainly not nine.
Do this month
- Help your 13 workers create their own Business Profiles. This is the real Local Pack strategy and it is compliant, valuable to them, and a recruiting asset.
- Cut the indexed grid to roughly 20 pages with measured demand and at least two real workers each. Ten pages cover about 80 percent of the addressable volume: handyman Longmont, carpet cleaning Longmont, junk removal Boulder, house cleaning Boulder, house cleaning Broomfield, window cleaning Boulder, house cleaning Longmont, gutter cleaning Boulder, handyman Broomfield, dog walking Boulder.
- Pull the assessor data. Two hours of scripting gives every page real square footage, home age, and neighborhood names. This is what turns cosmetic difference into structural difference.
- Shrink the Spanish tier from 192 pages to about 12, and build one page targeting "trabajos cerca de mi." Judge the Spanish side by whether Spanish-speaking cleaners can find and use the platform, not by whether it ranks for queries nobody types.
Build into the template permanently
- Gate indexation on supply. A city-plus-service page flips from
noindexto indexable only when it has at least two real, contactable workers. This turns an ungovernable 382-page liability into a quality gate that scales with the business automatically.
On AI search, briefly
Google's own documentation now says there is nothing special to build: "There are no additional requirements to appear in AI Overviews or AI Mode, nor other special optimizations necessary. You don't need to create new machine readable files, AI text files, or markup." So skip llms.txt.
The useful finding is that pages which actually get absorbed into AI answers carry definitions, numbers, comparisons, and procedural steps. Real prices, real counts, real local specifics. That is the same fix as the doorway problem. One piece of work solves both.
The contrarian case, and where it lands
I asked one thread to attack this whole plan. Two of its arguments failed honestly and should be dropped: the competition is not unbeatable, and consolidating to hubs is worse than the combinations.
Four held:
- Demand is genuinely thin and most of the grid targets nothing.
- Publishing weak pages risks the whole domain, because at 88 percent of the site there is nothing for Google to weigh them against.
- The Local Pack is closed to you and it takes the top three positions.
- Your real bottleneck is workers, not traffic.
The single strongest objection, which I have adopted as the recommendation: do not publish a city-plus-service page until it has real providers, and only build the combinations with measured demand.
One more thing worth sitting with. On "house cleaning boulder co," the organic number one result is Reddit. On "dog walker erie co," a Facebook group post ranks second. Google is actively rewarding genuine local community recommendation on exactly these queries, above polished service pages from national brands.
You do not currently have a Boulder community asset. The 65,000-member Friendly Gringos group is Ajijic expat retirees, which is a genuine asset for ajijic.org and irrelevant here. So this is a build, not a leverage.
What you do have in Boulder is real and small: 13 workers you recruited in person, one workshop held in July 2026, and the fact that you live there. The realistic version of this is participating where those conversations already happen, which is r/boulder, Nextdoor, and local parent and neighborhood groups you would join rather than own. That is slower than publishing 144 pages and it is the channel Google is actually rewarding on these exact queries.
What would have to be true, and how to test it cheaply
Before writing page 21, run these:
- Publish 10 pages across the demand spectrum, wait 90 days, read Search Console impressions. Impressions appear even at rank 40 and reveal true demand for free.
- Check the Pages report for "Crawled, currently not indexed" by folder. If a meaningful share sits there, Google has already judged the block and the remaining pages should never ship.
- Try to recruit three workers for one small-town service before building anything for it. If that takes more than two weeks, the page pipeline is running ahead of the business.
- Spend $200 on Google Ads against three head terms for two weeks. That returns real conversion data in days instead of the six months organic would take, and prices the alternative channel at the same time.
Confidence and gaps
High confidence: Google's eligibility and spam policy language, all quoted from current first-party documentation. The search volume data, pulled live from Google Ads. The indexation status, which I verified myself. The Boulder County assessor figures, queried directly from the county's own API.
Medium confidence: the exact indexing outcome for these specific pages, because Google publishes no numeric threshold and no source can tell you precisely where 70 percent similarity lands. The prediction rests on convergent evidence rather than a stated bar.
Low confidence, flagged rather than hidden: user-signal effects like pogo-sticking as an independent ranking mechanism, which no primary source confirms. The Longmont snowfall figure. Watering rules for seven of the nine cities.
Explicitly not verified, do not repeat: the "60 to 70 percent of a location page must be unique" rule, the "1,300 location pages count as doorway pages" attribution, and a widely-cited hotel deindexing case study. All three surfaced in search summaries and none traced to a primary source.
Published to Annette's hub. Rebuilt from the source markdown, so edit the source and rerun rather than editing this page.