Field Notes

On-Page SEO for Local Businesses: What Actually Matters

Local Titan · Field Notes · August 2026 · 9-minute read

Most on-page SEO advice is written for bloggers and software companies. A plumber in Mesa doesn't need a content strategy — they need the right words in the right places on about a dozen pages. This is the short list of what actually moves the needle for a local business site, in roughly the order worth fixing things, with examples you can copy today.

1. Title tags: the highest-leverage 60 characters on your site

The title tag is the blue link people see in Google. It tells Google what the page is about and tells a searcher why to click. Most local business sites get both jobs wrong, usually because the web designer left the defaults in.

A good local title tag has three parts: the service, the city, and the business name — in that order, because the left side carries the most weight and gets truncated last.

Before (a pattern you'll find on most local sites):

Home | Anderson Plumbing
Services | Anderson Plumbing

After:

Plumber in Mesa, AZ — 24/7 Emergency Service | Anderson Plumbing
Water Heater Repair & Installation in Mesa | Anderson Plumbing

Same idea for a dentist:

Before: Welcome | Ridgeview Dental
After:  Dentist in Boise, ID — Family & Cosmetic | Ridgeview Dental

Keep it around 50–60 characters so it doesn't get cut off, put one primary service per page (more on that below), and don't stuff — "Plumber Mesa Plumbing Mesa AZ Plumbers" reads like spam to humans, and Google frequently rewrites titles it doesn't trust.

Meta descriptions: your free ad copy

The meta description doesn't directly affect rankings — Google has said as much for years — but it heavily influences whether people click your result instead of the one above it. Treat it as ad copy: what you do, where, and one reason to pick you. Aim for roughly 150 characters.

Before: "We are a family owned business serving the valley
since 1987 with a commitment to excellence..."

After:  "Licensed Mesa plumber. Same-day water heater repair,
drain cleaning & emergency service. Upfront pricing —
call for a free estimate."

2. Heading structure: one H1, then an outline

Headings are the outline of the page. Simple rules that cover 95% of cases:

A quick self-test: read only your headings, top to bottom. If a stranger couldn't tell what the page offers and where, neither can Google.

3. Site architecture: one service, one page. One city, one page — carefully.

This is the single biggest structural win on most local sites. A page can realistically rank for one topic. If your entire offering lives on a single "Services" page with six bullet points, you're asking one page to compete against six dedicated pages from every competitor.

One service, one page. The dentist gets separate pages for cleanings & exams, implants, Invisalign, emergency dentistry. The plumber gets drain cleaning, water heaters, repiping, slab leaks. Each page gets its own title tag, H1, photos, FAQs, and a clear call to action. 300–600 words of genuinely useful, specific content beats 2,000 words of filler.

One city, one page — when you actually serve distinct cities. If you're based in Mesa but regularly work in Gilbert and Chandler, a page for each can earn rankings your homepage never will, because Google tends to favor pages that match the searcher's location and intent.

When NOT to build city pages: if the only thing that changes between them is the city name, don't. Twenty near-identical pages ("We proudly serve {CITY} with quality plumbing...") is exactly the "doorway page" pattern Google's spam policies name explicitly. Pages like that tend to either get ignored or drag the whole site down. Build a city page only when you can make it genuinely local: jobs you've done there, neighborhoods you cover, reviews from customers in that city, city-specific permits or water conditions. If you can't write anything true and specific about a city, you're not ready for that page — a well-written service-area section on your homepage is more honest and usually performs better.

4. NAP consistency: boring, foundational

NAP is Name, Address, Phone. Google cross-references your website against your Google Business Profile, Yelp, Facebook, and dozens of data aggregators to decide whether you're a real, established business. Inconsistency ("Anderson Plumbing LLC" here, "Anderson Plumbing & Drain" there, an old phone number on Yelp) muddies that signal.

Do this once: pick a canonical format for your name, address, and phone number. Put it in your website footer on every page, match it exactly on your Google Business Profile, then fix the top listings (Google, Yelp, Facebook, Apple Maps, Bing, and your industry directories). It's tedious, one-time work, and it removes a silent handicap.

5. Internal linking: hand Google a map

Internal links tell search engines which pages matter and what they're about. Local sites usually under-link. Three habits:

6. Images: compress, resize, describe

Real photos of your team, trucks, and work outperform stock photos with visitors — and they're an SEO asset if you handle them right.

7. Page speed and Core Web Vitals, in plain English

Google measures real-user experience with three numbers called Core Web Vitals. You don't need to memorize the acronyms; you need the plain-English versions:

MetricPlain EnglishGood target
LCPHow fast the main content appearsUnder 2.5 seconds
INPHow quickly the page reacts when tappedUnder 200 ms
CLSWhether things jump around while loadingMinimal shifting

Speed is a lightweight ranking signal, but its real cost is human: slow pages lose callers before the page finishes loading, especially on a phone with a weak signal. For most local sites, three fixes deliver most of the gain: compress your images (usually the #1 offender), remove plugins and scripts you don't use (old chat widgets, sliders, tracking pixels), and use decent hosting. Test any page free at PageSpeed Insights — it names your specific problems.

8. LocalBusiness schema: introduce yourself in Google's language

Schema markup is a small block of code, invisible to visitors, that states plainly who you are: business type, address, hours, phone. It doesn't guarantee anything, but it removes ambiguity and can make you eligible for richer search listings. Here's a minimal, real example for the plumber from earlier — it goes in the page's HTML, and Google's Rich Results Test will validate it:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "Anderson Plumbing",
  "url": "https://andersonplumbingaz.com",
  "telephone": "+1-480-555-0142",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1420 W Main St",
    "addressLocality": "Mesa",
    "addressRegion": "AZ",
    "postalCode": "85201"
  },
  "openingHours": "Mo-Fr 07:00-18:00",
  "areaServed": ["Mesa", "Gilbert", "Chandler"]
}
</script>

Use the most specific @type that fits (Plumber, Dentist, Electrician — falling back to LocalBusiness), and make sure every value matches your site and Google Business Profile exactly. Schema that contradicts the visible page is worse than none.

9. Mobile is the site

Google indexes the mobile version of your site — that's official policy, not opinion — and for emergency services most searches happen on a phone. Pull up your site on your own phone and check: Is the phone number a tap-to-call link (<a href="tel:+14805550142">)? Can you read the text without pinching? Do buttons work with a thumb? Is the thing a panicked customer needs — call now — visible without scrolling? If any answer is no, that's today's task.

The 5 most common mistakes

  1. The homepage that says nothing. "Welcome to our website. Quality you can trust." No service, no city, no reason to stay. Your homepage's first screen should state what you do, where, and how to reach you.
  2. One "Services" page for everything. Covered above — this is the most common structural cap on a local site's visibility.
  3. Doorway city pages. Twenty templated pages with the city name swapped. Risky and rarely effective.
  4. Titles left at defaults. "Home", "About", "Untitled" — the highest-value real estate on the site, blank.
  5. Multi-megabyte photos. A beautiful gallery that takes eight seconds to load on a phone is a beautiful reason to call your competitor.
None of this is clever. It's a finite list of unglamorous fixes — and that's precisely why it works: most of your competitors won't do it.

The 15-point checklist

Copy this, work through it page by page:

  1. Every page has a unique title tag: service + city + business name, ~50–60 characters.
  2. Every page has a meta description written like ad copy (~150 characters).
  3. Exactly one H1 per page, naming the service (and usually the city).
  4. Headings form a sensible outline you could skim and understand.
  5. Each major service has its own dedicated page.
  6. City pages exist only where you can say something true and specific about that city.
  7. Name, address, and phone are identical on your site, Google Business Profile, and major directories.
  8. NAP appears in the footer of every page.
  9. Every service page is reachable from the main navigation.
  10. Internal links use descriptive anchor text, not "click here."
  11. All images are resized and compressed; no file over ~300 KB without a reason.
  12. Every meaningful image has plain-English alt text.
  13. Your key pages pass PageSpeed Insights without red flags you can't explain.
  14. LocalBusiness (or more specific) schema is on the site and validates in the Rich Results Test.
  15. On a phone: tap-to-call number, readable text, and a visible call to action without scrolling.

You don't need to finish this in a weekend. A local site that honestly clears all fifteen points is ahead of most of its competitors — and everything on the list stays fixed once you fix it.

Want to know where your business actually stands?
Apply for a free visibility audit: your rankings, your AI-assistant mentions, and where competitors are ahead. Free, and yours to keep either way.

Apply for a Free Audit