On-Page SEO for St. Louis Service Businesses
A practical on-page SEO guide for St. Louis area service businesses: title tags, service area pages, schema, and internal linking that actually rank.
Chris Melson, Founder & CEO
, 11 min read
In this guide
On-page SEO is what a St. Louis service business controls directly on its own site: title tags, headings, page structure, internal links, schema markup, and copy. It excludes Google Business Profile, citations, reviews, and backlinks, which are off-page. Whitespark's 2026 local ranking factor research puts on-page signals at roughly 19% of local pack ranking weight, versus roughly 32% for GBP.
Most "SEO tips for St. Louis businesses" articles blur those two jobs together, and that confusion wastes budget. A plumber can rewrite every title tag on the site and still sit at position 60 if the Google Business Profile is thin, and a business with a great GBP can still lose visitors to a competitor with a page that actually answers the question. This article covers only the on-page half, and where that work stops mattering.
What Should Your Title Tags and H1s Actually Say?
A title tag and H1 for a local service page should name the specific service and the specific suburb or county, not a vague "St. Louis" umbrella. "Water Heater Repair in St. Charles County, MO" tells a searcher and Google exactly what the page is for; "SEO Company St. Louis" tells neither.
That specificity matters more than it might seem: a title tag competing on "SEO Company St. Louis" borrows a marketing-agency framing that has nothing to do with a plumbing, roofing, or remodeling business's own site, and it competes against digital marketing agencies for search intent your actual customers never had. A homeowner searching for water heater repair is not typing "St. Louis SEO company." Match the page to the query someone would actually type when they need your service done.
Here's the pattern for three common trades:
- Plumber: Title: "Emergency Plumber in Jefferson County, MO | [Business Name]." H1: "Emergency Plumbing Repair in Jefferson County."
- Roofer: Title: "Roof Replacement in St. Louis County, MO | [Business Name]." H1: "Roof Replacement Serving St. Louis County."
- Remodeler: Title: "Kitchen Remodeling in St. Charles County, MO | [Business Name]." H1: "Kitchen Remodeling in St. Charles County."
On length, Backlinko's analysis of 4 million Google search results found that titles in the 40-60 character range see meaningfully higher average click-through rates than titles outside that window (Backlinko). Aim for that range, but don't over-engineer it: a 2025 study found Google rewrote 76% of title tags it displayed in search results, up from 61% in a 2023 study, and it removed brand names from 63% of the titles it changed (Search Engine Land, 2025). Write a clear, specific title and move on. Google will often rewrite it anyway, and fighting that is a losing use of your time.
Should You Have One Service Page or a Page Per County?
St. Louis County, St. Charles County, Jefferson County, and St. Louis City are not interchangeable neighborhoods of one blob called "the St. Louis area." They're four distinct markets by size and by income, and a single generic "service areas" page treats a 995,569-person county the same as a 229,458-person county with a genuinely different customer base.
2024 Population, St. Louis Metro Target Counties
Source: U.S. Census Bureau population estimates
Income tells the same story from a different angle. St. Charles County's 2024 median household income was $104,692, against $56,160 in St. Louis city, an 86% gap (Data USA, St. Charles County; Data USA, St. Louis city). A remodeler's pricing conversation, project scope, and even the photos that resonate genuinely differ across that range. That's a real business reason to build distinct pages, not a rationalization for padding your sitemap.
But a page per county only helps if each page earns its existence. Google's spam policies explicitly define "doorway abuse" as pages built to rank for overlapping searches that funnel visitors to a less useful, intermediate destination (Google Search Central). A page that only swaps "St. Louis County" for "Jefferson County" while every other sentence stays identical is exactly what that policy targets. Each county page needs something the others don't: the specific ZIP codes or cities you cover there, response-time or crew-availability notes particular to that area, and, where it's true, project photos or a review from a customer in that county. If you can't fill a page with anything county-specific, you don't have a case for a separate page yet.
Untap Web's local SEO service builds this structure at the metro level; see how it's applied for every Missouri location Untap Web serves, including the St. Louis metro service area page.
How Should Internal Linking Actually Connect These Pages?
A hub-and-spoke structure gives Google, and visitors, a clear path from your homepage or main service page down to each county page, and from each county page sideways to its neighbors. Your top-level service page links out to every county page you serve; each county page links back up and across to nearby counties.
Untap Web's own St. Louis metro location page uses this same pattern to connect its county pages, and it's a useful reference for how the linking should look in practice.
This isn't cosmetic. A Zyppy study analyzing roughly 23 million internal links across about 1,800 websites (roughly 520,000 URLs) found that pages with 40-44 internal links pointing to them received about four times the average Google Search clicks of pages with only 0-4 internal links pointing in, with the benefit leveling off and reversing past roughly 45-50 links (Zyppy). The authors are careful to note this is correlation, not proof that adding links causes rankings to rise. But the practical read for a four-county service area site is straightforward: a county page that nothing else on your site links to is starting from a real disadvantage, whatever else is right about it.
Anchor text matters too. "Learn more" and "click here" tell Google nothing about the destination page. "Water heater repair in St. Charles County" tells both a reader and a crawler exactly what's on the other end of the link, and that's the pattern to use consistently across your navigation, footer, and body copy.
What Schema Actually Helps a Service Business Rank?
Schema markup is structured data embedded in your page's code that tells Google explicitly what a human infers by reading: this is a business, here's its name, address, phone number, and service area. Google's own LocalBusiness documentation requires only name and a PostalAddress, though it recommends telephone, geo coordinates, and aggregateRating too (Google Search Central).
Beyond those required and recommended fields, priceRange, openingHoursSpecification, and url are also worth including; none of them are hard to add once the base object is in place.
One detail service businesses commonly get wrong: Google specifically recommends using the most specific LocalBusiness subtype available, ProfessionalService, HomeAndConstructionBusiness, Plumber, RoofingContractor, and so on, rather than the generic LocalBusiness type. That specificity is a free, direct signal about exactly what kind of business Google is looking at, and it costs nothing extra to implement correctly the first time.
This article won't re-walk every schema type in detail, since Untap Web already has a dedicated guide covering that: see our schema markup guide for the full breakdown of which types actually matter, including for AI answer engines, not just Google's own rich results.
Where Does NAP Consistency Break Down On the Page Itself?
NAP (name, address, phone) usually gets discussed as a directory problem: does your Yelp listing match your Google Business Profile? That's real, but it's off-page. A separate, on-page version does just as much damage and gets far less attention: does your own footer match your page copy, and does either match your schema markup?
It's a more common failure than it sounds. A business changes its phone number and updates the footer but not the schema block embedded in the page's code. A page copy references "serving St. Louis and St. Charles County" while the schema's areaServed field still lists only the original county from when the page was built. A multi-location business shows the wrong office's address in a page's schema because the template was copied from another location page without updating every field.
None of these mistakes require a directory audit to catch, only a careful read of your own page and its underlying markup against each other. When your footer, your visible page copy, and your schema all agree, both a visitor and Google's crawler get one consistent answer instead of three conflicting ones.
What On-Page Mistakes Keep St. Louis Service Sites Stuck at Position 50+?
Most St. Louis area service sites Untap Web has reviewed share the same handful of on-page problems, and any single one can cap a page's ranking regardless of how strong the off-page work is. Five mistakes show up more than any others, and fixing even one tends to move rankings:
- A generic H1 that never names a specific service or location ("Welcome to Our Company" instead of "Roof Replacement in Jefferson County").
- One page trying to cover four counties at once, with no county-specific detail to justify the breadth.
- Missing or generic schema, or schema using the base
LocalBusinesstype instead of a specific subtype. - Thin, boilerplate service copy repeated near-verbatim across pages with only the city name swapped, the exact pattern Google's doorway-page policy targets.
- Orphaned pages with no internal links pointing in, sitting outside the hub-and-spoke structure entirely.
Any single item on that list is fixable in an afternoon. Most struggling sites we've reviewed have three or four of them at once, which is why fixing one rarely moves the needle by itself; the fixes compound.
On-Page vs. Off-Page: Where Does the Line Actually Fall?
On-page SEO is what you control by editing your own website: title tags, H1s, page structure, internal links, schema, and copy. Off-page SEO is everything outside your site: Google Business Profile, citations, reviews, and backlinks. Whitespark's 2026 research assigns roughly 19% of local pack ranking weight to on-page signals, versus roughly 32% to GBP alone (Whitespark, 2026).
Reviews, citations, links, and behavioral signals make up most of the remaining weight in that same ranking model, split across signals neither on-page nor GBP work directly controls.
Roughly a fifth of what determines local ranking sits on your own site; roughly four-fifths sits off it. That split means no amount of on-page polish substitutes for a neglected Google Business Profile, and no amount of GBP optimization substitutes for a page with a generic H1 and no schema. They're complementary, not interchangeable. If your on-page work is solid but your GBP is thin, outdated, or short on reviews, that's the next place to look, and it's worth reading as its own project: see our Google Business Profile optimization guide for the off-page counterpart to everything covered here.
Getting the on-page layer right for a four-county service area, distinct pages with real content, title tags and H1s that name the service and the suburb, schema that matches your actual page copy, and internal links that connect the whole structure, is detailed, ongoing work, not a one-time checklist. It's also exactly the kind of work Untap Web's $649/mo Growth plan handles as part of ongoing local SEO management, county by county, rather than as a single page nobody revisits. For a sense of what that ongoing work typically costs across the metro, see our St. Louis local SEO pricing breakdown.
Questions
What's the actual difference between on-page and off-page SEO for a service business?
On-page SEO is everything you directly control on your own website: title tags, headings, page structure, schema markup, and copy. Off-page SEO is everything that happens outside your site, mainly your Google Business Profile, citations, reviews, and backlinks. Whitespark's 2026 local ranking factor research weights on-page signals at about 19% and GBP signals at about 32%, so both layers matter, but they're separate jobs.
Should I have one service page or a separate page for each county I serve in the St. Louis area?
If you genuinely serve St. Louis County, St. Charles County, Jefferson County, and St. Louis City with real differences in service area, pricing, or crew logistics, separate pages make sense, provided each one has substantive, distinct content. A single generic 'service areas' page undersells markets that differ this much in size and income. Swapping only the city name across near-identical pages risks tripping Google's doorway page spam policy instead of helping you rank.
What should my title tag say for a local service page in St. Louis?
Lead with the service and the specific suburb or county, not just 'St. Louis' alone: something like 'Water Heater Repair in St. Charles County, MO' rather than 'SEO Company St. Louis' framing borrowed from marketing agencies. Keep it in the 40-60 character range where Backlinko's analysis of 4 million search results found the strongest average click-through rates, and expect Google to rewrite it anyway if it's off-target: a 2025 study found Google changed 76% of title tags.
Does my service business need schema markup, and which type matters most?
Yes. Google's own documentation for LocalBusiness structured data requires only name and address, but recommends telephone, geo, and a specific subtype like ProfessionalService or HomeAndConstructionBusiness rather than the generic LocalBusiness type. For a full breakdown of which schema types actually move the needle for AI answer engines as well as Google, see our dedicated schema guide.
How much does internal linking actually affect local rankings?
More than most service business owners assume. A Zyppy study of roughly 23 million internal links across 1,800 sites found that pages with 40-44 internal links pointing to them got about 4 times the average Google clicks of pages with 0-4 internal links, with the benefit leveling off past 45-50. It's correlation, not proof of causation, but the direction is consistent: orphaned pages with no internal links in rarely rank.
What are the most common on-page SEO mistakes on St. Louis service business websites?
The repeat offenders: a generic H1 that never names a service or location, one page trying to cover four counties at once, missing or generic schema, thin boilerplate copy repeated across pages with only the city name changed, and pages with no internal links pointing to them. Any one of these caps how high a page can rank regardless of how good the off-page work is.
Can strong on-page SEO make up for a weak or neglected Google Business Profile?
No. Whitespark's ranking factor research puts Google Business Profile signals at roughly 32% of the local pack ranking equation, the single largest category, well above on-page signals at about 19%. A technically flawless page still loses to a competitor with a well-maintained, review-rich GBP. The two layers are complementary, not substitutes for each other.
Sources
- Whitespark, "Local Search Ranking Factors" 2026 report (retrieved 2026-07-31) (opens in a new tab)
- Search Engine Land, "Google changed 76% of title tags in Q1 2025" (retrieved 2026-07-31) (opens in a new tab)
- Backlinko, "We Analyzed 4 Million Google Search Results" (retrieved 2026-07-31) (opens in a new tab)
- Zyppy, "Internal Links: An SEO Case Study" (retrieved 2026-07-31) (opens in a new tab)
- Google Search Central, "Spam policies for Google web search" (retrieved 2026-07-31) (opens in a new tab)
- Google Search Central, "Local Business (LocalBusiness) structured data" (retrieved 2026-07-31) (opens in a new tab)
- U.S. Census Bureau population estimates, via site pSEO dataset (retrieved 2026-07-31) (opens in a new tab)
- Data USA, St. Charles County, MO profile (retrieved 2026-07-31) (opens in a new tab)
- Data USA, St. Louis city, MO profile (retrieved 2026-07-31) (opens in a new tab)
Next step
Local SEO and Google Business Profile
Rank in the map pack for the towns you work in, with a Google Business Profile that stays current. Stand Up and Growth have fixed prices, so your bid is instant. Custom work is reviewed by Chris, who gets in touch to talk it through.