Local Keyword Research: Where Every Local SEO Engagement Starts

A Dallas HVAC company has been targeting “HVAC repair Dallas” for eighteen months. Rankings are mediocre. The GBP has one secondary category. The geogrid tracks three keywords someone chose because they sounded right.

Four months into the engagement, someone finally runs proper keyword research. The discovery: the highest-volume query in the market is “AC installation Dallas” — a concept the client has zero coverage for. The GBP doesn’t list it as a service. There’s no page for it. It doesn’t appear in geogrid tracking.

Eighteen months of optimization around the wrong concept cluster.

This is what happens when keyword research gets skipped or rushed. The campaign starts with assumptions instead of evidence. Every decision downstream — what GBP categories to claim, what pages to build, what to track on geogrids, what content to create — compounds the original mistake.

Keyword research isn’t one task among many. It’s the foundation everything else builds on.

Why Keyword Research Comes First

Before you optimize a GBP profile, you should know which concepts that profile needs to cover. Before you run a geogrid scan, you should know which keywords to track and why. Before you build a location page, you should know which concept cluster it serves and what it needs to contain.

Keywords first. Everything else follows.

Most local SEO problems that look like execution problems are actually research problems:

Wrong GBP categories. A dental practice claims “Dentist” as their primary category but their highest-value queries are “emergency dentist” and “cosmetic dentist” — concepts that require different secondary categories to surface for. Nobody checked whether the category structure maps to the queries the business needs to appear for.

Misaligned geogrid tracking. A plumbing company tracks “plumber Dallas” on their geogrid when the highest-value queries in their market are “water heater repair Dallas” and “drain cleaning Dallas.” The primary term matters less than the specific service concepts. The geogrid shows rankings that don’t correlate to revenue because the tracked keywords don’t match the concepts that produce leads.

Content that misses the market. A roofing company builds a comprehensive page for “roof repair” but doesn’t cover “storm damage roof repair” — a distinct concept with its own search volume, its own intent, and its own conversion pattern. The page ranks for some queries but misses the concept cluster that drives urgent, high-converting searches.

Each of these is a keyword research failure. The execution looked competent. The foundation was wrong.

From Keywords to Concepts: The Translation That Matters

A keyword list for a Charlotte roofing company might contain 80 terms. “Roofing company Charlotte,” “roofer Charlotte NC,” “Charlotte roofing contractor,” “roof repair Charlotte,” “storm damage roof repair Charlotte,” “emergency roof repair,” “roof replacement Charlotte,” “how much does a new roof cost,” “best roofing material for NC” — dozens of variations.

Those 80 terms represent maybe 7 or 8 distinct concepts:

  1. General roofing services (primary)
  2. Storm damage repair
  3. Emergency roofing
  4. Roof replacement
  5. Roof inspection
  6. Gutter services
  7. Material-specific queries (metal roofing, shingle repair)
  8. Informational queries (cost, lifespan, when to replace)

Treating each of those 80 terms as a separate target produces thin scattered content that cannibalizes itself. Five pages all competing for slight variations of “roofing Charlotte” — none ranking well because Google doesn’t know which one to show.

Recognizing the 7-8 concepts and building complete coverage of each produces a content architecture that Google can understand as topically authoritative. One comprehensive location page for general roofing services. A dedicated page for storm damage repair — a genuinely distinct concept with different customer needs. A page for roof replacement, covering what’s different about that job type. Informational blog content for the research-phase queries.

The concept clustering process transforms a keyword list into a content map:

What a concept cluster is: A set of keywords that share the same underlying topic and user intent. They would all be served by the same piece of content or the same GBP optimization. “Emergency plumber Charlotte,” “24 hour plumber Charlotte,” “after hours plumbing Charlotte,” and “plumber open now Charlotte” are four keywords but one concept: urgent plumbing need outside business hours.

How you identify clusters: Geographic variants of the same term belong together. Service variants belong together. Modifiers that don’t change the core intent belong together. A cluster has one primary keyword (highest volume, most representative) and supporting keywords (variants that the same content serves).

What changes when you organize by concept: Instead of asking “what page should target this keyword?” you ask “what content completely covers this concept?” The page isn’t optimized for a keyword — it demonstrates expertise on a topic. That’s what Google’s systems are designed to reward.

The local-content-strategy skill automates this clustering. But understanding the principle matters: keywords are expressions of need. Concepts are what the need is actually about. The job of keyword research is to surface the keywords, then translate them into concepts that tell you what to build.

The Local Keyword Research Workflow

The complete process uses the local-keyword-research skill with LocalSEOData’s keyword endpoints. Here’s what it covers:

Building the Geo-Modifier Matrix

Local keywords exist at multiple geographic levels:

City level: “plumber Phoenix” — the primary geographic modifier for most local businesses. Highest volume, most competitive, the foundation of local search visibility.

Neighborhood/suburb level: “plumber Scottsdale,” “plumber Tempe” — secondary geographic modifiers. Lower volume individually but meaningful in aggregate. Worth targeting when the business serves multiple distinct areas.

County/regional level: “plumber Maricopa County” — occasionally relevant for service-area businesses, usually lower priority than city/neighborhood.

Near-me level: “plumber near me” — fundamentally different from the others. Near-me intent is answered by the map pack based on proximity and GBP prominence. You cannot rank a page for “plumber near me” from a user 10 miles away. These keywords matter for understanding search behavior, but they don’t produce page content — they’re won through GBP signals.

The keyword research builds the full matrix: primary service terms × geo-modifiers at each level. The output shows which combinations have volume and which don’t.

Intent Classification

Each keyword’s intent type determines where it belongs in the content architecture:

Transactional + geo-modified = location page or GBP service. “Plumber Charlotte NC” has hiring intent. It needs a location page if volume justifies it, or at minimum a GBP service listing if it’s a specific service variant.

Informational = blog post or FAQ. “How much does a plumber cost” has research intent. The searcher isn’t ready to hire — they’re gathering information. This needs content, but not a location page.

Near-me = GBP prominence signals, no page. “Plumber near me” is won through proximity, reviews, and GBP completeness. The content action is GBP optimization, not page creation.

Navigational = homepage. “[Business Name] Charlotte” is navigational — the searcher already knows the business. Usually no action needed unless the homepage isn’t ranking for the business name.

The classification is the most important decision in keyword research because it determines what you build. A keyword classified wrong produces content in the wrong format that doesn’t serve the search intent.

Volume and Competition Data

LocalSEOData’s search_volume and keyword_suggestions endpoints provide the quantitative foundation:

Monthly search volume in local context. 50 monthly searches for “plumber Scottsdale” is meaningful local volume. The same absolute number that would be ignored in national SEO represents real opportunity when the geographic scope is constrained.

Competition level based on who’s ranking and how established they are. High competition doesn’t mean avoid — it means the keyword represents value. Low competition might mean opportunity or might mean the keyword doesn’t convert.

Related keyword suggestions that expand the initial research. Seed terms produce variations you wouldn’t have thought of.

Competitor Keyword Gap Analysis

The keywords_for_site endpoint pulls what competitors rank for that you don’t. The gap reveals concept coverage they’ve built that you haven’t.

A competitor ranking for “gas line repair Charlotte” when you don’t have coverage for that concept isn’t just a keyword gap — it’s a concept gap. They’ve built content demonstrating expertise on gas line repair. You haven’t. The gap analysis surfaces these conceptual blind spots.

The most valuable gaps are concepts you should be covering but aren’t — services you offer that you haven’t built visibility for. The gap analysis catches what you missed.

AI Search Keyword Considerations

The ai_keyword_data endpoint identifies query patterns with AI search implications:

Question-format queries that generate AI Overviews: “how much does a plumber cost in Charlotte,” “what to do when pipes burst,” “signs you need a new water heater.” These informational queries are high-value opportunities because content that answers them well appears in both traditional organic results and AI-generated responses.

Conversational queries that AI systems handle differently from traditional search. The phrasing matters — “best plumber in Charlotte for old house plumbing” is the kind of natural-language query AI systems excel at routing.

Including AI keyword patterns in the research ensures the content strategy addresses both traditional and AI-mediated search.

Near-Me Keywords: The Special Case

This is one of the most misunderstood aspects of local keyword research.

“Plumber near me” has significant search volume. Practitioners see that volume and think: I should create a page targeting “plumber near me.”

That page will never rank for near-me queries.

Here’s why: near-me intent is answered by the local pack, not by organic results. When someone searches “plumber near me,” Google uses their location to show nearby businesses in the map pack. The organic results below the pack might show “plumber [city]” pages, but they’re not ranking for the near-me query — they’re ranking for the city-modified version.

You cannot optimize a page to appear for “plumber near me” from a user in a location where you’re not geographically relevant. The near-me ranking is determined by:

  • Proximity to the searcher
  • GBP prominence (reviews, completeness, engagement)
  • GBP relevance (categories, services matching the query)

These are GBP signals, not page content signals.

Near-me keywords belong in the keyword research output. They represent real search behavior and real intent. But the action column should read “GBP signal work only — no page.” The keyword research should explicitly flag this so practitioners stop building near-me pages that don’t serve the intent.

What the Keyword Research Output Feeds

Keyword research doesn’t end when the list is produced. The output feeds into every other local SEO workflow:

Content Strategy and Concept Clustering

The keyword list is input to the local-content-strategy skill. That skill:

  • Groups keywords into concept clusters
  • Assigns each cluster to the right content vehicle (location page, GBP service, blog post, FAQ, nothing)
  • Selects geogrid tracking keywords with reasoning
  • Confirms GBP category and service additions
  • Maps the internal linking architecture

Without keyword research, content strategy is guesswork. With it, content strategy is systematic organization of known demand.

GBP Categories and Services

The keyword research output includes explicit GBP recommendations:

Categories to claim. If “emergency dentist Charlotte” is a significant concept cluster, the GBP needs “Emergency Dental Service” as a secondary category. The category claim expands query eligibility for the entire cluster.

Services to add. Every service-specific keyword cluster should have a corresponding GBP service listing. “Drain cleaning Charlotte” as a keyword means “Drain Cleaning” as a GBP service.

These GBP actions can happen immediately — they don’t require any content creation. They’re the fastest wins from keyword research.

Geogrid Tracking Keyword Selection

The keywords tracked on geogrids should come from the keyword research, not from intuition:

One keyword per major concept cluster. Don’t track five plumbing variants — pick the one that best represents each distinct concept.

Primary revenue concepts prioritized. Track keywords that represent the services generating revenue.

Distinct geographic coverage. If the business serves multiple areas, select keywords that test visibility in each.

The keyword research output includes geogrid tracking recommendations with reasoning for each selection.

Competitive Analysis

The competitor keyword gap becomes a concept gap map. For each keyword a competitor ranks for that you don’t, ask: is this a concept I should own?

The gap analysis feeds competitive intelligence. It shows where competitors have built coverage you haven’t. It reveals market opportunities and competitive vulnerabilities.

Running Keyword Research with Claude

The prompt:

"Do local keyword research for a residential plumbing company in Charlotte NC.
Give me:
- Top 20 transactional keywords with volume, competition, and intent
- Top 10 informational/content keywords
- GBP service and category additions
- Keyword gaps vs. [competitor domain]
- Geogrid tracking keyword recommendations"

The skills that fire: dispatch → local-keyword-research + localseodata-tool

The data pulled: keyword_suggestions, search_volume, related_keywords, keywords_for_site, ai_keyword_data

The output: a complete keyword foundation organized by intent, with GBP actions specified, competitor gaps identified, and geogrid tracking selected.

From there, the output feeds into local-content-strategy for concept clustering and page assignment. Then into local-content-briefs for what each piece must contain. Then into execution.

The workflow is: research → strategy → briefs → execution → audit. Keyword research is step one. Everything else follows from what it produces.

Keyword Research as a Recurring Workflow

Keyword research isn’t one-and-done. Markets shift. New competitors appear. Seasonal patterns change demand. Search behavior evolves.

New client onboarding: Full keyword research before any other work begins. The foundation for the entire engagement.

Quarterly refresh for active campaigns: Check for new keyword opportunities, emerging competitors, shifts in volume patterns. The market from six months ago isn’t the market today.

When rankings plateau despite technical work: If GBP is optimized, citations are clean, content exists, and rankings aren’t moving — revisit the keyword foundation. You might be optimizing for the wrong concepts.

When competitive landscape changes: A new competitor enters the market. An existing competitor launches a content campaign. The keyword research refresh surfaces what changed and what it means for your strategy.

The cadence matters. Keyword research that’s current produces strategy that’s relevant. Research from two years ago might be targeting concepts that don’t match current search behavior.

Start Here

If you haven’t done keyword research for a client, that’s the first step. Before GBP optimization, before content planning, before geogrid setup.

Run the research. Get the keyword foundation. Then build everything else on top of it.

The local-keyword-research skill produces the complete output in one prompt. The local-content-strategy skill organizes it into a content architecture. The workflow is designed to chain.

Keywords are the raw material. Concepts are what you build. The translation between them is where local SEO strategy begins.