Plumber Schema Generator for LocalBusiness JSON-LD

Build Plumber structured data with service areas, opening hours, license credentials, contact details, and service lists for plumbing business pages.

🏪Local Business Schema

Fields marked with * are required for valid schema markup.

JSON-LD Output

<span class=400">"text-gray-500">&lt;script type=400">"application/ld+json"&gt;</span>
{
  400">"@context": 400">"https://schema.org",
  400">"@type": 400">"Plumber"
}
<span class=400">"text-gray-500">&lt;/script&gt;</span>

Copy this code and paste it into the <head> section of your HTML page.

Plumber-Specific Properties

PropertyTypeExample
areaServedCity[] / AdministrativeArea[]List of cities/ZIPs you serve
availableServicestring[] / Service[]"Drain Cleaning", "Water Heater"
hasCredentialstring / CredentialLicense number
openingHoursSpecificationOpeningHoursSpec[]24/7 for emergency plumbers
paymentAcceptedstring"Cash, Check, Credit Card"

Copy-Paste Ready Example

{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "Reliable Rooter Services",
  "url": "https://reliablerooter.com",
  "telephone": "+1-555-456-7890",
  "priceRange": "$$",
  "description": "24/7 emergency plumbing services in the Phoenix metro. Licensed, insured, free estimates.",
  "image": "https://example.com/plumber-truck.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Industrial Way",
    "addressLocality": "Phoenix",
    "addressRegion": "AZ",
    "postalCode": "85001",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 33.4484,
    "longitude": -112.0740
  },
  "areaServed": [
    { "@type": "City", "name": "Phoenix" },
    { "@type": "City", "name": "Scottsdale" },
    { "@type": "City", "name": "Tempe" },
    { "@type": "City", "name": "Mesa" },
    { "@type": "City", "name": "Glendale" }
  ],
  "openingHoursSpecification": {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
    "opens": "00:00",
    "closes": "23:59"
  },
  "availableService": [
    "Drain Cleaning",
    "Water Heater Installation",
    "Sewer Line Repair",
    "Leak Detection",
    "Fixture Installation",
    "Emergency Plumbing",
    "Free Estimates"
  ],
  "hasCredential": "Arizona ROC #123456 (Licensed & Insured)"
}

Where to Put This Schema

WordPress (most plumbing sites)

Use Yoast SEO Local, Rank Math, or AIOSEO with their LocalBusiness modules — set @type to "Plumber". For custom emergency-services schema, paste directly into functions.php via wp_head action.

Wix / Squarespace

Settings → SEO/Advanced → Code Injection → Header. Paste full script block.

Service-area landing pages

Create dedicated /plumber-[city]/ pages, each with its own Plumber schema scoped to that city via areaServed. This pattern dominates the plumbing local-pack — every major plumbing site does it.

HomeAdvisor / Angi / Thumbtack listings

Those platforms have their own systems — schema on YOUR site drives YOUR ranking, independent of platform listings. Both channels matter; schema is the moat for organic Google traffic.

Plumber Schema Best Practices

  • Always use Plumber over generic LocalBusiness — Google understands plumbing-intent better.
  • List all served cities/areas in areaServed, not just your home base.
  • For 24/7 services, use openingHoursSpecification for all 7 days with 00:00-23:59.
  • Include license number in hasCredential — major trust signal.
  • List every service (drain cleaning, water heaters, sewer, etc) in availableService — drives matching for service-specific queries.
  • Add insurance info to the description text.
  • Create per-city landing pages with city-specific schemas. Generic state-wide pages lose to city-specific competitors.
  • Use accurate priceRange — $$ for typical residential, $$$ for commercial-focused.

Frequently Asked Questions

Should plumbers use Plumber or HomeAndConstructionBusiness schema?

Plumber is the most specific subtype — use it. HomeAndConstructionBusiness is the parent class. Going specific (Plumber) over generic (HomeAndConstructionBusiness or LocalBusiness) significantly helps Google match plumbing-intent queries.

How do I show 24/7 emergency availability?

Use openingHoursSpecification with all 7 days, opens '00:00', closes '23:59'. Add 'emergency plumber' to keywords and create a dedicated /emergency-plumbing/ page with its own schema emphasizing 24/7 availability.

What's the difference between address and areaServed for plumbers?

address is your physical location (office, dispatch base). areaServed is the geographic radius you actually serve — often much larger than your address. Plumbers typically serve 25-50 mile radius. Use both fields.

Should I list my plumbing license number?

Yes — add as a hasCredential property (EducationalOccupationalCredential). License numbers are a major trust signal and may be required by state contractor licensing boards for online listings.

How do I list services like drain cleaning, water heater, etc?

Use availableService array with each service as a string or Service object. Examples: 'Drain Cleaning', 'Water Heater Installation', 'Sewer Line Repair', 'Leak Detection'. Drives matching for service-specific queries.

Will Plumber schema help me rank for 'plumber near me'?

Indirectly — schema doesn't directly improve ranking but ensures Google has clean data to surface in the local 3-pack. The 'near me' algorithm combines Google Business Profile data, schema, and proximity. All three matter.

Can I list multiple service areas?

Yes — areaServed accepts arrays. List cities, ZIP codes, or counties. Better than a single huge radius. Some plumbers create per-city landing pages (/plumber-denver/, /plumber-aurora/) each with a tighter areaServed.

Should I include free estimate availability?

Yes — add 'Free Estimate' to availableService and mention in description. High-intent query and competitive differentiator. If true, also add to your Google Business Profile attributes.

Related Industry Schemas

Try our AI tools