The State of Plumbing Website AI Search Readiness 2026
We audited 235 plumbing operators across 25 US metros against the structured-data signals AI crawlers actually use. Same shape as HVAC. Materially further behind.
The twenty-second version
In May 2026, we audited 235 plumbing websites across 25 US metros — single-location and small-multi-location operators, the businesses that actually answer the phone when a sewer line backs up. We scored each one against the structured-data signals AI crawlers (Perplexity, ChatGPT search, Gemini, Google AI Overviews) use to identify and describe a business.
This is the second report in our State of [Vertical] AI Search Readiness series. The first covered HVAC. The headline finding for plumbing is a variant of HVAC’s — same shape, but materially further behind:
- The median plumbing operator scored 46/100. The mean was 47.2. Six points lower than HVAC’s median (52) and four points behind its mean (51.1).
- 86% of sites passed the basic SEO checklist (canonical link, meta description, h1, Open Graph). Roughly the same as HVAC.
- Only 20% had a valid
LocalBusiness,Plumber, orPlumbingServiceschema with the required name, address, and telephone properties. HVAC was 45% — more than double. - Roughly one in thirteen plumbing sites is effectively invisible to AI search. In HVAC, that figure was one in twenty-five.
The pattern is recognizable. The deficit is bigger.
What we measured and why
When a homeowner asks ChatGPT, Perplexity, or Google’s AI Overview “best plumber near me” or “emergency drain cleaning,” the AI behind the answer doesn’t read the website the way a human does. It reads structured data — JSON-LD blocks in the page source that declare this is a LocalBusiness, here is its address, here is its phone, here are its reviews, here are its services. When that structured layer is missing, the AI either makes guesses from raw HTML (slow, error-prone) or skips the site in favor of a competitor whose data is cleaner.
This isn’t a hypothetical. Multiple recent studies — most prominently the ConvertMate GEO Benchmark 2026 and the Princeton GEO paper — quantify structured data as a meaningful component of generative-search visibility. Perplexity’s own research shows pages with FAQPage schema appear in AI responses 3.2× more often than pages without it. Sites with comprehensive @id-keyed entity registries have ~40% more consistent AI brand representation than sites without one.
The same audit module that produced the HVAC report ran against the plumbing sample, with the same scoring rubric and the same 933-type schema.org vocabulary snapshot. We measured four sub-scores against a 100-point rubric: Identity (entity-type schema, address, phone, opening hours; 25 pts), Trust (aggregate rating, social profile links, FAQ schema; 20 pts), Service (Service schema, breadcrumb hierarchy; 15 pts), and Discoverability (canonical, meta description, h1, Open Graph, sitemap hint, JSON-LD presence; 40 pts).
Each site was fetched as raw HTML — no headless browser — to match what AI crawlers actually see. JS-injected schema is invisible to most production AI crawlers, which means a page that looks rich in DevTools may be empty in the eyes of the systems doing the citing.
The shape of the industry
A score of 100 means a site is fully readable to an AI search engine: it identifies itself as a plumbing business, exposes service offerings as data, surfaces reviews as data, links its social profiles, and ships every standard SEO signal. A score of 0 means a site that can’t be read at all — no JSON-LD, no canonical, no meta description, often no h1.
The distribution:
| Bucket | Count | % |
|---|---|---|
| 90–100 | 3 | 1.3% |
| 80–89 | 10 | 4.3% |
| 70–79 | 16 | 6.8% |
| 60–69 | 34 | 14.5% |
| 50–59 | 38 | 16.2% |
| 40–49 | 61 | 26.0% |
| 30–39 | 34 | 14.5% |
| 20–29 | 21 | 8.9% |
| 10–19 | 9 | 3.8% |
| 0–9 | 9 | 3.8% |
A useful collapse of the distribution into three tiers:
- Strong (60+): 63 sites, 27%. Score well on most categories. AI crawlers can identify the business and surface it for relevant queries.
- Partial (30–59): 133 sites, 57%. Have some schema but missing key signals. AI can sometimes identify them, sometimes not, depending on which gap matters for which query.
- Invisible (under 30): 39 sites, 17%. No useful structured data at all. AI search treats them roughly the same way it would treat a Yellow Pages listing without a name on it.
The tier breakdown is the first place plumbing diverges from HVAC. HVAC’s strong tier was 34%; plumbing’s is 27%. HVAC’s invisible tier was 14%; plumbing’s is 17%. The middle is bigger and the top is thinner.
The minimum score in the plumbing sample was 0 — a New York operator with one structured-data block, no canonical link, no meta description, and no useful identity properties of any kind. The maximum was 95, achieved by a single Charlotte operator running a tightly-templated page with the full Identity-Trust-Service stack present and a complete FAQ schema. The ratio between the worst-equipped and best-equipped site in this single industry is identical to HVAC’s: total presence vs. complete absence, separated by a platform choice.
The basics are mostly fine. The AI layer mostly isn’t.
The four sub-scores tell a sharper story than the total. Here’s what the average plumbing site earns out of each category’s cap:
| Sub-score | Avg / Cap | Pct of cap | What it covers |
|---|---|---|---|
| Discoverability | 31.9 / 40 | 80% | Canonical, meta description, h1, Open Graph, sitemap, JSON-LD presence |
| Identity | 8.2 / 25 | 33% | LocalBusiness/Plumber/PlumbingService schema, address, phone, hours |
| Service | 3.2 / 15 | 21% | Service schema, BreadcrumbList |
| Trust | 4.0 / 20 | 20% | Aggregate rating, social profile links (sameAs), FAQPage |
This is the most important table in the report. Read top to bottom: plumbing websites are nailing the SEO basics from 2010 and missing the AI-readable layer that matters in 2026 — by a wider margin than HVAC. Identity in HVAC averaged 42% of cap; in plumbing it’s 33%. Trust dropped from 22% to 20%. Service stayed flat. Discoverability stayed flat.
The takeaway is precise: the gap between the two verticals is almost entirely on the Identity axis. Plumbing operators have the same tooling for canonical links, meta descriptions, and Open Graph as HVAC operators do. They are materially less likely to declare themselves a business in machine-readable form.
If you imagine a plumbing website as a job applicant, the average one walks into the interview wearing the right clothes (Discoverability) but doesn’t introduce itself by name or say what it does (Identity, Service, Trust). The form is correct. The substance is more absent than in the next industry over.
What separates the top 7% from the rest
We pulled the 13 sites that scored 80 or above and looked at what they share. The pattern is striking — and almost binary.
| Signal | Top 13 (≥80) | Bottom 39 (under 30) |
|---|---|---|
| Has valid LocalBusiness/Plumber/PlumbingService | 62% | 0% |
| Has address in schema | 100% | 0% |
| Has telephone in schema | 100% | 3% |
| Has openingHours in schema | 100% | 0% |
| Has sameAs (social profile links) | 100% | 0% |
| Has aggregateRating | 92% | 0% |
| Has Service schema | 92% | 0% |
| Has FAQPage | 54% | 0% |
| Has BreadcrumbList | 54% | 3% |
Read across any row and the pattern is the same: top performers have the signal, bottom performers don’t. There’s barely any middle ground inside this comparison. The gap isn’t gradual. It’s binary.
This is the same platform fingerprint finding from the HVAC report, repeated in a different vertical: the top sites share an identical bundle of signals — LocalBusiness-or-subtype + address + telephone + openingHours + sameAs + aggregateRating, all present together — which suggests they were emitted by a common tool, agency, or platform that produces this structure by default. The bottom sites have none of it because their tools or templates don’t produce it.
This matters for a practical reason: closing the gap between bottom and top isn’t a matter of slowly improving each signal. It’s a matter of switching to (or installing) something that produces the whole bundle. The companies at the top didn’t grind their way up the rubric one bullet at a time. They picked the right substrate.
A representative top performer — a Charlotte operator scoring 95 — has a Plumber entity with address, phone, hours, geo coordinates, social profile links to Facebook, Instagram, and YouTube, an aggregateRating with several hundred reviews averaging above 4.8, a FAQPage with a dozen Q&A pairs, and a BreadcrumbList navigating Home › Plumbing Services › [city]. None of those are exotic. They’re the table-stakes structured-data set for a service-area local business in 2026.
A representative bottom performer — a New York operator scoring 0 — has none of the above. Not the structured data, not the canonical link, not the meta description. The site renders fine for a human visitor; it’s invisible to a machine.
Same industry, same year, same target customer. Different substrate.
The 17% who are invisible
Thirty-nine sites in the sample scored below 30. Eighteen scored below 20. Nine scored below 10. The plumbing invisible tier is roughly twice as large as HVAC’s in proportional terms.
A score under 30 means the site has essentially nothing for an AI engine to extract: no business identity in schema, no service descriptions, no reviews surfaced as data, often no JSON-LD at all. 14% of plumbing sites emit zero JSON-LD blocks. None had blocks that were malformed or unparseable — the failure mode here isn’t broken structured data, it’s no structured data.
What’s worth noting is that being invisible to AI search isn’t visibly correlated with being a bad business. Some of the lowest-scoring sites in the sample belong to plumbing operators with hundreds of Google reviews and decades of operation. They’re invisible to AI search not because they’re failing as businesses but because the website they’re paying someone to maintain hasn’t kept up with what websites are now expected to do. The visitors who land on these sites convert fine. The customers who never land on the site — because the AI-mediated discovery surface skipped over them — don’t show up in any analytics dashboard. That’s the cost: the business looks healthy on the metrics it can see, while losing customers it can’t.
Among the 39 invisible sites, the most common pattern is the same as HVAC’s: website built once, never revisited. Templates that predate widespread JSON-LD adoption. CMS installations that haven’t been touched in years. Theme files that were never extended to include structured data because the original developer didn’t write it in.
A specific subset of the plumbing invisible tier appears to be small-shop sites built on legacy DIY website builders that ship without any structured-data layer at all. These sites typically score well on the Discoverability basics — meta description, canonical, h1 — and zero on everything else. The substrate makes the ceiling.
Vocab errors — the silent failure mode
3.8% of the sample (9 sites) had at least one @type value in their JSON-LD that doesn’t exist in schema.org’s vocabulary. These sites were emitting something, but emitting it wrong in ways their tools didn’t surface.
Examples we caught:
- Casing errors: Lowercase variants like
plumbingserviceor capitalization-flippedPlumbingserviceinstead of the canonicalPlumbingService. Schema.org type labels are PascalCase. Lowercase or wrong-case variants are silently invalid — JSON parses, but AI search treats it as no signal. - Properties used as types:
@type: "openingHoursSpecification".openingHoursSpecificationis a property ofLocalBusiness, not a top-level type. The author confused the property name with a type. Caught on multiple sites. - Off-vocab strings:
@type: "Neighborhood",@type: "Camas"(a place name in Washington state),@type: "product"(lowercase),@type: "aggregateRating"(used as a@typerather than a property). None exist in schema.org’s class vocabulary as written. They look plausible. They mean nothing to a parser.
These errors are particularly nasty because they don’t show up in browser dev tools, don’t show up in Google Search Console’s structured-data report (which only flags Rich Results errors, not vocab validity), and don’t show up in most JSON-LD testing tools that only check for parseability. They’re also un-correctable by a non-developer once shipped, because spotting them requires knowing the canonical schema.org type list.
The takeaway: 3.8% of plumbing sites paid for structured data that doesn’t work. The schema is there. AI search ignores it.
(For context: HVAC’s vocab-error rate was 5.8%. Plumbing operators are less likely to have any structured data — but when they do, they’re slightly more likely to ship it correctly.)
Geographic patterns
Median score by metro varies more than expected. Seattle leads at 65; Portland OR trails at 38 — a 27-point spread between top and bottom.
Top five metros by median score:
- Seattle — 65 (n=10)
- San Antonio — 62 (n=10)
- San Francisco — 61 (n=10)
- Houston — 57 (n=9)
- San Diego — 56 (n=10)
Bottom five:
- Portland OR — 38 (n=9)
- Los Angeles — 37 (n=10)
- Washington DC — 40 (n=9)
- Jacksonville — 40 (n=9)
- Indianapolis / Nashville / Philadelphia — 41 (n=10/10/9)
Two metros stand out as outliers in absolute terms. Memphis (n=10) has a median of 55 but 40% of its sample scored below 30 — the highest invisible-tier rate in the data. Whatever segments the Memphis market is producing both strong-template sites and template-free sites at the extremes, with little in between. Washington DC (n=9) has a median of 40 and 33% scoring below 30 — the only metro where the median sits in the partial tier and a third of operators are still invisible.
By contrast, Seattle (n=10), San Diego (n=10), Chicago (n=9), and Philadelphia (n=9) had 0% of their samples score below 30. Whatever ecosystem of tools and agencies serves plumbing operators in those metros produces structured data of consistently usable quality, even when it’s not top-tier.
This isn’t a per-business judgment. The same market dynamics that produce a strong website ecosystem in one metro and a weaker one in another shape the result. From a plumbing operator’s standpoint, the actionable read is: whatever your local “everybody uses” website agency or platform is, audit it. Strong metros and weak metros have different defaults. The metro you’re in tells you which default you’re inheriting if you don’t pick deliberately.
What this means for plumbing operators
Three concrete implications come out of this data. They’re variations on the implications from the HVAC report — which is the point. The pattern repeats.
First, the “we have a website” baseline isn’t enough — and plumbing has further to go than HVAC. A website with 90% canonical-link coverage and 89% meta-description coverage was the right thing to brag about in 2014. In 2026, the AI search surface is a meaningfully different layer — and the average plumbing website hasn’t been updated for it. 80% of cap on Discoverability and 20% of cap on Trust isn’t a near-miss. It’s the wrong shape entirely.
Second, the gap is closer to a switch than a slope. The data shows top performers share a complete fingerprint of signals together. They don’t gradually accumulate one signal at a time. Operators currently in the bottom or middle aren’t a year of optimization away from being in the top quartile — they’re a platform/template change away. That changes the planning conversation from “what do we improve next” to “what do we replace.”
Third, plumbing operators are 25 points behind HVAC operators on declaring what they are. Identity averaged 33% of cap in plumbing vs 42% in HVAC. The thing AI engines need most — a clean machine-readable answer to “what does this business do?” — is the thing plumbing websites are most often skipping. Not because the answer is hard. Because the tooling didn’t ask.
What to do next
There are three credible paths to a better-than-50/100 score, depending on operator preferences and budget.
Path 1: DIY — add the schema yourself
If your website is on WordPress with a customizable theme, or on a static-site generator your team controls, you can hand-write the JSON-LD. The bare minimum to clear 60/100:
- A
LocalBusinessor vertical subtype likePlumberorPlumbingServicewithname,address,telephone,openingHours,areaServed, andsameAsto your social profiles. - An
aggregateRatingwith the actual review count and average from your Google Business Profile (refreshed periodically; not a one-time placeholder). - A
BreadcrumbListon every non-root page reflecting the site hierarchy. - An
FAQPageschema on a real FAQ page or under your Service pages, containing the questions customers actually ask before booking — emergency response time, what counts as an emergency, after-hours pricing, water heater replacement vs repair. - A canonical link, an Open Graph block, and a
<title>tag specific to each page.
This is a few hours of work for a competent web developer who has done it before. It is not a few hours of work for an operator who has never written JSON-LD. The single highest-friction part is keeping the aggregateRating accurate over time — a static rating count goes stale fast and starts hurting credibility once it’s visibly out of date.
Path 2: Use a marketing platform that emits this by default
Most modern marketing platforms — including Launch10 — emit structured data as a feature of how the platform builds pages, not as something the operator writes by hand. The choice between platforms in this category is essentially a choice about which structured-data fingerprint your site will have, which platform’s defaults align with your business, and which platform tracks updates over time so the data doesn’t go stale.
Launch10 — built for trades operators, not for marketing teams
We built Launch10 for the plumbing operator who already has a real business with real reviews and real customers, but whose actual job is fixing leaks and pulling water heaters — not learning JSON-LD or sitting through Google Ads tutorials. People asked us for Housecall Pro–style dispatch and invoicing tools constantly. We said no, and we’ll keep saying no — that’s not who Launch10 is for. Housecall Pro and ServiceTitan do that work well. So we built the opposite: the marketing infrastructure layer underneath the operator-facing tools, so the page, ads, tracking, and structured data come together as one connected build.
What that looks like in practice:
- Real ad cost data baked in by geography. Live keyword cost and competition for the operator’s zip code, before they set a budget — not a “set bids at $1” placeholder.
- Pages built to win Quality Score, not design awards. Sub-second LCP, mobile-first, structured for the AI-readable signals this report is about. The structured-data fingerprint is the platform’s default output, not an upsell.
- Page + Google Ads campaign + click-to-customer tracking generated together as one connected build — including on the Starter tier ($59/mo). Most competitors require three tools and someone to stitch them.
- Recommendations as outputs, not dashboards. “Pause this keyword. Raise this bid on weekday mornings. Your form is dropping mobile users at the phone field.” The system tells the operator what to do, not just what happened.
- Leads delivered wherever you already work — Housecall Pro, ServiceTitan, FieldEdge, Jobber, and 5,000+ other apps, all via Zapier. The lead lands in the system you already check, not in another inbox.
This is not a better Squarespace. Squarespace builds beautiful brochure sites for bands and bakeries. Launch10 solves a different problem: turning a service business’s website into a measurable customer-acquisition channel.
Best for: plumbing, HVAC, electrical, and trades operators running their own marketing budget — typically $500–$5,000/month in ad spend, in one to a small handful of locations.
Path 3: Hire an agency or specialized SEO consultant
If neither DIY nor a platform fits, an agency that specializes in local-services SEO can write the schema, set up tracking, and maintain the site over time. The cost is meaningfully higher than DIY or platform — typically $1,500–$5,000/month for a competent local-SEO agency in this category — and the quality varies dramatically. The pre-engagement question to ask is: “Show me the structured data on three of your existing plumbing client sites.” If they don’t have an answer, they’re not the right agency for this report’s findings.
Methodology
Sample. 235 single-location and small-multi-location plumbing operators across 25 US metros, sourced from Google Maps top organic results plus directory backfill across Yelp organic listings (excluding sponsored), local “best of” listicles, and chamber-of-commerce member lists. National chains and franchise networks (Roto-Rooter, Mr. Rooter, Benjamin Franklin Plumbing, ARS/Rescue Rooter, One Hour, Mike Diamond, Bonney) excluded to keep the sample focused on the operator profile small businesses actually compete with. Plumbing+HVAC combo shops were included where they self-identify primarily as plumbers — they are common in this trade and excluding them would distort the sample. 250 sites attempted; 15 excluded due to fetch failures (HTTP 403, timeout, or DNS resolution failure) leaving n=235. Statistical confidence interval at this size for binary outcomes is ±6.4% at 95% confidence.
Audit methodology. Each site was fetched as raw HTML — no headless browser rendering — to match what AI search crawlers actually see. JS-injected schema is invisible to most production AI crawlers, so this report deliberately measures the same surface they do. JSON-LD blocks were extracted via regex, parsed, walked through any nested @graph structures, and validated.
Validation. Every detected @type was checked against the canonical schema.org vocabulary (downloaded from https://schema.org/version/latest/schemaorg-current-https.jsonld on May 5, 2026 — 933 types). Type values not present in the vocab were flagged invalid. Each entity was also checked against application-level required-property expectations consistent with Google Rich Results documentation: a LocalBusiness (or Plumber, or PlumbingService) without name + address + telephone was treated as incomplete for scoring purposes.
Scoring rubric (v1.0.0). 100 points across four sub-scores: Identity (25), Trust (20), Service (15), Discoverability (40). Each rubric rule fires if its check passes against the validated audit. Only entities with at least one recognized type AND all required properties present were eligible to award scoring credit. The rubric is unchanged from the HVAC report — same module, same rules, so cross-vertical comparison is apples-to-apples.
Cross-vertical comparison. Where this report cites the HVAC equivalent of a metric, that comparison is to the same audit module run against a 207-site HVAC sample on the same date (May 5, 2026). The comparison is direct: the same scorer, the same rubric, the same vocabulary snapshot. Differences between verticals are differences in the data, not in the measurement.
Limitations. This report measures readiness, not citation outcomes. We don’t claim the top-scoring sites in this sample are the most-cited plumbing sites in Perplexity’s actual citation graph (that would require a different study with different access). We claim only that they’re the best-equipped for citation. We also haven’t measured robots.txt policy for AI bots in this report — that’s a separate axis worth covering in a future iteration. Finally, n=7 metros in the sample have fewer than 9 sites; metro-level findings should be treated as directional, not definitive.
Vocab snapshot. The schema.org vocabulary version captured for this audit (with full type list) is preserved alongside the raw audit data, so the entire methodology can be replayed against the same vocab in a future report.
Raw data. The full per-site JSON and CSV are available on request — email [email protected] with the subject “Plumbing 2026 raw data.”
A note on sourcing. The GEO research space is full of widely-circulated statistics whose attribution chains end at unnamed studies with undisclosed methodology. This report cites only primary research with disclosed sample sizes and methodology. Where we couldn’t verify a number, we left it out — even when it would have made a punchier headline.
This is the second of a planned series of vertical AI search readiness audits from Launch10 Research. The first covered HVAC. Roofing, dental, and legal are next. If your industry isn’t on that list and you’d like it audited, get in touch.

Co-Founder & CEO, Launch10
Greg Hockenbrocht is the Co-Founder and CEO of Launch10. Before Launch10, he was on the executive leadership team at Fundera through its acquisition by NerdWallet, where he led Growth & New Ventures following the company's IPO. Through Illuminated Ventures and work with founders and business owners, he saw a need for Launch10 to help bring clarity, confidence, and ease to digital marketing.