All Articles

Service Pages Google Will Actually Index: When to Split, When to Merge, and When to Stop

A service business should have one strong page for each service it really offers, and a city page only where it has something specific to say about that city. Building a page for every service in every town usually backfires. Google treats near-identical pages as doorways, indexes a fraction of them, and the strong pages lose links and attention to the weak ones. The fix is fewer, better pages connected by deliberate internal links, and decisions based on how each page is already performing.

This is a rewrite of an earlier post on the same subject. Google's rules below are quoted from its own documentation and linked. The examples come from real sites we've built or repaired, described without naming the clients.

What Google says about pages built to rank

Google's spam policies describe this exact pattern. Doorway abuse is "when sites or pages are created to rank for specific, similar search queries," and the examples include "having multiple domain names or pages targeted at specific regions or cities that funnel users to one page" and "creating substantially similar pages that are closer to search results than a clearly defined, browseable hierarchy." (Google: Spam policies)

The same page defines scaled content abuse: "many pages are generated for the primary purpose of manipulating search rankings and not helping users," "no matter how it's created."

Google's helpful-content guidance asks the question every page matrix should face: "Does the content provide substantial value when compared to other pages in search results?" (Google: Creating helpful content)

None of this bans city pages or separate service pages. It bans pages whose only difference is the keyword.

Twins: two copies of every page for two audiences

One contractor's site had 52 pairs of pages: the same service written twice, once for each of two customer types. The bodies were paraphrases of each other. On one pair, the only differences were two headings, and the body text was identical down to the byte. Both pages in most pairs ranked somewhere from 20 to 70 for the same searches, competing with each other instead of with competitors.

The obvious fix is to merge every pair. The first plan did roughly that: it sorted pairs by search impressions and merged anything below a cutoff. That plan would have merged a page ranking seventh and ninth for its searches, and wiped out six top-10 rankings in the process.

So the rule changed to current ranking first, then traffic:

  • Already ranking in the top 20? Enrich the page. Don't touch the URL, the redirect or the H1.
  • Plenty of impressions across both pages? Rewrite them so they differ in substance, not in synonyms.
  • Moderate traffic? Merge the weaker page into the stronger one with a permanent redirect.
  • Everything else: absorb it into the surviving page.

The surviving URL is normally the one with more impressions, unless that would send buyers to the wrong section of the site. In at least one pair, the page with fewer impressions survived, because its section was where the people searching for that service actually belonged.

The merge itself needs care. Merge the substance, don't paste the pages together. On the first attempt, two retired pages took their FAQs and compliance details with them, and we had to recover them from version history. Now, before a page is retired, its FAQs and deliverables are checked line by line against the survivor.

In the end, 19 duplicate pages were consolidated onto single URLs with redirects, 151 internal links were added, and every retired URL was verified to reach its replacement in one hop.

The city-page matrix: 525 down to 93

A trades site had been built as a grid: every service, in every city, and then in every neighborhood. That came to 525 service-area pages. Search Console listed the large majority of the site's URLs as "Discovered – currently not indexed": Google had found them and decided they weren't worth crawling. The pages were near-duplicates of each other, and Google treated them that way.

We cut it back to what the business actually wins on: four core services per city instead of twenty-five, and a small set of neighborhood pages instead of more than a hundred. The removed pages return "410 Gone" so Google drops them cleanly, and two cities the business doesn't really serve came off entirely. Duplicated FAQ answers repeated across city pages were rewritten.

Then came the part that changes how you should think about this. Later, Google was still declining some of the remaining city-and-service pages. When we measured, the declined pages were less duplicated than some of the pages Google accepted. Duplication wasn't the whole story. The city's main hub page was ranking well for the same searches its child pages targeted, so Google had already picked a page to show. We froze new city-and-service pages, because adding more would only add more candidates for a slot that was already taken.

Hubs and spokes, earned one at a time

What works is a hub for each service, plus a small number of city or subtopic pages that each have a real reason to exist.

For one client adding a new service line, that meant one hub page and a handful of city pages. The other twenty possible city combinations were built but kept out of the index. Each live city page has to earn its place with:

  • a distinct local angle, not a swapped city name;
  • a short answer-first paragraph that names the ZIP codes served;
  • FAQ answers that each contain a concrete detail about that city;
  • its own photo, with city-specific alt text.

Before anything ships, the pages are compared against each other. If two city pages read too much alike, they don't go live.

For another client, we build each topic cluster in waves: the hub and one page first, to lock the pattern, then the rest. Every page has to carry things a template can't fake, like honest failure modes, real price ranges labeled "not a quote," and captioned photos of real work.

We hold our own site to the same rule. We dropped the idea of a page for every trade in every South Bay city, because a single-location business with one Business Profile building that grid is exactly the doorway pattern Google describes. City pages on our site are earned, and the build fails if one of them is too thin.

A clean audit doesn't mean unique pages

A large catalog site passed a post-launch audit with zero defects across 14 on-page checks: titles, descriptions, headings, schema, internal links, all of it. The same audit found hundreds of pages that were near-duplicates of each other, where the differences between product variants weren't meaningful to a reader.

The recommendation was to make the parent product page the one meant to rank, label the true differences in titles and headings, and keep pages that can't be told apart out of the index. Not to delete them in bulk. A checklist can confirm a page is well-built. It can't confirm the page is worth indexing.

Internal links: every page should be reachable

Google says "every page you care about should have a link from at least one other page on your site," and that good anchor text is "descriptive, reasonably concise, and relevant." (Google: Link best practices)

Our rules:

  • No orphans. Every page is reachable from at least three different pages on the site.
  • Hubs link down, spokes link up, each spoke links to two or three siblings, and every page links to a way to get in touch.
  • City pages link to service hubs, not to every single page. A city page that links to forty pages is a link farm.
  • Measure the built site, not the source files. On one site, counting links in the source files reported dozens of orphan pages. Crawling the built pages found two. Only the built version is what Google sees.

What we can and can't promise

On several of these sites, we have before-and-after counts of pages built, merged and linked. What we generally can't give you is a clean "indexed pages went from X to Y because of this change" chart. Google re-crawls on its own schedule, and other changes happen at the same time. Anyone who promises a page count is guessing. What we can promise is that every page we leave live has a reason to exist.

A twenty-minute structure check

  1. In Search Console, open Pages and look at "Crawled – currently not indexed" and "Duplicate" reasons. Note which page types show up most.
  2. Pick two of your city pages for the same service and read them side by side. If swapping the city name makes them the same page, Google sees them that way too.
  3. Search your main service plus a city. Which of your pages ranks: the hub or the city page? That's the page Google has chosen.
  4. Before merging anything, check its current ranking. Never retire a page that's already in the top 20 without a strong reason.
  5. Crawl your built site with any crawler to find pages with no links pointing to them.

If your site has hundreds of thin pages and an indexing report full of declines, that's our website rescue work. If you're building fresh, this is how we approach website design for plumbers, general contractors and home-services companies.

Connect

Let's have a direct conversation.

No pitch deck. No discovery call theater. Just a real conversation about your business.

Begin the conversation