Local SEO for Home Service Businesses
What Separates a Legitimate City Page from a Doorway Penalty
Google's doorway filter doesn't just pull the bad pages — it can take your entire domain offline in search. Here's exactly what makes a city page rank vs. what gets your whole site penalized.
What Google's Doorway Page Policy Actually Says
Google's Search Central documentation defines doorway pages as "sites or pages created to rank for specific, similar search queries" where each result leads users to "essentially the same destination." The policy calls out city pages by name: "having multiple domain names or pages targeted at specific regions or cities that funnel users to one page" is listed as a direct example of doorway behavior. Source
The test Google applies is blunt: are these pages designed to deliver genuine value to a human, or designed to capture a keyword? A page that slots a city name into an H1 and a phone number on the screen — then routes the visitor to your homepage — fails that test every time.
This isn't a technicality. Google classifies doorways as a spam violation. That means manual action risk: a human reviewer confirms the pattern, applies a site-wide demotion, and you dig out by filing a reconsideration request. Not page-level. Your entire domain.
Read the Google Search Central doorway page documentation before you build another city page. Then run the self-audit in the next section on every page you already have.
The Clone Test: How to Tell If Your City Pages Are Doorway Risk
Three checks. Do all three before you publish another city page.
Check 1: The city-swap test. Replace every instance of the city name with a different city. If the page still makes complete sense, you have a clone problem. A page for "emergency plumber in Austin" and a page for "emergency plumber in Dallas" should not be interchangeable. The content has to be anchored to the actual market — not just a keyword slot.
Check 2: The standalone-value test. Can a homeowner who lands on this page answer: What specific neighborhoods does this contractor serve? Are there service notes specific to this area? Is there any evidence this business actually operates here? If the answer to any of those is no, the page has no standalone value — which is exactly what Google says doorway pages lack.
Check 3: The internal-link test. Does the rest of your site link to this page because it's genuinely useful, or is the only inbound link a footer widget listing 50 cities? Thin internal link context signals bulk generation, not genuine content.
If you're unsure about your existing pages, consult an SEO professional before adding more. Then read how many city pages to build without triggering doorway risk — volume decisions and quality decisions are directly connected.
The Six Signals Google Uses to Distinguish Legitimate Local Pages
Pass all six or don't publish the page.
1. Unique local content. Not a city-name swap — content that could only exist on this page. Specific zip codes served, the local permit office for plumbing work, common pipe materials in that housing stock, flooding patterns in that drainage district. The page has to say something no other page on your site says.
2. Area-specific service context. A plumber in Phoenix has different seasonal demand than one in Minneapolis. Pipes freeze in Minnesota; hard water destroys water heaters in the Southwest. A legitimate city page references what makes that market distinct — not a restatement of your universal service list.
3. Genuine NAP. Your business name, address, and phone should be consistent across the page, your Google Business Profile, and your other local citations. A fake city page typically has no NAP or uses a virtual address. Genuine NAP is a trust signal. Its absence is a red flag.
4. Neighborhood and suburb coverage. "We serve Austin — including Cedar Park, Round Rock, and Pflugerville" tells Google the page exists for a homeowner checking whether you cover their street, not for a city-level keyword. Name the sub-areas you actually work.
5. Locally relevant structured markup. Schema markup that accurately declares your service area and business type gives search engines structured, machine-readable evidence the page is legitimate. Details in the next section.
6. Distinct internal link context. Your service pages and posts should link here because the content is useful — not because a footer script auto-linked every city in your service radius.
The underlying question is always the same: does this page exist because it helps a real person in that city? For a full breakdown of what each signal requires, see the seven elements that make a city page legitimate.
What Counts as 'Unique Local Content' for a Plumber or HVAC Contractor
'Unique content' is where most contractors go wrong. They add a city name four times and call it done. Google's systems have seen that pattern millions of times.
Here's what actually differentiates a city page for a trades business:
Neighborhoods and service zones you physically cover. Don't say 'we serve Dallas.' Say 'we cover Lakewood, East Dallas, Preston Hollow, and Deep Ellum — typically on-site in under 60 minutes.' That's information a homeowner uses to decide whether to call.
Local permit requirements. Plumbing and electrical work requires permits in most municipalities. If your page names the local permit office or notes you handle permitting on the customer's behalf, that's content no find-and-replace template can replicate.
Area-specific service patterns. Older housing stock has galvanized pipes that corrode at a known rate. Coastal areas have hard-water buildup that kills water heaters faster. New subdivisions from the 2000s often have specific HVAC configurations that need targeted maintenance. These details signal that a human with actual market knowledge wrote this page — not a script.
Climate and infrastructure context. Freeze risk, humidity levels, average summer temperatures, and their effect on maintenance intervals — directly useful to a homeowner and impossible to fake with a city-name swap.
One more point: these details aren't hard to source. Local permit requirements are on the city's official website. Housing age patterns are available from county assessor records. Climate data comes from NOAA. You don't have to invent anything — you have to look it up and write it down.
The Schema Piece: LocalBusiness with serviceArea vs. a Blank Page
If your city page has no schema markup, it competes blind against pages that do.
Use LocalBusiness schema — or a more specific subtype like Plumber or HVACBusiness — with a serviceArea property naming the geographic area the page covers. Include your business name, address, phone, URL, and areaServed set to the specific city or region.
In plain English: the schema tells a search engine 'this is a plumbing business, it serves [city], here's the verified contact information.' That machine-readable layer confirms what your visible page content says. Consistency between schema and page copy builds trust. A mismatch — a page titled 'plumber in Houston' with schema declaring Dallas as the serviceArea — is a red flag that cancels the signal rather than reinforcing it.
Schema doesn't substitute for unique content. A well-structured page with thin content is still a thin page. But a genuinely unique city page without schema is leaving a confirmed ranking signal on the table. Add LocalBusiness with serviceArea to every city page you publish. A developer can implement it in under an hour per page. Don't skip it.
What Happens If Google Tags Your City Pages as Doorways
The consequence isn't a ranking drop on individual bad pages. It's a manual action that hits your entire domain.
Here's how it plays out: a Google reviewer confirms a doorway pattern on your site. The action is applied domain-wide. Your homepage, service pages, and contact page all rank lower until you remove the offending content, submit a reconsideration request, and wait for re-review. Source That process runs weeks to months.
For a plumber or HVAC contractor who gets most new leads from organic search, a multi-week demotion is a revenue emergency. Every missed organic call during that window is a $500–$1,500 job gone to whoever ranks next in the results.
Doing city pages right the first time — unique content, genuine NAP, proper schema — costs a fraction of a single week of lost organic leads.
Before you commission a batch of new pages, understand the complete picture. Local landing pages for home service businesses covers the full system.
Frequently asked
What is a doorway page, according to Google?
Google defines doorway pages as sites or pages created to rank for specific, similar search queries where each result leads users to essentially the same destination. City pages that are functionally identical — with only the city name swapped — are a textbook example. Google's Search Central documentation explicitly lists "multiple pages targeted at specific regions or cities that funnel users to one page" as a direct doorway example.
The practical test: does the page exist to serve a human in that city, or to capture a keyword? If it's the latter, it's a doorway risk.
Will a doorway page penalty affect my whole site or just the bad pages?
A doorway page manual action is applied domain-wide, not page by page. Your homepage, service pages, and every other page on your domain lose ranking until you remove the offending pages, submit a reconsideration request to Google, and wait for a reviewer to approve the fix. That process typically takes several weeks, sometimes longer. The risk isn't isolated to the thin pages — it's total.
Can I use a template for city pages, or does every page need unique content?
Templates are fine as a structural starting point — consistent layout, header format, schema structure. What can't be templated is the content that makes each page unique: neighborhoods served, local permit details, area-specific service conditions, and climate context. The clone test is your guide: if you swap the city name and the page still works perfectly for a different city, you haven't added enough locally specific content to clear the doorway threshold.
What schema markup should I use on a local landing page?
Use LocalBusiness schema — or a trade-specific subtype like Plumber, HVACBusiness, or Electrician — with the serviceArea and areaServed properties set to the specific city or region the page covers. Include your business name, address, phone number, and URL. Make sure the schema matches the visible page content — inconsistencies between the two are a trust-signal problem. Every city page you publish should have this markup. A developer can implement it in under an hour per page.
Build City Pages That Rank — Without the Doorway Risk
We configure legitimate, unique local landing pages for home service businesses, built to Google's standards and live in 48 hours. Every page passes the clone test before it goes live.