Skip to content

Plumbing SEO strategy

Regulated marketing

Emergency intent, no research phase, decision in minutes

Written by Eugene SuslovLast reviewed 28 August 2026No affiliate links
Sector
Home and trades
Model
Local service
Competition
Brutal
Time to results
3 to 7 months
Typical monthly
$1,200 to $6,000

Key takeaways

  1. 1There is no research phase. Somebody with water coming through a ceiling decides in minutes, so every ranking gain is worth nothing if the phone is not answered.
  2. 2The local pack and Google Guaranteed sit above the organic results on almost every emergency query. Win those first, because the website cannot outrank them.
  3. 3Diagnostic content is the only patient cluster you have. "Why is my water heater leaking" is searched hours before anybody calls, and almost nobody in the trade writes it.
  4. 4Stop generating a page per surrounding town. One service-area page per real coverage zone, and put the coverage in words rather than in URLs.
  5. 5Several states require your licence number in the advertising itself, which includes the website and the profile. Check before you spend anything on either.

SEO for plumbers is unusual because the funnel barely exists. In most industries somebody researches, compares, shortlists and then buys. Here somebody has water coming through a ceiling and picks whoever answers.

That collapses the entire strategy into two questions. Are you visible at the exact moment of the emergency, and does the call get answered when you are?

So a plumbing SEO strategy is mostly a visibility and answer-rate problem rather than a content problem.

The map pack does most of the work, and it is won off your website rather than on it: profile completeness, categories, review velocity and proximity. Above it sits Google Guaranteed, which is paid. Below both sit the lead marketplaces, which sell the same customer to three of your competitors at once.

There is one patient cluster, and it is the one the trade ignores. Before a small problem becomes an emergency, people search symptoms: a noise, a smell, a drip, a pilot light that will not stay lit. That content is cheap to write, almost uncontested by other plumbers, and it puts you in front of the customer hours before the flood.

The rest is unglamorous. Fix the service-area pages, get the licence number where the state requires it, make the phone number tappable, and answer the phone. None of that is clever and most competitors have not done it.

Who already ranks in plumbing

Look at an emergency query before writing anything. The uncomfortable lesson of plumbing SEO is how little of the first screen is organic: a paid Google Guaranteed block, then the map pack, then lead marketplaces that will sell your prospect to several competitors at once. Your website is often the fifth thing on the page, which changes what is worth optimising.

What is on the results page

  • Local Services Ads with the Google Guaranteed badge, above the map pack on emergency queries
  • Local pack on nearly everything carrying a location or an urgent problem
  • People Also Ask, dense on diagnostic and cost queries
  • Review stars from the marketplaces, rarely from your own site
  • AI Overviews on diagnostic queries, which is where the symptom content pays off
  • Site links on brand queries, often the only branded ground you control
  • Google Local Services Ads

    google.comClaim it

    Paid, and it sits above everything on emergency queries. Google Guaranteed requires licence, insurance and background checks. Treat it as a costed channel rather than an SEO task, but understand that on the highest-intent queries it is the ceiling on what organic can reach.

  • Angi

    angi.comClaim it

    Ranks on service-plus-city queries almost everywhere. It is a lead marketplace, so the same enquiry is typically sold to several contractors. Claim the free profile for the consistency benefit, and treat any paid tier as a separate commercial decision.

  • Thumbtack

    thumbtack.comClaim it

    Same shape as Angi, with a bidding model. Worth a claimed profile. Worth watching what a lead actually costs once several contractors are bidding on it.

  • Yelp

    yelp.comClaim it

    Still ranks strongly for home services in many metros and feeds Apple Maps. Claim it, keep the hours and service list accurate, and stop there.

  • Nextdoor

    nextdoor.comClaim it

    Not a search play, but genuinely the strongest referral channel in this trade in a lot of neighbourhoods. A claimed business page plus a few real recommendations outperforms a lot of paid effort.

  • Manufacturer locators

    rheem.comClaim it

    Water heater and boiler manufacturers run find-a-pro directories for certified installers. Free, high authority, and almost nobody in the trade claims theirs. Check every brand you are certified to install.

What people actually search

Plumbing search splits into two halves that behave nothing alike. One is decided in minutes and cannot be won with content. The other is searched hours or days earlier, is barely contested by other plumbers, and is the only place a website earns its keep before the phone rings.

Emergency

Local transactional, urgent

burst pipe [city] now

The page that wins it: Local pack presence plus a page that loads fast and dials

Zero research phase. The page has one job: get the call placed. Everything decorative on it is in the way.

Diagnostic

Informational

why is my water heater making a popping noise

The page that wins it: Symptom explainer that ends in a repair-or-replace decision

The only patient cluster in the trade, searched hours to weeks before the call, and almost uncontested by other plumbers. This is where the content budget belongs.

Cost

Commercial investigation

how much to replace a water heater

The page that wins it: Real price ranges with what moves them

Publishing ranges filters out the calls you did not want. Contractors resist this harder than any other industry in this directory, and it costs them intake time.

Repair or replace

Commercial investigation

is it worth repairing a 12 year old water heater

The page that wins it: Honest decision guide including when to repair

High trust, high margin, and the page that says "repair it" is the one that gets the replacement call in three years.

Brand and part

Informational

[brand] water heater pilot light keeps going out

The page that wins it: Brand-specific troubleshooting page

Long tail, low competition, and it accumulates. It also qualifies: somebody searching a model number already owns the appliance you service.

Service plus area

Local transactional

drain cleaning [suburb]

The page that wins it: One page per real coverage zone, not per town

Where the trade drifts into doorway pages. Coverage belongs in the words on a page, not in a hundred URLs.

Compliance and permit

Informational

do i need a permit to replace a water heater in [state]

The page that wins it: Jurisdiction-specific permit explainer

Genuinely useful, jurisdiction-bound, and it demonstrates you are licensed without claiming anything the state board would object to.

Commercial and property manager

Commercial investigation

commercial plumbing contractor [city]

The page that wins it: A separate page written for a buyer, not a homeowner

A different customer with a different cycle: contracts, response-time guarantees, invoicing. Most plumbing sites bury it under residential copy.

What the rules change

Lighter than health or law, but not absent, and the two rules below are the ones that actually reach the website. Contractor licensing is administered state by state, so check your own board rather than assuming. Nothing here is legal advice.

1

Your licence number may have to appear in the advertising itself

State contractor licensing boards; California Business and Professions Code section 7030.5 is the clearest example

What it means

California requires a licensed contractor to include the licence number in all advertising, and several other states have equivalent requirements. Advertising includes the website and, in practice, the business profile and any ad you run. Requirements differ on placement and on what else has to appear.

So do this

Put the licence number in the site footer so it appears on every page, and add it to the business profile description. Check your own board for the exact requirement, because some states also specify the classification or the licensee name.

2

Review gating and incentivised reviews are now explicitly prohibited

FTC Rule on the Use of Consumer Reviews and Testimonials, final rule 2024

What it means

The FTC finalised a rule in 2024 addressing fake and misleading reviews. It covers buying reviews, incentivising reviews conditioned on the sentiment, and suppressing negative reviews. Home services was one of the categories where review manipulation was most widespread, so the practical exposure here is real.

So do this

Ask every customer, not just the happy ones. Never offer anything conditioned on leaving a positive review. If a review platform's own rules are stricter than the FTC's, follow the stricter one.

3

"Free estimate" and "24/7" are claims, not slogans

FTC Act section 5 on deceptive practices; state consumer protection statutes

What it means

If the site says free estimates, an estimate that carries a trip charge is a deceptive claim. If it says twenty-four seven and the phone goes to voicemail at 2am, that is the same problem. These are the two most common unsupportable claims on a plumbing website.

So do this

Say what is actually true. "Free estimates on replacements, $[X] diagnostic fee on repairs" converts better than a promise the customer discovers is conditional, and it costs nothing to be accurate.

4

Your advertised hours and your profile hours must agree

Google Business Profile guidelines; platform review policies

What it means

A site claiming round-the-clock emergency service alongside a profile showing nine to five is both a trust problem and a profile quality problem. Google surfaces open-now status directly in the pack, so the mismatch costs visibility as well as credibility.

So do this

Decide whether you genuinely offer emergency cover, then make the website, the profile and the answering arrangement say the same thing. If it is on-call rather than staffed, say on-call.

Proving expertise

The trust signals in this trade are unusually concrete, and most plumbing sites publish almost none of them. Nobody is reading your blog to assess your expertise. They are checking that you are licensed, insured, reachable and real before they let you into the house.

  • Licence number and classification visible on every page, which several states require anyway
  • Insurance and bonding stated, with the carrier or the coverage type rather than a badge graphic
  • Real photographs of the actual vans, team and premises rather than stock imagery
  • Named technicians with certifications, especially gas, backflow and medical gas where applicable
  • Manufacturer certifications named with the brand, matched to the locator listings you have claimed
  • Service area described in words a resident would recognise: neighbourhoods, not a radius
  • Response-time and after-hours arrangements stated honestly, including what on-call actually means
  • Pricing approach explained, even where exact prices cannot be given

How to build a plumbing SEO strategy

A realistic sequence for the first six months. The order is deliberately front-loaded on things that produce booked jobs in weeks rather than content that produces them in quarters, because a plumbing SEO strategy that starts with a blog loses the room before it works.

  1. 1

    Weeks 1 to 3

    Fix the things losing you calls today

    • Measure the call answer rate, including after hours. This is usually the largest leak on the whole list
    • Make every phone number a tel: link, and put one in the header on mobile
    • Complete the Google Business Profile: primary category, every service, real photos, accurate hours
    • Put the licence number in the footer and the profile description, per your state's requirement
    • Reconcile the 24/7 claim with the actual answering arrangement, and change whichever is wrong
    • Claim Angi, Thumbtack, Yelp, Nextdoor and every manufacturer locator you qualify for
    • Audit service-area pages: how many are real coverage zones and how many are generated town names

    You end up with
    A measured answer rate, a complete profile, correct licensing on the site, and an honest count of pages that should not exist

  2. 2

    Weeks 3 to 8

    Win the pack and the branded ground

    • Fix name, address and phone consistency across every claimed listing
    • Install a review request routine that asks every customer, not just the pleased ones
    • Consolidate generated town pages into one page per real coverage zone with genuine local detail
    • Write the core service pages properly: what the job involves, what it costs, how long it takes
    • Add Plumber structured data with services and area served
    • Decide on Local Services Ads as a costed channel, separately from the organic work

    You end up with
    Local pack presence on the core service-plus-area queries, and a review flow that keeps producing

  3. 3

    Weeks 6 to 16

    Build the only patient cluster you have

    • Write diagnostic pages for the ten symptoms that most often precede a call
    • Write repair-or-replace guides for the equipment you install most
    • Publish real cost ranges with the factors that move them
    • Write brand and model troubleshooting pages for the equipment you are certified on
    • Add the permit and code explainers for your jurisdiction
    • Build a separate commercial or property-manager section written for that buyer

    You end up with
    Coverage of the queries searched before the emergency, which is the only ground a website can win here

  4. 4

    Weeks 12 to 26

    Measure booked jobs, not clicks

    • Attribute calls with dynamic number insertion, and reconcile against the dispatch system
    • Report leading and business indicators separately, and never present one as the other
    • Track average ticket by source, because emergency and scheduled work are not the same business
    • Review the diagnostic cluster on jobs booked rather than on sessions
    • Track missed and abandoned calls as a first-class metric alongside rankings
    • Set a maintenance cadence for hours, service lists and seasonal messaging

    You end up with
    A monthly report an owner can act on, showing booked jobs and average ticket alongside the indicators that predict them

Technical fixes with the best payoff

The technical problems here are not subtle and they are not really about crawling. In a trade where the decision takes minutes, the defects that cost the most are the ones between seeing the listing and speaking to a human.

  • The phone number is not tappable

    An afternoon

    Most emergency traffic is on a phone, and a number rendered as plain text or baked into an image cannot be dialled. It is the single highest-value ten-minute fix in this trade and it is still common.

    Every number becomes a tel: link. Put one in a sticky header on mobile. Then check it actually dials on a real handset rather than in a desktop emulator.

  • Nobody answers the phone

    A day to measure, then an operational decision

    Not an SEO defect, and the largest revenue leak on this page. Ranking first for an emergency query and missing the call means paying for the visibility and handing the job to the next result.

    Measure the answer rate, including nights and weekends. Then fix it with an answering service or a rota. Any ranking work done before this is measured is being judged against a broken denominator.

  • A page for every town within thirty miles

    A sprint, and mostly deletion

    Six services across forty towns is two hundred and forty pages that differ by a place name. That is close to Google's own description of a doorway page, and it is endemic in the trades.

    One page per real coverage zone, with genuine local content: which neighbourhoods, what the housing stock is like, which problems are common in older properties there. If you cannot write that, the page should not exist.

  • The booking widget is an iframe

    An afternoon per page

    Scheduling platforms embed their booking flow from their own domain, so none of that content is yours and the highest-intent step contributes nothing to search.

    Keep the widget, and put real indexable content around it: which services can be booked, what the call-out costs, what happens next, what to do while you wait. The page should be useful with the iframe removed.

  • Photographs are stock, or enormous

    A day

    Stock imagery of an unrelated smiling technician actively reduces trust in a trade where the customer is deciding whether to let a stranger into the house. Unoptimised real photos are the other half of the problem on a mobile connection.

    Use real photographs of the actual team and vans, compressed properly and served in a modern format. Real and fast beats polished and slow here.

  • The site says 24/7 and the profile says 9 to 5

    An hour

    Google surfaces open-now status in the pack, so the mismatch costs visibility as well as credibility. It is also a claim problem, not just a data problem.

    Decide what is actually true, then make the site, the profile and the answering arrangement agree. On-call is a perfectly good answer if you say on-call.

  • No structured data, or a generic LocalBusiness node

    A day

    Schema.org has a Plumber type and almost nobody in the trade uses it. A generic node describes the business less precisely than the vocabulary allows.

    Mark the business up as Plumber with services, area served and hours, and mark service pages as Service. See the structured data section below.

Structured data that applies here

The types below fit this industry specifically. Most of them earn no rich result on their own, which is worth knowing before anyone sells the work on that basis. What they do is describe the entity precisely, which matters for how search engines and answer engines resolve who you are.

  • Plumber

    Home page and location pages

    A real schema.org type, a subtype of HomeAndConstructionBusiness and LocalBusiness, and almost nobody in the trade uses it. It carries hours, area served, services and geo while saying precisely what kind of business this is.

    Plumber.jsonld
    {
      "@context": "https://schema.org",
      "@type": "Plumber",
      "@id": "https://[YOUR-DOMAIN]/#business",
      "name": "[BUSINESS NAME]",
      "url": "https://[YOUR-DOMAIN]",
      "telephone": "[+1-555-000-0000]",
      "priceRange": "[$$]",
      "image": "https://[YOUR-DOMAIN]/van.jpg",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "[123 Example St]",
        "addressLocality": "[CITY]",
        "addressRegion": "[ST]",
        "postalCode": "[00000]",
        "addressCountry": "US"
      },
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": "[00.000000]",
        "longitude": "[-00.000000]"
      },
      "areaServed": [
        { "@type": "City", "name": "[CITY]" },
        { "@type": "City", "name": "[CITY]" }
      ],
      "openingHoursSpecification": [{
        "@type": "OpeningHoursSpecification",
        "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
        "opens": "[07:00]",
        "closes": "[18:00]"
      }],
      "hasCredential": {
        "@type": "EducationalOccupationalCredential",
        "credentialCategory": "Contractor licence",
        "identifier": "[LICENCE NUMBER]"
      }
    }
  • Service

    Each service page

    Describes the job rather than leaving a service page as an untyped article. Keep serviceType to the words a homeowner would use, not the trade term.

    Service.jsonld
    {
      "@context": "https://schema.org",
      "@type": "Service",
      "name": "[SERVICE, in the customer's words]",
      "serviceType": "[SERVICE]",
      "provider": { "@id": "https://[YOUR-DOMAIN]/#business" },
      "areaServed": {
        "@type": "AdministrativeArea",
        "name": "[COUNTY OR METRO]"
      },
      "offers": {
        "@type": "Offer",
        "priceSpecification": {
          "@type": "PriceSpecification",
          "minPrice": "[000]",
          "maxPrice": "[0000]",
          "priceCurrency": "USD"
        }
      },
      "description": "[One plain sentence. Only publish a price range you will honour.]"
    }
  • OpeningHoursSpecification

    Nested in the business node, including the after-hours arrangement

    Worth calling out separately because emergency cover is the claim most often mismatched between site and profile. If you genuinely run round-the-clock, say so here AND on the profile, and make sure somebody answers.

    OpeningHoursSpecification.jsonld
    {
      "@context": "https://schema.org",
      "@type": "Plumber",
      "@id": "https://[YOUR-DOMAIN]/#business",
      "name": "[BUSINESS NAME]",
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
          "opens": "[07:00]",
          "closes": "[18:00]"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": ["Saturday"],
          "opens": "[08:00]",
          "closes": "[13:00]"
        }
      ],
      "specialOpeningHoursSpecification": {
        "@type": "OpeningHoursSpecification",
        "description": "[Emergency call-out, or on-call. Say which.]",
        "opens": "00:00",
        "closes": "23:59"
      }
    }
  • FAQPage

    Pages with genuinely visible questions

    The type with the strongest rich-result history and the one most often abused. Mark up only questions a visitor can see, and keep the answers as honest as the page.

    FAQPage.jsonld
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "[Question exactly as it appears on the page]",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "[Answer exactly as it appears on the page. Give a real number where you can.]"
          }
        }
      ]
    }
  • BreadcrumbList

    Service and area pages

    Modest, and worth it once you have a real hierarchy of services and coverage zones. It also makes the structure visible to you, which usually exposes the generated town pages.

    BreadcrumbList.jsonld
    {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Home",
          "item": "https://[YOUR-DOMAIN]/" },
        { "@type": "ListItem", "position": 2, "name": "[SERVICES]",
          "item": "https://[YOUR-DOMAIN]/services" },
        { "@type": "ListItem", "position": 3, "name": "[SERVICE]",
          "item": "https://[YOUR-DOMAIN]/services/[SLUG]" }
      ]
    }
  • Review

    Only reviews genuinely published on the page

    Read the FTC note in the compliance section first. Marking up a review does not make it compliant, and an aggregateRating you cannot substantiate is a problem rather than a win.

    Review.jsonld
    {
      "@context": "https://schema.org",
      "@type": "Review",
      "itemReviewed": { "@id": "https://[YOUR-DOMAIN]/#business" },
      "author": { "@type": "Person", "name": "[REVIEWER NAME]" },
      "datePublished": "[YYYY-MM-DD]",
      "reviewBody": "[The review exactly as published on the page]",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "[5]",
        "bestRating": "5"
      }
    }

What it costs

Editorial estimates, not quotes. The range in this trade is driven more by market size and whether you are competing on emergency work than by company size. A three-van operation in a small market and a three-van operation in a major metro are not in the same market at all.

Do it yourself

$0 to $300
  • Google Business Profile, completed and actively maintained
  • Angi, Thumbtack, Yelp, Nextdoor and manufacturer locators claimed
  • Licence number in the footer and the profile
  • Every phone number made tappable
  • A review request routine at the end of every job

Who it suits

A one or two van operation with someone who can give it two hours a week

Where it stops

You will compete locally and win your own brand. You will not build the diagnostic cluster, because that takes writing time nobody in a two-van business has.

Lean

$1,200 to $2,500
  • Everything above, run consistently rather than in bursts
  • The technical fixes: tappable numbers, real content around the booking widget, structured data
  • Service-area pages consolidated into real coverage zones
  • Two to four diagnostic or cost pages a month
  • Monthly reporting split into leading and business indicators

Who it suits

A three to eight van company that has decided search is a channel rather than an experiment

Where it stops

Progress is real but slow against a competitor already buying Local Services Ads. This tier does not fix a bad answer rate, and nothing else matters until that is fixed.

Funded

$3,000 to $6,000
  • The diagnostic and repair-or-replace clusters built out properly
  • A separate commercial or property-manager programme
  • Call attribution reconciled against the dispatch system
  • Content produced at a cadence that compounds rather than in occasional batches
  • Coverage-zone pages with genuine local content rather than generated ones

Who it suits

Multi-van companies in competitive metros, or anyone with a real cost per booked job to beat

Where it stops

This is the tier that competes with the trades marketing specialists. It does not buy its way past unanswered phones or a two-star review profile.

How to do it with no budget

Everything below costs nothing but time, and for most plumbing companies it is genuinely the majority of the available value. If the budget is zero, do these in this order.

  1. 1

    Measure the call answer rate

    A week of logging

    Your phone system, or a stopwatch and a spreadsheet

    Do this before anything else. Call your own number at 9am, 7pm and 2am on a Sunday. If the answer rate is poor, every ranking gain you buy afterwards is being poured into a leaking bucket.

  2. 2

    Make every phone number tappable

    1 hour

    Your website

    A tel: link on every number and a sticky one in the mobile header. The highest return per minute of work anywhere on this page.

  3. 3

    Complete the Google Business Profile

    3 hours, then 20 minutes a week

    Google Business Profile

    Correct primary category, every service listed individually, real photos of the vans and team, accurate hours. Most competitors have done about a third of this.

  4. 4

    Put the licence number where the state requires it

    30 minutes

    Your website and profile

    Footer, so it appears site-wide, plus the profile description. Several states require it in advertising and it is a trust signal regardless.

  5. 5

    Claim the directories and manufacturer locators

    3 hours once

    Angi, Thumbtack, Yelp, Nextdoor, plus every brand you install

    The manufacturer locators are the overlooked ones. They are free, high authority, and most contractors have never claimed theirs.

  6. 6

    Ask every customer for a review

    2 minutes per job

    A text message at job completion

    Every customer, not the ones you expect to be pleased. That is both the FTC position and, over time, the more credible review profile.

  7. 7

    Write five diagnostic pages

    2 hours each

    Your website

    The five symptoms you get called about most, written as you would explain them on the phone. This is the only content in the trade that reaches somebody before the emergency.

The tool stack

Jobs first, tools second. Most of these have a free option that is genuinely adequate for a small company, and the paid ones only earn their place once there are several vans and several coverage zones.

  • Track local pack position across coverage zones

    DataForSEOSEO APIRead the review

    Local rank tracking has to be geo-specific to be worth anything, because a plumber can own the pack downtown and be invisible six miles out where the housing stock actually generates the calls.

    Free routeManual checks from a few target postcodes, fine for one zone and unmanageable past three

  • Find the diagnostic queries worth writing for

    Google Search Console plus your own call log

    Write down what customers actually say when they ring. That phrasing is the keyword research, and it is more accurate than any tool for this trade.

    Free routeBoth free, and the call log is the better source

  • Model what a booked job from search is worth

    SEO Revenue Growth CalculatorFree toolOpen the tool

    Use average ticket by job type rather than a blended number. Emergency call-outs and planned replacements have very different values and mixing them hides which content is working.

    Free routeFree

  • Set the budget with a defensible number behind it

    SEO Budget CalculatorFree toolOpen the tool

    Useful mostly as a sanity check against the tiers above, and as something to show an owner who wants a range rather than a proposal.

    Free routeFree

  • Generate the Plumber and Service structured data

    Schema Markup GeneratorFree toolOpen the tool

    Generate it, validate it, then put it in the template rather than the page. The Plumber type is the bit almost nobody uses.

    Free routeFree

  • Run coverage-zone and service pages without a developer per page

    PayloadHeadless CMSRead the review

    Services, coverage zones and equipment brands are related entities. Modelling them as such is what stops coverage pages becoming a template with the town swapped.

    Free routeFree and self-hosted

  • Attribute phone calls to search

    A call tracking vendor with dynamic number insertion

    The phone is the conversion in this trade, so attribution without call tracking is guesswork. Reconcile it against the dispatch system monthly, because the two rarely agree on their own.

  • See what AI assistants recommend locally

    LLM visibility trackerOur toolSee the tool

    Homeowners increasingly ask an assistant to diagnose the noise before they search. The answers lean on the diagnostic content nobody in the trade writes, which is an argument for writing it.

Take it from here

Everything below is yours to take. Fill the [BRACKETS] and it is ready to use. Start with the answer-rate audit: it is the only item here that measures the thing capping every other number on the page.

Checklist

Run this before spending anything on visibility. In a trade decided in minutes, an unanswered phone is a bigger leak than any ranking problem, and almost nobody measures it.

CALL ANSWER RATE AUDIT - [COMPANY] - week of [DATE]

WHY THIS IS FIRST
Every ranking gain is multiplied by your answer rate. At 60% answered,
you are buying visibility and giving away four jobs in ten.

1. MYSTERY CALL YOUR OWN NUMBER
   Call from a number the office does not recognise. Log honestly.

   | When                  | Rang for | Answered by | Notes |
   |-----------------------|----------|-------------|-------|
   | Tue 9:00am            | [__]s    | [_______]   | [___] |
   | Tue 12:30pm (lunch)   | [__]s    | [_______]   | [___] |
   | Wed 5:30pm            | [__]s    | [_______]   | [___] |
   | Fri 7:00pm            | [__]s    | [_______]   | [___] |
   | Sat 10:00am           | [__]s    | [_______]   | [___] |
   | Sun 2:00pm            | [__]s    | [_______]   | [___] |
   | Sun 2:00am (the test) | [__]s    | [_______]   | [___] |

2. PULL THE REAL NUMBERS
   From the phone system, last full month:
   [ ] Inbound calls                            [____]
   [ ] Answered within 30 seconds               [____]  ([__]%)
   [ ] Abandoned before answer                  [____]  ([__]%)
   [ ] Went to voicemail                        [____]  ([__]%)
   [ ] Voicemails returned within 1 hour        [____]  ([__]%)
   [ ] Busiest hour                             [____]
   [ ] Worst answer rate hour                   [____]

3. THE ARITHMETIC THAT ENDS THE ARGUMENT
   Missed calls last month                      [____]
   x your booking rate on answered calls        [__]%
   x average ticket                             $[____]
   = revenue left on the table                  $[______]

   Compare that to the entire monthly marketing budget.

4. WHAT THE WEBSITE SAYS versus WHAT HAPPENS
   [ ] Does the site claim 24/7?                [Y/N]
   [ ] Does the profile show 24 hours?          [Y/N]
   [ ] Did the 2am call get answered?           [Y/N]
   If those three do not agree, fix the claim or fix the cover.
   Do not leave them disagreeing.

5. DECIDE
   [ ] Answering service for out of hours       cost $[____]/mo
   [ ] Overflow routing during peak hours
   [ ] Callback SLA for voicemails: [__] minutes
   [ ] Who owns this number: [NAME]

RE-RUN: [MONTHLY]

What to publish

What to publish, ranked by how quickly it turns into booked work. The trade's instinct is to write about the company. The content that pays is about the customer's problem, written the way you would explain it on the phone.

  • Diagnostic symptom pages

    Two to four a month, from your own call log

    The only cluster that reaches somebody before the emergency, and it is barely contested by other plumbers because writing is not what the trade does.

  • Repair or replace guides

    One per major appliance type

    High trust and high margin. The page that honestly says repair it is the one that gets the replacement call three years later.

  • Real cost ranges

    Once, reviewed when your pricing moves

    Filters out the calls you did not want and shortens the ones you did. Contractors resist this harder than any other industry here, and it costs them intake time every week.

  • Coverage-zone pages with genuine local content

    One per real zone, revisited yearly

    Supports the pack and gives each page a reason to exist beyond a place name. Housing stock and common local problems are the content nobody else writes.

  • Brand and model troubleshooting

    One a month, starting with the brands you are certified on

    Long tail, uncontested, and it qualifies: somebody searching a model number already owns the equipment you service.

  • A commercial section written for a buyer

    Once, properly

    A different customer with contracts, response-time expectations and invoicing. Most plumbing sites bury it under residential copy and lose it entirely.

And what not to

  • A page for every town in the county, which is close to Google's own definition of a doorway page
  • Company news and team announcements, which nobody outside the company searches for
  • Generic home maintenance content with no route to a service you sell
  • Any claim of round-the-clock service the answering arrangement cannot support
  • Stock photography of technicians who do not work for you, in a trade where the customer is deciding whether to let a stranger into the house
  • Review requests sent only to customers you expect to be happy, which the FTC's 2024 rule addresses directly

The expensive mistakes

Buying rankings before fixing the phone

Costs you The largest and least visible leak in the trade. Paying for first position and missing the call hands the job to the next result

Measure the answer rate first, including nights and weekends, and treat it as the denominator every other number is judged against

Generating a page per town

Costs you Hundreds of near-identical pages that meet Google's own doorway description, and a site nobody wants to link to

One page per real coverage zone, with housing stock and local problems that only apply there

Refusing to publish any prices

Costs you Intake time spent on calls that were never going to book, every week, forever

Publish ranges with the factors that move them. It filters the enquiries and it costs nothing

Claiming 24/7 while the phone goes to voicemail

Costs you A deceptive claim, a profile mismatch that costs pack visibility, and a first impression you never recover

Say what is true. On-call is a good answer if you call it on-call

Only asking happy customers for reviews

Costs you Exposure under the FTC's 2024 rule, and a review profile that reads as curated to anyone paying attention

Ask everyone, at the same moment in the job, with the same message

Reporting traffic to the owner

Costs you The budget goes in the first slow month, because nothing in the report connects to a booked job

Report booked jobs and average ticket by source, with the attribution gap stated

What to measure

Attribution here is more tractable than in most regulated industries, and it is still imperfect for one specific reason: the conversion is a phone call, and the value of that call is not known until the technician has been on site. Report leading and business indicators separately and state the gap.

Leading indicators

Move first. They predict, they do not prove.

  • Call answer rate, by hour

    Phone system reporting

    The one metric that should be on the first page of the report. Every other number on this list is capped by it, and it is the one most often not measured at all.

  • Local pack position by coverage zone

    Geo-specific rank tracking

    Measured from the zone, not the yard. A company can hold the pack at the depot and be invisible where the older housing stock is.

  • Profile actions: calls, direction requests, website clicks

    Google Business Profile insights

    The closest free proxy for local intent converting, and it moves within weeks of the profile work rather than months.

  • Impressions on the diagnostic cluster

    Search Console, filtered to symptom queries

    The slowest indicator here and the one that compounds. It is also the only evidence that the content programme is doing anything.

Business indicators

The ones a manager acts on.

  • Booked jobs from search

    Dispatch system, reconciled with call tracking

    The number that matters. It needs whoever answers the phone to capture source consistently, which is a training problem rather than a technical one.

  • Average ticket by source

    Invoicing

    Emergency call-outs and planned replacements are different businesses. A blended average hides which content is producing the profitable work.

  • Emergency versus scheduled mix

    Dispatch system

    Diagnostic content should shift the mix toward scheduled work over time, which is easier to staff and usually better margin. If it does not, the content is attracting the wrong reader.

  • Cost per booked job by channel

    Invoicing plus channel spend

    The number that decides whether Local Services Ads or organic deserves the next dollar. Compare them honestly rather than defending whichever you already run.

The verdict

Plumbing is the fastest industry in this directory to see movement in, and the one where the website matters least. The pack, the profile and the phone do most of the work, and all three can be improved in weeks.

The one genuinely defensible asset is the diagnostic cluster. Nobody else in the trade writes it, it reaches the customer before the emergency, and it is what an AI assistant draws on when somebody describes a noise rather than searching a service.

If you are evaluating plumbing SEO services, three questions sort the field quickly. Will they measure your call answer rate before they quote? Will they delete the town pages rather than add more? Will they report booked jobs and average ticket rather than traffic?

Most firms selling SEO services for plumbers answer none of those well, because all three make the engagement look smaller. I would not sign without the first one, since everything else is measured against it.

FAQ

Plumbing SEO questions

  • How long before a plumbing company sees results from SEO?
    Faster than almost anything else in this directory. Profile and listing work can move the local pack within four to twelve weeks, because most competitors have not completed theirs. The diagnostic content cluster takes three to seven months to build momentum. If the phone is not being answered reliably, none of those timelines mean anything.
  • Do we really need pages for every town we serve?
    No, and they are actively harmful. Six services across forty towns is two hundred and forty pages that differ by a place name, which is close to Google's own description of a doorway page. Build one page per real coverage zone instead, with the neighbourhoods, the housing stock and the problems that are common there. If you cannot write those, the page should not exist.
  • Should we publish our prices?
    Ranges, yes. The objection is always that every job is different, which is true and is why you publish a range with the factors that move it rather than a fixed price. The payoff is intake time: the calls that were never going to book stop arriving. Contractors resist this harder than any other industry here, and it costs them hours every week.
  • Is Local Services Ads worth it alongside SEO?
    It is a separate decision with its own economics. Google Guaranteed sits above the map pack on emergency queries, so it buys placement that organic work cannot reach quickly, and it requires licence, insurance and background checks. Judge it on cost per booked job against organic, and compare the two honestly rather than defending whichever you already run.
  • What about Angi and Thumbtack?
    Claim the free profiles for the consistency and the listing itself. Treat the paid tiers as a lead-buying decision, not an SEO one, and price it properly: those marketplaces typically sell the same enquiry to several contractors, so your real cost is per lead divided by your win rate against two or three competitors bidding on the same job.
  • Does the licence number really have to be on the website?
    In several states, yes. California requires licensed contractors to include the licence number in all advertising, and other states have equivalent rules. Advertising is generally read to include the website and the business profile. Check your own state board for the exact requirement, put it in the footer so it appears site-wide, and treat it as a trust signal regardless of whether your state mandates it.
  • What does plumbing SEO cost?
    The tiers above are editorial estimates rather than quotes. For a company that wants a real programme the honest range is roughly $1,200 to $6,000 a month, driven more by market size and whether you compete on emergency work than by how many vans you run. Below that you are buying maintenance, which is worthwhile if it is done properly.
  • Can we use AI to write the diagnostic pages?
    For drafting, yes, and it removes the bottleneck that stops most contractors writing anything. For publishing without a licensed plumber reading it, no. These pages tell people what is safe to check themselves, and getting that wrong is a liability before it is an SEO problem. Draft with AI, have a licensed technician correct it, and put their name and licence number on the page.

Run it yourself, or have someone own it

Everything above is written to be run without us, and the free path is genuinely most of the value for a single-location business. Where these plans stall is almost never the plan. It is that nobody owns it after the first month. That is the job we do, with search as one distribution layer inside a wider system rather than the whole engagement.