How to Find Keywords for Local SEO: Start With the Phone, Not a Keyword Tool
Local keyword research without a paid tool: what your callers say, Google autocomplete and Search Console, then one page per job and one per town you serve.

On this page
- How Do I Find Keywords for Local SEO?
- Source 1: What Do Your Callers Say on the Phone?
- Source 2: What Does Google Autocomplete for Your Service and Town?
- Source 3: What Does Search Console Show After a Few Weeks?
- The Sub-Service List: Every Job You Do, One Page Each
- The Town List: Every Town You Drive To
- How Do the Two Lists Turn Into Pages?
- How Does the Weekly Check Tell Me Which Sub-Service Is Climbing?
- When Should I Use a Keyword Tool?
- Other ways to do this, and what they cost you in hours
- Quick Checklist
- Final Thoughts
Most local keywords never show up in a keyword tool. Your callers, Google's autocomplete and Search Console already have them. Here is how I find them and turn them into pages.
How Do I Find Keywords for Local SEO?
I often get asked this one. Which keyword tool should I pay for? How do I find local keywords when the tool says my town has zero searches? Do I need a page for every keyword?
My answer: forget the keyword tool first. Keyword research only means finding the words people type into Google when they need you. In a small town, most keyword tools show next to nothing. People there still search, and they still call.
The local keywords are already sitting in three places that cost nothing: what your callers say on the phone, what Google autocompletes when you type your service and your town, and Search Console (Google's own report on your website) once your site has been live for a few weeks.
This post is for two readers. If you own a plumbing, roofing, HVAC or cleaning company and you are tired of paying Angi or Thumbtack per lead, this is how you decide which pages your website needs. If you are starting a local SEO agency or a lead gen business, this is the research I do before every site I build.
In this post I will cover the three free sources, the two lists that come out of them, how those lists become pages, and where a keyword tool still helps.

Source 1: What Do Your Callers Say on the Phone?
Your phone is the best local keyword research tool you own. The person calling you typed something into Google five minutes earlier, and they use the same words on the phone.
We transcribe calls on our pay per call and rank and rent sites. Across our recorded plumbing calls, these are the phrases callers said most:
| What plumbing callers say | Mentions in our transcripts |
|---|---|
| Gas leak | 76 |
| Leak detection | 64 |
| Septic tank | 53 |
| Water heater | 48 |
| Sump pump | 23 |
| Garbage disposal | 21 |
Individual results vary, and your town will have its own list. But every phrase on it is a job: a gas leak, a backed-up septic tank, a leaking water heater. Each of those can be a page on your site.
Why people call matters too. In our data, about 40% of plumbing calls are quote shopping, people asking what a job will cost. Scheduling comes next, and emergencies are about 12%. Individual results vary. So a service page that answers the price question and the "can you come today" question is answering the call before it rings.
What I'd do as an owner: for one week, write down the job every caller names, in their words. If they say "hot water heater", write "hot water heater", even if you call it something else. If your calls go through a tracking number with recordings, listen to ten of them on a slow afternoon.
If you are a builder, put a tracking number on every call button and every site you run becomes a keyword source. My post on call tracking software for rank and rent covers the options.
Source 2: What Does Google Autocomplete for Your Service and Town?
Open Google in a private window. Type your service and your town slowly, like "water heater repair" plus your town, and stop before you finish. Write down every suggestion.
Then scroll to the bottom of the results page. The related searches there are a second list.
Three things I look for in those suggestions:
- The sub-service plus the town. "garbage disposal repair" plus the town name is a page waiting to be written.
- The problem instead of the service. "water heater leaking" tells you what the FAQ on that page should answer.
- The price. Anything with "cost" or "how much" matches the quote shoppers from the phone.
Autocomplete gives you no numbers. That's fine. Search Console gives you the numbers later, from your own pages.
Source 3: What Does Search Console Show After a Few Weeks?
Google Search Console shows every search your pages appeared for, how often they were seen (impressions), the clicks and the average position.
Most owners never open it, and it's the best of the three. It tells you what Google has already matched your page to.
Here is a real one. A small-town plumbing page for Summerton, SC, with every sub-service in its title, showed up for 78 different queries and 23,168 impressions in about 100 days. One page. I wrote up the whole breakdown, query by query, in one page, 78 keywords.
How I read it:
- Export the queries for one page.
- Group them by sub-service. "water heater repair", "tankless water heater" and "water heater replacement" go in one bucket.
- Look at impressions first, then position. A sub-service with lots of impressions at position 8 to 20 is close to page one and worth a push.
- Look for jobs that show up without being on the page. That is Google telling you what else the town wants.
The catch is the "few weeks". The page has to be live before Search Console has anything to say, so the two lists below come first.
The Sub-Service List: Every Job You Do, One Page Each
Now turn the three sources into a list. Sit down with a sheet of paper and write every job you do. Skip the trade name and write the jobs.
For a plumber it could look like this:
- Water heater repair and replacement
- Leak detection
- Gas line repair
- Drain cleaning
- Sump pump repair
- Garbage disposal repair
- Septic tank service
- Slab leak repair
Then check each line against the three sources: callers, autocomplete, Search Console. A job that shows up in two of the three goes to the top.
One rule here, and I don't bend it: only the jobs you do. A page for a job you turn down brings calls you can't take.
Each job gets one page. A water heater repair page for your town can match the water heater searches in a way your homepage can't, because the homepage is about eight things at once. On my data sites I also stack the sub-services into the homepage title to collect impressions (the Summerton trick), but every sub-service still gets its own page.
If you're a builder, write this list once per niche and reuse it in every city. Search Console tells you later which lines matter where.
The Town List: Every Town You Drive To
The second list is places: every town, suburb and neighborhood you drive to for a job, out to the edge of where you would still take the call.
The quickest way: look at where your last 20 jobs came from. Those are your first towns.
Each town gets one page. That page should say something true about the place, like the neighborhoods you work in or what the weather does to pipes there. A copy of your main city page with the name swapped is not a town page. My guide on location pages that rank goes through what a good one has.
The keywords for a town page are simple: your service plus the town name, and "near me" searches from people who are standing in that town.
How Do the Two Lists Turn Into Pages?
This used to be the slow part. Eight services and eight towns meant sixteen pages to write, plus a homepage, FAQs, schema (code that tells Google your business name, phone, services and area) and links between all of them.
Now I do it with Local Sites Pro, the builder I made for my own sites. You enter the niche, the city, the company name and the phone number. Then you paste your sub-service list and your town list, or let the AI suggest them and edit what it gives you.
About ten minutes later you have a live site: a homepage, one page per service, one page per town, FAQs, schema, internal links and AI images. US and Australian city pages get local data like neighborhoods, landmarks and climate in the copy.

A few things I care about as an owner of these sites:
- Hosting is free and fast on your own Cloudflare account, forever. No hosting bill, no plugin updates, nothing to hack, nothing to speed up.
- Every call button uses the number you enter. A tracking number works, so the phone keeps feeding Source 1.
- You own it. A lead you buy from Angi is gone when you stop paying. A page you own keeps ringing.
Every page is editable in the dashboard, but you don't need the dashboard. Through the MCP (a connector that lets an AI assistant use Local Sites Pro for you), you connect Claude or ChatGPT and type the request in your own language: "Build a plumbing site for my company. These are my services. These are the towns I drive to." Claude works out of the box. ChatGPT needs Developer Mode.
Starter is $15 one-time for 3 sites. Pro is $119 a year for unlimited sites, a launch price (regular $219). The AI runs on your own OpenRouter key, typically under $1 a site. Plans are on the pricing page, and the plumbing website builder page shows a plumbing site.
How Does the Weekly Check Tell Me Which Sub-Service Is Climbing?
Connect Search Console to Local Sites Pro in one click. Then connect the MCP (https://app.localsites.pro/api/mcp) to Claude or ChatGPT and set a scheduled check for every week. Claude pulls your search queries with gsc_performance, then uses gsc_opportunities to find pages with impressions and few clicks, the ones sitting at positions roughly 8 to 20. It proposes a new title, a new H1 (the main heading on the page) or a new page, and it waits for your yes before it runs update_page_content and publish_website. Claude proposes, you approve. Nothing goes live without your yes. In plain words: the website keeps getting better while you are on the job.
What "climbing" looks like in that weekly report:
- A sub-service gains impressions week over week. Move it earlier in the page title.
- A job shows up in the queries that has no page yet. That is your next page.
- A sub-service sits at zero after a month. Take it out of the title and keep the page.
Don't wait for big numbers before you act. A one-service AC repair site in Mesa, AZ took 69 calls from 1,627 impressions and 2 clicks in 90 days. Individual results vary. Small impression counts on the right job can still make the phone ring.
When Should I Use a Keyword Tool?
Last, as a check. A keyword tool is useful for a few things:
- Comparing two ways of saying the same job at the city level, like "AC repair" and "air conditioner repair".
- Checking a bigger city, where the tool has enough data to say something.
- For builders, comparing niches across many cities before you pick one.
For keyword research for local SEO, the tool is weak exactly where it matters: small towns, odd problems, and the words your callers use. If the tool says zero and three callers asked for that job this month, trust the callers.
Other ways to do this, and what they cost you in hours
Once you have the two lists, you still need the pages. Here are the routes I know, with my estimate of the time each takes. Builders, multiply the hours by the number of sites you plan to run.
| Route | What you do | Hours (my estimate) | Ongoing | Where it falls short for local SEO |
|---|---|---|---|---|
| Vibe code it with Claude or ChatGPT | Prompt page by page to get HTML or a React app, buy a domain, set up hosting or Cloudflare Pages yourself, add images, forms, schema and a sitemap, then repeat per service and per town | 8 to 15 hours for a 15 to 25 page local site (my estimate) | Fixes every time you want a new page | No service area structure, schema or internal links unless you ask for each one, and you run the hosting |
| Lovable or a similar AI app builder | Get a fast first page, then build out every service and town page with local copy, schema and a call button on each | 4 to 8 hours (my estimate) | A monthly subscription | Good for an app, but a local lead site needs 20 to 40 interlinked pages, not one good-looking page |
| WordPress plus a theme | Hosting, theme, page builder, SEO plugin, security plugin, backups, then write every page | 10 to 20 hours to launch (my estimate) | An hour or two a month to update and patch (my estimate), and the hosting bill is yours | Every service and town page is still yours to write, and the plugins need patching |
| Hire a local SEO agency | Brief them, answer their questions, approve the pages | A few weeks to launch, few of your own hours (my estimate) | Typically a setup fee plus a monthly retainer, ask for the number | The pages are written by someone who has never been in your truck |
| Local Sites Pro | Enter niche, city, company name and phone, pick services and areas or let the AI suggest them. Edit in the dashboard or by chat through the MCP | About ten minutes to a live site with service pages, area pages, FAQs, schema and internal links | Starter $15 one-time for 3 sites, Pro $119 a year unlimited. Hosting free on your own Cloudflare account. Search Console connects in one click | It builds the site, not your reputation. Reviews, photos and your Google Business Profile are still yours to do |
The honest reading: every route works if you do the work. The difference is hours, and whether the site keeps getting better after launch, with Search Console and the MCP loop feeding it, or just sits there.
Quick Checklist
Final Thoughts
Local SEO keyword research starts with the phone, then what Google suggests, then what Search Console reports once your pages are live. The keyword tool comes last, when you already know what to look up.
So write the two lists this week, one for jobs and one for towns. Turn them into pages, and let the weekly check tell you which one to push next.
Your callers already told you the keywords. Build one page per job and per town, then let Search Console pick the winners.
Comments
Or discuss it in the Skool communityNo comments yet. Ask a question or share what you tried, and I will reply here.