Competitor Keyword Gap Analysis: Find the Rankings You’re Missing in 30 Minutes
Most contractor websites rank for a small fraction of the search queries their competitors own. A plumbing company ranking well for "water heater repair" and "drain cleaning" may have no visibility for "garbage disposal installation," "sump pump replacement," or "pipe relining," while the competitor two positions above them in the local pack captures every one of those queries. The keyword gap between you and that competitor represents real customers calling someone else.
A keyword gap analysis identifies specific queries your competitors rank for that your site does not appear for at all. It is not about generating new keyword ideas from a database. It is about looking at the pages your competitors have indexed and the queries those pages capture, then cross-referencing against your own site to find the exact terms where you have no presence. The process takes 30 minutes, requires no paid tools for the initial pass, and produces a prioritized list of pages to create or improve. Most contractors who run this analysis for the first time find between 15 and 40 gaps they can close in 60 to 90 days.
Step 1: Identify Your Three Strongest Local Competitors
Open Google and search your primary service and city: "plumber in Nashville" or "HVAC repair Denver." Ignore the Local Services Ads boxes at the top and the Google Maps Pack. Scroll to the organic blue link results below both. Note the first three websites that are not directories (Angi, HomeAdvisor, Yelp, and Thumbtack do not count) and not national franchise brands. You want local contractor businesses in your market serving the same trade.
Run this search again for two or three secondary services. An HVAC company should also search "furnace repair [city]," "AC installation [city]," and "heat pump replacement [city]." Note whether the same three competitors appear consistently or whether different businesses dominate different service queries. Competitors with broad presence across service queries have invested in content coverage strategy worth replicating. Build your competitor list from the three businesses that appear most consistently across your primary and secondary service searches.
Step 2: Export Your Current Rankings from Google Search Console
Open Google Search Console. Under Performance, select the Search Results report. Set the date range to the past 90 days. Export the full data to a spreadsheet by clicking the export icon in the top-right corner. Your spreadsheet lists every query Google has shown your site for in the past 90 days, along with impressions, clicks, and average position.
Filter into two groups: queries where your average position is 1 to 10 (you appear on page one), and queries where you have impressions but average position is 11 to 30 (you appear on pages two and three). The second group is your quick-win list: pages that rank but not competitively. Any gap term that shows up in this range means you have a page for that topic already; it just needs improvement. The true gap terms are ones that never appear in your Search Console data at all, because Google has not shown your site for that query in 90 days.
Step 3: Pull Competitor Keywords with Free Tools
Semrush offers a free account with limited access to their Domain Overview tool. Create a free account at semrush.com and enter each competitor’s domain URL into Domain Overview. The free tier surfaces their top organic keywords with estimated positions and monthly search volume. For a local contractor, this typically shows 10 to 25 keywords per domain before hitting the access limit. That is enough to identify the high-volume service terms they own at positions 1 to 5 that you are not capturing.
Ubersuggest (by Neil Patel) allows three competitor lookups per day on its free plan. Enter the competitor’s domain under Traffic Analyzer and view their top-ranking pages and the queries those pages rank for. For a plumbing competitor, you might find that their water heater installation page ranks for 12 different queries you never appear for: "40 gallon water heater replacement cost," "gas water heater installation near me," "how much to install a water heater," and variations by brand and tank size.
Ahrefs Webmaster Tools is free for your own domain only and shows every keyword your site ranks for with full position data. The limitation: it covers only your own site, not competitors. Use it to verify your complete keyword footprint before cross-referencing against the competitor data from Semrush and Ubersuggest.
Step 4: Build the Gap List
Compare the competitor keyword data against your Search Console export. Any query that appears in the competitor’s top 20 keywords and does not appear anywhere in your Search Console data for the past 90 days is a true gap. Build a simple four-column spreadsheet: the gap keyword, the competitor’s ranking position, whether your site has any existing page that touches the topic, and the action required.
| Gap Keyword | Competitor Position | Your Existing Page? | Action |
|---|---|---|---|
| sump pump installation [city] | #2 | No page exists | Create dedicated service page |
| gas line repair contractor | #4 | Mentioned on plumbing page | Expand into its own URL |
| toilet replacement cost [city] | #6 | No page exists | Create page with pricing info |
| emergency plumber [city] 24 hour | #3 | Homepage mentions 24/7 | Create dedicated emergency page |
How to Prioritize the Gaps
Not every gap produces equal return. Prioritize in this order: first, high-volume service queries where the competitor ranks positions 1 to 5 and you have no dedicated page. These represent the largest revenue gaps. Second, queries where the competitor ranks on page one and your Search Console shows you in positions 11 to 20. You have content for the topic; it needs to be a standalone, specific page rather than a paragraph on a generic services page. Third, long-tail informational queries the competitor ranks for, such as cost guides and FAQs. These generate research traffic that converts over a longer cycle but build authority that reinforces your transactional pages.
The fix for each priority gap follows a single rule: the page your competitor ranks for is a dedicated URL addressing one service, one city, with a title tag and H1 naming both. If you do not have that page, create it. If you have a generic page that mentions the service in one paragraph, give it its own URL with a title like "Sump Pump Installation in [City]: Licensed Plumber, Same-Day Service." That single change moves you from invisible on that query to eligible to compete. Ranking takes 30 to 90 days from first indexing; building the page today starts the clock.
Three Actions for This Week
- Build your three-competitor list in five minutes. Search your primary service and city in Google, scroll below the ads and map pack, and write down the domain URLs for the top three local contractor websites in the organic results. If competitors vary by service query, note which ones appear across the most searches. Those are the businesses with broad keyword coverage and the ones most worth analyzing. Do this before anything else. The entire gap analysis depends on choosing the right competitors to study.
- Export Search Console and cross-reference one competitor in Semrush or Ubersuggest. Pull the 90-day Performance report from Google Search Console and export it to a spreadsheet. In Semrush or Ubersuggest, pull the top keywords for your highest-priority competitor. Spend 20 minutes cross-referencing: any keyword in their top 20 that does not appear anywhere in your Search Console export is a confirmed gap. Most contractors find 8 to 25 confirmed gaps in a single session. Write each one down along with whether an existing page on your site addresses that service at all.
- Create one dedicated page for your top gap this week. Pick the single most valuable gap: a service you perform regularly, the competitor ranks for it in positions 1 to 5, and you have no dedicated page. Write a service page of 400 to 600 words with a title tag naming the service and city, an H1 matching the title, three to four paragraphs covering what the service includes, typical pricing range, and your service area. Submit the URL in Google Search Console via the URL Inspection tool and request indexing. The page enters the ranking competition immediately. A new, focused page typically outranks an improved generic page, and a single gap page can drive 10 to 30 additional calls per month in a competitive local market.
Keyword gaps are not abstract metrics. They are specific job types your competitors take calls on every week that your phone never rings for, because no page on your site tells Google you offer that service in that city. The analysis above surfaces those job types by name. Most contractors who run this audit for the first time find at least one high-volume gap representing a service they perform regularly with no dedicated page. That page takes two hours to build. The ranking impact runs for years.