You have spent thousands of dollars on a professional website. Your Google Business Profile is optimized. Your content strategy is producing blog posts every week. But there is a hidden layer of SEO that most home service businesses ignore entirely — and it is costing you rich snippets, better click-through rates, and higher local rankings.

That layer is schema markup.

Schema markup, also called structured data, is a standardized vocabulary of code that you add to your website to help search engines understand your content. Think of it as translating your website into a language Google speaks fluently. When implemented correctly, schema markup can transform a plain search result into a rich snippet complete with star ratings, pricing, availability, FAQs, and more. For contractors, HVAC companies, plumbers, electricians, and solar installers, this translates directly into more qualified leads calling your business.

Yet most local businesses have little to no schema markup on their websites. The ones that do often implement it incorrectly — missing critical properties, using the wrong schema types, or failing to validate their code. The result? Missed opportunities to stand out in search results while competitors capture the attention of homeowners actively searching for services.

This schema markup checklist solves that problem. We have identified the 25 structured data types that matter most for local businesses and home service contractors. Each type includes a practical explanation of why it matters, how it impacts your SEO, and real code examples you or your developer can implement today. Whether you are a plumbing company in Phoenix or an HVAC contractor in Chicago, this checklist gives you the exact structured data framework you need to outrank competitors who are still relying on basic HTML.

Let us walk through all 25 schema types, organized by priority — essential first, then important, then advanced.


Essential Schema Types (1-10)

These ten schema types form the foundation of any effective local SEO schema strategy. Without these, you are leaving the most significant SEO advantages on the table. Every home service business should implement these before moving on to the more advanced types.

1. LocalBusiness Schema

LocalBusiness schema is the single most important structured data type for any contractor or home service company. It tells Google exactly what your business is, where you are located, what services you offer, and how customers can contact you. Without LocalBusiness schema, Google has to guess these details from your page content — and guesses are never as accurate as explicit data.

The LocalBusiness schema type is actually a broad category that includes more specific subtypes like PlumbingService, HVACBusiness, Electrician, RoofingContractor, and SolarInstallation. Using the most specific subtype available gives Google clearer signals about your exact trade, which can improve relevance for trade-specific searches.

Here is what your LocalBusiness schema should include at minimum:

  • @type: Use the most specific subtype (e.g., PlumbingService, HVACBusiness, RoofingContractor)
  • name: Your exact business name
  • address: Full street address with city, state, and ZIP
  • telephone: Primary business phone number
  • url: Your website homepage
  • image: Logo or business photo URL
  • description: Brief description of your services
  • areaServed: Geographic areas you service
  • priceRange: General pricing indicator ($ to $$$$)
  • openingHours: Business hours for each day

Here is a practical example for an HVAC company:

{
  "@context": "https://schema.org",
  "@type": "HVACBusiness",
  "name": "Cool Air HVAC Services",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street",
    "addressLocality": "Phoenix",
    "addressRegion": "AZ",
    "postalCode": "85001"
  },
  "telephone": "(602) 555-1234",
  "url": "https://www.coolairhvac.com",
  "image": "https://www.coolairhvac.com/logo.jpg",
  "description": "Residential and commercial HVAC installation, repair, and maintenance services in Phoenix, Arizona.",
  "areaServed": {
    "@type": "City",
    "name": "Phoenix"
  },
  "priceRange": "$$",
  "openingHours": "Mo-Fr 08:00-18:00"
}

Why this matters for contractors: LocalBusiness schema directly influences your appearance in the local pack, Google Maps results, and knowledge panels. When a homeowner searches "emergency plumber near me," Google uses structured data to determine which businesses are plumbers, which are nearby, and which are currently open. Missing or incorrect LocalBusiness schema means you may not appear at all, even if your content is otherwise optimized.

Pro tip: If you are a service-area business that does not serve customers at your office address, set your address property but also use the "serviceArea" property to define your service radius. This prevents Google from showing your office location in Maps when you actually visit customers at their homes.

2. Organization Schema

While LocalBusiness schema describes your physical business location and services, Organization schema describes your company as a legal entity. It provides Google with authoritative information about your brand, including your official name, logo, contact information, and social media profiles. This schema type helps Google build a knowledge graph entity for your business, which strengthens brand signals across all search results.

Organization schema is particularly valuable for home service businesses with multiple locations or franchise operations. It creates a parent entity that individual location pages can reference, establishing clear organizational hierarchy for search engines.

Key properties to include:

  • @type: Organization
  • name: Legal business name
  • url: Official website
  • logo: High-resolution logo image URL
  • sameAs: Links to social media profiles, BBB page, Yelp, and other authoritative sources
  • contactPoint: Customer service contact information

Here is an example:

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Premier Home Services Inc.",
  "url": "https://www.premierhomeservices.com",
  "logo": "https://www.premierhomeservices.com/logo.png",
  "sameAs": [
    "https://www.facebook.com/premierhomeservices",
    "https://www.yelp.com/biz/premier-home-services",
    "https://www.bbb.org/us/az/phoenix/profile/plumbing/premier-home-services"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "(602) 555-1234",
    "contactType": "customer service",
    "availableLanguage": "English"
  }
}

Why this matters for contractors: Organization schema helps Google verify your business legitimacy by cross-referencing your "sameAs" links with your actual social media and directory profiles. This verification process builds trust signals that can improve your overall domain authority. Additionally, when Google displays a knowledge panel for your brand name search, Organization schema provides the structured data needed to populate it with accurate information, logo, and social links.

Pro tip: Keep your "sameAs" URLs updated. If you abandon a social media platform, remove it from your Organization schema. Inconsistent or dead social links can create trust signals that work against you.

3. WebSite Schema

WebSite schema tells search engines about your website structure and provides a direct path to your site search functionality. While it may seem basic, this schema type enables the Sitelinks Search Box feature in Google search results — the search box that appears below some website listings allowing users to search directly within your site.

For contractors, the Sitelinks Search Box is valuable because it allows potential customers to search your site for specific services ("water heater repair," "AC installation") directly from Google results, increasing engagement and reducing friction in the customer journey.

Here is the implementation:

{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Cool Air HVAC Services",
  "url": "https://www.coolairhvac.com",
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://www.coolairhvac.com/search?q={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}

Why this matters for contractors: The Sitelinks Search Box feature increases your real estate in search results and provides a direct engagement path for users who know what they want but need to find it on your site. For service businesses with extensive content libraries, this can significantly improve user experience and reduce bounce rates from search traffic.

Pro tip: Your site must have a functioning search page for this schema to work. If your website does not have search functionality, skip this schema type until you add it. Google will not display the search box if the target URL does not resolve properly.

4. WebPage Schema

WebPage schema should be present on every page of your website. It provides fundamental metadata about each page, including the page title, description, publication date, and author. While many of these elements exist in standard HTML meta tags, the structured data version gives Google explicit confirmation of what each page contains.

For home service businesses, WebPage schema is particularly important on service pages, location pages, and blog posts. It helps Google understand the purpose and context of each page, which improves indexing accuracy and relevance matching.

Key properties include:

  • @type: WebPage
  • name: Page title
  • description: Meta description content
  • url: Canonical URL of the page
  • datePublished: Publication date
  • dateModified: Last modified date
  • breadcrumb: Reference to breadcrumb schema

Example implementation:

{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "name": "Emergency Plumbing Services in Phoenix | Cool Air HVAC",
  "description": "24/7 emergency plumbing services in Phoenix. Fast response times, licensed plumbers, and upfront pricing. Call now for immediate assistance.",
  "url": "https://www.coolairhvac.com/services/emergency-plumbing",
  "datePublished": "2024-01-15",
  "dateModified": "2025-03-10"
}

Why this matters for contractors: Freshness signals matter in local SEO. When Google sees that your service pages are regularly updated (via dateModified), it interprets this as active business maintenance. Stale pages with old dates can signal neglect. WebPage schema makes these freshness signals explicit and machine-readable.

Pro tip: Update the dateModified property whenever you make meaningful changes to a page — new pricing, updated service descriptions, or additional FAQs. Do not update it for trivial changes, as Google can detect artificial freshness manipulation.

5. Service Schema

Service schema is where many contractors miss a massive opportunity. While LocalBusiness schema describes your company, Service schema describes the specific services you offer — in detail. This allows Google to match your pages to highly specific search queries like "tankless water heater installation cost" or "ductless mini-split repair."

Each major service you offer should have its own Service schema implementation. If you are an HVAC company, you should have separate Service schema for AC repair, AC installation, furnace repair, furnace installation, duct cleaning, and thermostat installation. If you are a plumber, you need Service schema for drain cleaning, water heater repair, pipe replacement, leak detection, and each of your other core services.

Key properties include:

  • @type: Service
  • serviceType: Name of the service
  • provider: Reference to your LocalBusiness schema
  • areaServed: Geographic service area
  • description: Detailed service description
  • offers: Pricing and availability information
  • aggregateRating: Average customer rating

Here is an example for a specific HVAC service:

{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "Air Conditioning Installation",
  "provider": {
    "@type": "HVACBusiness",
    "name": "Cool Air HVAC Services"
  },
  "areaServed": {
    "@type": "City",
    "name": "Phoenix"
  },
  "description": "Professional air conditioning installation for residential and commercial properties. We install all major brands including Carrier, Trane, and Lennox. Free estimates and financing available.",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD",
    "description": "Free estimate for AC installation"
  }
}

Why this matters for contractors: Service schema enables Google to display rich results for specific service queries. When a homeowner searches "furnace replacement cost Phoenix," Google can pull pricing information, service descriptions, and ratings directly from your Service schema to create an enhanced search result. Without Service schema, you are relying entirely on page content to rank for these specific queries.

Pro tip: Use the "hasOfferCatalog" property to create a structured list of all your services with individual pricing. This is particularly powerful for contractors who want to appear in Google's service-related rich results.

6. FAQPage Schema

FAQPage schema is one of the highest-impact schema types for home service businesses. It enables the FAQ rich result in Google search — those expandable question-and-answer boxes that appear below some search results. These rich results dramatically increase your search result real estate and provide immediate value to searchers, often improving click-through rates by 15-30%.

For contractors, FAQPage schema should be implemented on every service page and location page. The questions should reflect actual customer concerns: "How much does AC repair cost?" "Do you offer emergency services?" "What brands do you install?" "How long does installation take?"

Implementation requires a mainEntity array containing question-answer pairs:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How much does AC repair cost in Phoenix?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "AC repair costs in Phoenix typically range from $150 to $650 depending on the issue. Minor repairs like capacitor replacement cost $150-$300, while major repairs like compressor replacement can cost $1,200-$2,500. We provide upfront pricing before any work begins."
      }
    },
    {
      "@type": "Question",
      "name": "Do you offer 24/7 emergency HVAC services?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, we offer 24/7 emergency HVAC services throughout the Phoenix metro area. Our technicians are on call nights, weekends, and holidays. Emergency service calls are typically responded to within 2 hours."
      }
    }
  ]
}

Why this matters for contractors: FAQ rich results capture high-intent traffic. When a homeowner searches "how much does water heater replacement cost," an FAQ result that directly answers their question builds immediate trust and increases the likelihood they will click through to your site. Additionally, FAQ content is frequently pulled into voice search results and AI overviews, expanding your visibility beyond traditional search.

Pro tip: Google has strict guidelines for FAQ schema. Each question must be answered on the page where the schema appears. You cannot use FAQ schema to link to answers on other pages. Also, avoid promotional language in your answers — keep them factual and helpful.

7. HowTo Schema

HowTo schema enables step-by-step rich results that display numbered instructions directly in search results. For home service businesses, this is perfect for educational content like "How to Change Your HVAC Filter," "How to Winterize Your Plumbing," or "How to Reset Your Water Heater."

While you might hesitate to give away "free" information, HowTo content serves a critical SEO purpose. It captures top-of-funnel traffic from homeowners researching problems before they are ready to hire. By providing genuinely helpful instructions, you build brand awareness and trust. Many homeowners will attempt the DIY approach, fail, and then call the company that provided the helpful guide in the first place.

Key properties include:

  • @type: HowTo
  • name: Title of the guide
  • description: Brief overview
  • totalTime: Estimated time to complete
  • estimatedCost: Materials cost
  • step: Array of individual steps with text and images

Example:

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to Change Your AC Filter",
  "description": "Step-by-step guide to changing your air conditioning filter for improved efficiency and air quality.",
  "totalTime": "PT10M",
  "estimatedCost": {
    "@type": "MonetaryAmount",
    "currency": "USD",
    "value": "15-30"
  },
  "step": [
    {
      "@type": "HowToStep",
      "name": "Turn off your HVAC system",
      "text": "Locate your thermostat and turn the system to OFF. This prevents the system from running while the filter is removed."
    },
    {
      "@type": "HowToStep",
      "name": "Locate the filter compartment",
      "text": "Find the return air vent or furnace compartment where the filter is housed. This is usually near the thermostat or in a utility closet."
    }
  ]
}

Why this matters for contractors: HowTo schema captures informational search traffic that competitors often ignore. A homeowner searching "how to unclog a drain" may not need a plumber today, but they will remember the plumbing company that provided a clear, helpful guide. When their DIY attempt fails or they face a bigger problem later, your brand is top of mind.

Pro tip: Include a "tool" array listing required materials and a "supply" array for consumables. This additional detail increases the likelihood of rich result display and provides more value to searchers.

8. Review Schema

Review schema marks up individual customer reviews on your website. When implemented on testimonial pages or alongside service descriptions, it can contribute to rich results displaying star ratings and review snippets in search results.

For home service businesses, Review schema should be applied to individual customer testimonials on your website. Each review should include the reviewer name (or "Anonymous"), the review rating, the review text, and the date published.

Example implementation:

{
  "@context": "https://schema.org",
  "@type": "Review",
  "itemReviewed": {
    "@type": "HVACBusiness",
    "name": "Cool Air HVAC Services"
  },
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": "5",
    "bestRating": "5"
  },
  "author": {
    "@type": "Person",
    "name": "Sarah Johnson"
  },
  "reviewBody": "Cool Air replaced our entire HVAC system in one day. The crew was professional, cleaned up everything, and the new system works perfectly. Highly recommend!",
  "datePublished": "2025-02-15"
}

Why this matters for contractors: Individual Review schema, when combined with AggregateRating schema, creates powerful social proof signals in search results. Google can display star ratings next to your pages, which significantly increases click-through rates. Studies consistently show that search results with star ratings receive 15-35% more clicks than those without.

Pro tip: Only markup reviews that are genuinely on your website. Do not markup third-party reviews from Google, Yelp, or other platforms using Review schema. Google considers this a violation of their guidelines and may penalize your site.

9. AggregateRating Schema

AggregateRating schema displays your overall star rating and total review count in search results. Unlike Review schema which marks up individual reviews, AggregateRating provides a summary of all your ratings. This is the schema type that creates those eye-catching star ratings you see in search results for products, services, and local businesses.

For contractors, AggregateRating schema should be implemented on your homepage, service pages, and location pages. The rating should reflect your actual average across all review platforms — Google, Yelp, Facebook, BBB — not just reviews on your own website.

Example:

{
  "@context": "https://schema.org",
  "@type": "HVACBusiness",
  "name": "Cool Air HVAC Services",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "247",
    "bestRating": "5"
  }
}

Why this matters for contractors: The star rating rich result is one of the most powerful click-through rate boosters in local SEO. When a homeowner sees your listing with 4.8 stars and 247 reviews next to a competitor with no stars, the psychological pull toward your result is immense. AggregateRating schema makes this possible.

Pro tip: Google requires a minimum number of reviews before displaying AggregateRating stars — typically around 10-15 reviews. If you have fewer reviews, focus on generating more before implementing this schema. Also, ensure your ratingValue is accurate. Inflating ratings violates Google's guidelines and can result in manual actions.

10. BreadcrumbList Schema

BreadcrumbList schema creates the breadcrumb navigation trail that appears in Google search results, showing users the path to your page within your site structure. Instead of displaying a raw URL like "www.example.com/services/plumbing/emergency-repair," Google can display "Home > Services > Plumbing > Emergency Repair."

For contractors with multi-level site structures — service categories, individual services, location pages, blog categories — breadcrumb schema improves both user experience and search result presentation.

Implementation:

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://www.coolairhvac.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Services",
      "item": "https://www.coolairhvac.com/services/"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Emergency AC Repair",
      "item": "https://www.coolairhvac.com/services/emergency-ac-repair/"
    }
  ]
}

Why this matters for contractors: Breadcrumb schema improves click-through rates by making search results more readable and professional. It also helps Google understand your site architecture, which can improve crawling efficiency and indexation of deeper pages. For large contractor websites with dozens of service and location pages, this structural clarity is essential.

Pro tip: Ensure your breadcrumb schema matches the actual breadcrumb navigation visible on your page. Google checks for consistency between visible content and structured data. Mismatches can result in the breadcrumb rich result not appearing.


Important Schema Types (11-18)

Once you have implemented the essential schema types, these eight additional structured data types provide significant SEO advantages for specific content types and business scenarios. They are not universally required but deliver strong returns when applied appropriately.

11. Product Schema

Product schema is not just for e-commerce websites. Home service businesses can use Product schema to markup equipment they sell and install — HVAC systems, water heaters, solar panels, generators, smart thermostats, and more. When implemented correctly, Product schema can trigger rich results showing price, availability, ratings, and product images directly in search results.

For HVAC companies, Product schema is particularly valuable for system replacement pages. When a homeowner searches "Carrier Infinity 26 air conditioner price," Product schema can display your pricing, availability, and installation options in the search result itself.

Key properties include:

  • @type: Product
  • name: Product name
  • image: Product image URL
  • description: Product description
  • brand: Manufacturer information
  • offers: Pricing and availability
  • aggregateRating: Customer ratings
  • review: Individual product reviews

Example for an HVAC system:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Carrier Infinity 26 Air Conditioner",
  "image": "https://www.coolairhvac.com/images/carrier-infinity-26.jpg",
  "description": "The Carrier Infinity 26 air conditioner delivers up to 26 SEER cooling efficiency with variable-speed operation for precise temperature control and humidity management.",
  "brand": {
    "@type": "Brand",
    "name": "Carrier"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://www.coolairhvac.com/products/carrier-infinity-26",
    "price": "4850.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2025-12-31"
  }
}

Why this matters for contractors: Product schema captures high-intent buyers researching specific equipment. A homeowner comparing HVAC systems is much closer to purchase than someone searching general terms. By providing detailed product information in search results, you capture this comparison traffic and position yourself as the installation expert for that equipment.

Pro tip: Include the "priceValidUntil" property to show Google that your pricing is current. Expired pricing signals can hurt your credibility. Update this date regularly or remove it if pricing is subject to change.

12. Offer Schema

Offer schema works alongside Product and Service schema to provide detailed pricing, availability, and promotion information. While Product schema describes the item, Offer schema describes the transaction terms — price, currency, availability status, warranty, and eligible regions.

For contractors, Offer schema is essential for any page displaying pricing. This includes service pages with flat-rate pricing, equipment pages with installation costs, and promotional pages with seasonal discounts.

Key properties:

  • @type: Offer
  • price: Numeric price value
  • priceCurrency: Currency code (USD)
  • availability: InStock, OutOfStock, PreOrder
  • validFrom: Promotion start date
  • validThrough: Promotion end date
  • url: Link to offer page
  • itemOffered: Reference to product or service
  • eligibleRegion: Geographic eligibility

Example for a seasonal HVAC promotion:

{
  "@context": "https://schema.org",
  "@type": "Offer",
  "name": "Spring AC Tune-Up Special",
  "price": "79.00",
  "priceCurrency": "USD",
  "availability": "https://schema.org/InStock",
  "validFrom": "2025-03-01",
  "validThrough": "2025-05-31",
  "description": "Complete air conditioning tune-up including refrigerant check, coil cleaning, and system performance test. Regular price $129.",
  "eligibleRegion": {
    "@type": "State",
    "name": "Arizona"
  }
}

Why this matters for contractors: Offer schema enables Google to display pricing information, sale badges, and availability status in search results. For price-conscious homeowners comparing multiple contractors, seeing a clear $79 tune-up special directly in search results can be the deciding factor in clicking your link versus a competitor's.

Pro tip: Use the "priceSpecification" property for complex pricing structures. If you have tiered service packages (Basic, Standard, Premium), you can include multiple price specifications within a single Offer schema to show all options.

13. Person Schema

Person schema marks up individual people associated with your business — owners, technicians, project managers, and office staff. While not directly tied to local rankings, Person schema helps Google build entity relationships between your team members and your business, strengthening overall brand authority.

For home service businesses, Person schema is particularly valuable for "About Us" pages and team profiles. It allows Google to display rich information about key team members, including photos, job titles, and professional credentials.

Key properties:

  • @type: Person
  • name: Full name
  • jobTitle: Position at company
  • worksFor: Reference to Organization
  • image: Professional photo
  • description: Bio or credentials
  • alumniOf: Educational background
  • award: Professional certifications

Example:

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Michael Rodriguez",
  "jobTitle": "Master HVAC Technician",
  "worksFor": {
    "@type": "Organization",
    "name": "Cool Air HVAC Services"
  },
  "image": "https://www.coolairhvac.com/team/michael-rodriguez.jpg",
  "description": "Michael is a licensed master HVAC technician with 15 years of experience in residential and commercial systems. He holds EPA 608 Universal Certification and NATE certification.",
  "alumniOf": "Arizona Technical Institute",
  "award": "NATE Certified Technician, EPA 608 Universal"
}

Why this matters for contractors: Homeowners want to know who is coming into their homes. Person schema on team pages builds trust by making technician credentials visible and verifiable. When combined with review schema that names specific technicians, it creates a powerful trust loop that differentiates your business from faceless competitors.

Pro tip: Include professional certifications and licenses in the "award" or "hasCredential" properties. For trades requiring licensing (electrical, plumbing, HVAC), these credentials are major trust signals that should be prominently marked up.

14. Article Schema

Article schema should be applied to every blog post, news article, and press release on your website. It tells Google that the content is a published article with an author, publication date, and publisher. This schema type is required for Google News inclusion and improves the appearance of your content in regular search results.

For contractors publishing educational blog content, Article schema ensures Google treats your posts as legitimate editorial content rather than thin marketing pages. This distinction matters for ranking in informational searches.

Key properties:

  • @type: Article (or NewsArticle, BlogPosting)
  • headline: Article title
  • description: Article summary
  • image: Featured image
  • author: Author information
  • publisher: Publishing organization
  • datePublished: Publication date
  • dateModified: Last modified date
  • mainEntityOfPage: Canonical URL

Example:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "5 Signs Your AC Needs Replacement Before Summer",
  "description": "Learn the warning signs that indicate your air conditioner needs replacement rather than repair, and how to plan for a smooth upgrade.",
  "image": "https://www.coolairhvac.com/blog/ac-replacement-signs.jpg",
  "author": {
    "@type": "Person",
    "name": "Michael Rodriguez"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Cool Air HVAC Services",
    "logo": {
      "@type": "ImageObject",
      "url": "https://www.coolairhvac.com/logo.png"
    }
  },
  "datePublished": "2025-03-15",
  "dateModified": "2025-03-15"
}

Why this matters for contractors: Article schema improves the visibility and presentation of your blog content in search results. It enables features like "Top Stories" carousels and enhances the appearance of your content in regular results with publication dates and author information. For contractors investing in content marketing, this schema type maximizes the return on that investment.

Pro tip: Use "BlogPosting" instead of "Article" for informal blog content, and "NewsArticle" for press releases or time-sensitive announcements. Using the most specific type available gives Google clearer signals about content intent.

15. BlogPosting Schema

BlogPosting schema is a more specific subtype of Article schema designed specifically for blog content. While functionally similar to Article schema, using BlogPosting for your blog posts provides Google with explicit confirmation that the content is blog-style editorial rather than news or formal article content.

For contractors maintaining active blogs, BlogPosting schema should be the default for all posts. It pairs naturally with other schema types — FAQPage schema for posts answering common questions, HowTo schema for instructional posts, and Review schema for posts featuring customer testimonials.

Example:

{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "How to Prepare Your HVAC System for Arizona Summer",
  "description": "Essential maintenance steps to ensure your air conditioner performs reliably during extreme Phoenix summer heat.",
  "image": "https://www.coolairhvac.com/blog/summer-hvac-prep.jpg",
  "author": {
    "@type": "Person",
    "name": "Michael Rodriguez"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Cool Air HVAC Services"
  },
  "datePublished": "2025-04-01",
  "dateModified": "2025-04-01"
}

Why this matters for contractors: BlogPosting schema helps Google categorize your content correctly, which improves its chances of appearing in blog-specific search features and content aggregators. For contractors using blogging as a lead generation strategy, proper schema markup ensures maximum visibility for every post you publish.

Pro tip: Combine BlogPosting schema with "speakable" markup (covered later in this checklist) to identify sections of your blog posts that are optimized for voice search and audio playback.

16. ImageObject Schema

ImageObject schema provides structured data about images on your website, including the image URL, caption, description, and copyright information. While Google can extract basic image information from HTML, ImageObject schema provides explicit metadata that improves image search visibility and accessibility.

For contractors, ImageObject schema should be applied to all significant images — project photos, team photos, equipment images, and before/after galleries. It helps Google understand what each image depicts, which improves rankings in Google Images and can contribute to rich results.

Key properties:

  • @type: ImageObject
  • url: Image URL
  • caption: Short image caption
  • description: Detailed image description
  • name: Image title
  • contentUrl: Direct image link
  • thumbnail: Thumbnail URL
  • author: Photographer credit

Example:

{
  "@context": "https://schema.org",
  "@type": "ImageObject",
  "url": "https://www.coolairhvac.com/projects/hvac-installation-phoenix.jpg",
  "caption": "Complete HVAC system installation in Phoenix home",
  "description": "Installation of a Carrier Infinity 26 air conditioning system and 96% AFUE gas furnace in a 2,400 square foot Phoenix residence. Project completed in one day.",
  "name": "Phoenix HVAC Installation Project",
  "contentUrl": "https://www.coolairhvac.com/projects/hvac-installation-phoenix.jpg"
}

Why this matters for contractors: Homeowners frequently use Google Images to research projects, compare work quality, and find contractors. ImageObject schema improves your visibility in image search and can trigger image-rich results in regular search. For contractors with strong visual portfolios, this schema type turns your project photos into SEO assets.

Pro tip: Use descriptive, keyword-rich captions and descriptions. "HVAC installation Phoenix" is infinitely more valuable than "IMG_4521.jpg" for both users and search engines.

17. VideoObject Schema

VideoObject schema marks up video content on your website, enabling rich video results in Google search. These results display video thumbnails, durations, upload dates, and descriptions directly in search results — dramatically increasing visibility and click-through rates for video content.

For contractors, VideoObject schema is essential for any page containing video content: customer testimonial videos, project walkthroughs, equipment explanations, or maintenance tutorials. Video content is increasingly important in home service marketing, and VideoObject schema ensures that content gets maximum search visibility.

Key properties:

  • @type: VideoObject
  • name: Video title
  • description: Video description
  • thumbnailUrl: Thumbnail image URL
  • uploadDate: Publication date
  • duration: Video length (ISO 8601 format)
  • contentUrl: Direct video file URL
  • embedUrl: Embed URL if applicable
  • publisher: Video publisher

Example:

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "What to Expect During AC Installation",
  "description": "Walkthrough of the air conditioning installation process from start to finish. Learn how long installation takes, what our technicians do, and how to prepare your home.",
  "thumbnailUrl": "https://www.coolairhvac.com/videos/ac-installation-thumbnail.jpg",
  "uploadDate": "2025-02-20",
  "duration": "PT4M30S",
  "contentUrl": "https://www.coolairhvac.com/videos/ac-installation.mp4",
  "publisher": {
    "@type": "Organization",
    "name": "Cool Air HVAC Services"
  }
}

Why this matters for contractors: Video rich results capture significant search real estate and tend to have higher click-through rates than standard text results. A homeowner searching "AC installation process" is more likely to click a result with a video thumbnail showing an actual installation than a text-only result. VideoObject schema makes these rich results possible.

Pro tip: Host videos on your own domain when possible, or use YouTube with proper schema markup linking back to your site. Self-hosted videos give you full SEO credit, while YouTube videos benefit from the platform's massive search volume. The best strategy often combines both approaches.

18. Event Schema

Event schema marks up events your business is hosting, sponsoring, or participating in. It enables rich event results that display dates, times, locations, and ticket information directly in Google search. For home service businesses, this applies to community events, open houses, workshops, seasonal promotions with specific dates, and trade show appearances.

While not every contractor hosts events, those that do — particularly larger companies and those with showrooms — can gain significant visibility through Event schema. Even smaller contractors can use it for limited-time promotions or seasonal service events.

Key properties:

  • @type: Event
  • name: Event name
  • startDate: Event start date and time
  • endDate: Event end date and time
  • eventAttendanceMode: Online, Offline, or Mixed
  • eventStatus: Scheduled, Postponed, Cancelled
  • location: Venue information
  • description: Event description
  • offers: Ticket or registration information
  • organizer: Event organizer

Example:

{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Free HVAC Maintenance Workshop",
  "startDate": "2025-05-15T18:00:00",
  "endDate": "2025-05-15T19:30:00",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": {
    "@type": "Place",
    "name": "Cool Air HVAC Showroom",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "123 Main Street",
      "addressLocality": "Phoenix",
      "addressRegion": "AZ",
      "postalCode": "85001"
    }
  },
  "description": "Learn essential HVAC maintenance tasks you can do yourself and when to call a professional. Free attendance, refreshments provided.",
  "organizer": {
    "@type": "Organization",
    "name": "Cool Air HVAC Services"
  }
}

Why this matters for contractors: Event schema puts your business in front of local searchers looking for activities and events in your area. Even if the event itself does not generate direct revenue, the brand exposure and community goodwill create long-term customer relationships. For contractors focused on local market dominance, event visibility is a powerful differentiator.

Pro tip: Google Events requires specific formatting for dates and times. Always use ISO 8601 format (YYYY-MM-DDTHH:MM:SS) and include timezone information when possible. Incorrect date formatting is the most common reason Event schema fails validation.


Advanced Schema Types (19-25)

These seven schema types are considered advanced because they require more technical implementation or apply to specific business scenarios. However, when used correctly, they provide competitive advantages that most local businesses never achieve.

19. JobPosting Schema

JobPosting schema marks up job listings on your website, enabling them to appear in Google for Jobs — the job search feature integrated into Google Search. For growing home service businesses actively hiring technicians, installers, and office staff, JobPosting schema is essential for recruitment visibility.

The home services industry faces a persistent skilled labor shortage. Getting your job listings in front of qualified candidates through Google for Jobs can significantly reduce recruitment costs and time-to-hire compared to traditional job boards.

Key properties:

  • @type: JobPosting
  • title: Job title
  • description: Full job description
  • datePosted: Posting date
  • validThrough: Application deadline
  • employmentType: Full-time, Part-time, Contract
  • hiringOrganization: Employer information
  • jobLocation: Work location
  • baseSalary: Compensation information
  • qualifications: Required qualifications

Example:

{
  "@context": "https://schema.org",
  "@type": "JobPosting",
  "title": "HVAC Installation Technician",
  "description": "We are seeking an experienced HVAC installation technician to join our growing team. Responsibilities include residential and light commercial system installation, ductwork fabrication, and customer service.",
  "datePosted": "2025-03-01",
  "validThrough": "2025-04-30",
  "employmentType": "FULL_TIME",
  "hiringOrganization": {
    "@type": "Organization",
    "name": "Cool Air HVAC Services",
    "sameAs": "https://www.coolairhvac.com"
  },
  "jobLocation": {
    "@type": "Place",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "123 Main Street",
      "addressLocality": "Phoenix",
      "addressRegion": "AZ",
      "postalCode": "85001"
    }
  },
  "baseSalary": {
    "@type": "MonetaryAmount",
    "currency": "USD",
    "value": {
      "@type": "QuantitativeValue",
      "minValue": 55000,
      "maxValue": 75000,
      "unitText": "YEAR"
    }
  }
}

Why this matters for contractors: The skilled trades labor shortage means competition for qualified technicians is fierce. JobPosting schema puts your listings in front of active job seekers through Google for Jobs, often at no cost. For contractors struggling to hire, this visibility can be the difference between a staffed crew and missed revenue opportunities.

Pro tip: Include salary information whenever possible. Google for Jobs prominently displays salary ranges, and listings with compensation details receive significantly more clicks than those without. Even if you post a range, the transparency builds trust with candidates.

20. LocalBusiness Subtypes

Schema.org provides dozens of specific LocalBusiness subtypes that go far beyond the generic LocalBusiness type. Using the most specific subtype available gives Google precise signals about your exact business category, which can improve relevance for trade-specific searches.

Available subtypes for home service businesses include:

  • PlumbingService — For plumbing contractors
  • HVACBusiness — For heating and cooling companies
  • Electrician — For electrical contractors
  • RoofingContractor — For roofing companies
  • HousePainter — For painting contractors
  • GeneralContractor — For general construction firms
  • Locksmith — For locksmith services
  • MovingCompany — For moving and relocation services
  • CleaningService — For residential and commercial cleaning

Example using a specific subtype:

{
  "@context": "https://schema.org",
  "@type": "PlumbingService",
  "name": "Rapid Flow Plumbing",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "456 Oak Avenue",
    "addressLocality": "Scottsdale",
    "addressRegion": "AZ",
    "postalCode": "85251"
  },
  "telephone": "(480) 555-7890",
  "url": "https://www.rapidflowplumbing.com"
}

Why this matters for contractors: Generic LocalBusiness schema tells Google you are a local business. Specific subtype schema tells Google you are a plumber, HVAC technician, or electrician. This precision improves your chances of ranking for trade-specific queries and can influence which searches trigger your local pack appearance.

Pro tip: If your business offers multiple trades (e.g., plumbing and HVAC), create separate LocalBusiness schema instances for each trade on relevant pages. Your plumbing service page should use PlumbingService schema, while your HVAC page uses HVACBusiness schema. This page-level specificity reinforces topical relevance.

21. Speakable Schema

Speakable schema identifies sections of your content that are optimized for voice search and audio playback. It tells Google which portions of your page are most appropriate for reading aloud through voice assistants like Google Assistant, Siri, and Alexa.

With voice search growing rapidly — particularly for local "near me" queries — Speakable schema positions your content to be the answer when homeowners ask their devices questions like "Hey Google, how do I know if my water heater is failing?" or "Alexa, what does AC maintenance include?"

Implementation:

{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "name": "AC Maintenance Guide",
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [".speakable-intro", ".speakable-summary"]
  }
}

The CSS selectors reference HTML elements on your page that contain voice-optimized content:

<div class="speakable-intro">
  <p>Annual AC maintenance includes cleaning the condenser coils, checking refrigerant levels, inspecting electrical connections, and testing system performance. Regular maintenance prevents breakdowns, extends equipment life, and maintains manufacturer warranty coverage.</p>
</div>

Why this matters for contractors: Voice search queries tend to be conversational and question-based — exactly how homeowners ask about service needs. By marking up voice-optimized content, you increase the chances that Google selects your website as the spoken answer, building brand awareness even when users do not visit your site directly.

Pro tip: Write speakable content in natural, conversational language. Avoid lists, tables, and complex formatting that does not translate well to audio. Keep answers concise — 20-30 seconds of spoken content is ideal for voice assistant responses.

22. Action Schema

Action schema describes actions that users can take directly from search results, such as calling your business, scheduling an appointment, or getting directions. When combined with other schema types, Action schema enables interactive rich results that reduce friction in the customer journey.

For home service businesses, the most valuable actions are phone calls and appointment requests. Action schema can create "Call Now" and "Book Appointment" buttons directly in search results, allowing homeowners to contact you without ever visiting your website.

Key action types:

  • ReserveAction — For appointment booking
  • OrderAction — For service requests
  • SearchAction — For site search
  • CommunicateAction — For contact forms
  • TradeAction — For quotes and estimates

Example for appointment booking:

{
  "@context": "https://schema.org",
  "@type": "HVACBusiness",
  "name": "Cool Air HVAC Services",
  "potentialAction": {
    "@type": "ReserveAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://www.coolairhvac.com/book",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform",
        "http://schema.org/MobileWebPlatform"
      ]
    },
    "result": {
      "@type": "Reservation",
      "name": "HVAC Service Appointment"
    }
  }
}

Why this matters for contractors: Every additional step between a homeowner's search and their contact with you increases the chance they will choose a competitor. Action schema removes steps by enabling direct contact from search results. For emergency services — plumbing leaks, AC failures, electrical problems — this immediacy can be the deciding factor.

Pro tip: Action schema works best when paired with a functional booking system. If you do not have online scheduling, focus on CommunicateAction with a click-to-call phone number instead. The action must actually work for users who click it.

23. ContactPoint Schema

ContactPoint schema provides detailed contact information for your business, including phone numbers, email addresses, contact forms, and hours of availability for different contact methods. It allows you to specify multiple contact methods with different purposes and availability.

For contractors, ContactPoint schema is valuable because you often have different contact methods for different needs — emergency phone lines, general inquiry forms, billing departments, and scheduling lines. ContactPoint schema makes these distinctions clear to Google and users.

Key properties:

  • @type: ContactPoint
  • contactType: Purpose (customer service, sales, emergency)
  • telephone: Phone number
  • email: Email address
  • areaServed: Geographic coverage
  • availableLanguage: Supported languages
  • hoursAvailable: When contact method is staffed

Example with multiple contact points:

{
  "@context": "https://schema.org",
  "@type": "HVACBusiness",
  "name": "Cool Air HVAC Services",
  "contactPoint": [
    {
      "@type": "ContactPoint",
      "contactType": "emergency service",
      "telephone": "(602) 555-1234",
      "availableLanguage": "English",
      "hoursAvailable": "Mo-Su 00:00-23:59"
    },
    {
      "@type": "ContactPoint",
      "contactType": "customer service",
      "telephone": "(602) 555-1235",
      "availableLanguage": "English",
      "hoursAvailable": "Mo-Fr 08:00-17:00"
    }
  ]
}

Why this matters for contractors: Clear contact information reduces customer friction and improves trust. When Google understands that you have a 24/7 emergency line separate from your regular office number, it can surface this information appropriately for emergency searches. This precision matching improves both user experience and conversion rates.

Pro tip: Include Spanish language support in your ContactPoint schema if you serve Spanish-speaking customers. The "availableLanguage" property accepts multiple values, and bilingual support is a significant competitive advantage in many markets.

24. OpeningHoursSpecification Schema

OpeningHoursSpecification schema provides structured business hours information, including regular hours, seasonal variations, and special hours for holidays. While the "openingHours" property in LocalBusiness schema handles basic hours, OpeningHoursSpecification allows for much more detailed and nuanced scheduling.

For contractors, accurate hours schema is critical because many offer emergency services outside normal business hours. Incorrect or missing hours information can lead to missed calls, frustrated customers, and negative reviews.

Key properties:

  • @type: OpeningHoursSpecification
  • dayOfWeek: Days the hours apply to
  • opens: Opening time
  • closes: Closing time
  • validFrom: When these hours take effect
  • validThrough: When these hours expire
  • isOpen: Whether location is open (for holidays)

Example with regular and holiday hours:

{
  "@context": "https://schema.org",
  "@type": "HVACBusiness",
  "name": "Cool Air HVAC Services",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "08:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday"],
      "opens": "09:00",
      "closes": "14:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "validFrom": "2025-12-25",
      "validThrough": "2025-12-25",
      "closes": "00:00",
      "opens": "00:00"
    }
  ]
}

Why this matters for contractors: Google displays business hours prominently in local search results and Maps. Inaccurate hours lead to frustrated customers calling when you are closed or not calling when you are open. For emergency service businesses, clearly marking 24/7 availability can be the difference between capturing an emergency call and losing it to a competitor.

Pro tip: Update your hours schema immediately when schedules change — daylight saving time transitions, holiday hours, or temporary adjustments. Google checks hours freshness regularly, and outdated hours create negative user experiences that can hurt your local rankings.

25. GeoCoordinates Schema

GeoCoordinates schema provides precise geographic coordinates (latitude and longitude) for your business location. While address information gives Google a general location, coordinates eliminate ambiguity and ensure your business appears in the correct geographic searches.

For service-area businesses, GeoCoordinates schema helps Google understand your physical location even if you do not display your address publicly. This is important for ranking in local searches where Google uses proximity as a ranking factor.

Key properties:

  • @type: GeoCoordinates
  • latitude: Latitude coordinate
  • longitude: Longitude coordinate

Example within LocalBusiness schema:

{
  "@context": "https://schema.org",
  "@type": "HVACBusiness",
  "name": "Cool Air HVAC Services",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street",
    "addressLocality": "Phoenix",
    "addressRegion": "AZ",
    "postalCode": "85001"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "33.4484",
    "longitude": "-112.0740"
  }
}

Why this matters for contractors: Precise coordinates ensure Google places your business in the correct geographic area for local searches. This is especially important in large metro areas where multiple cities and neighborhoods overlap. A contractor on the border of two service areas needs accurate coordinates to rank in both.

Pro tip: Use Google Maps to find your exact coordinates by right-clicking your business location and copying the lat/long values. Ensure these coordinates match your Google Business Profile location exactly. Discrepancies between your website schema and GBP location can create confusing signals that hurt local rankings.


How to Test and Validate Your Schema Markup

Implementing schema markup is only half the battle. The other half is ensuring it works correctly. Google is strict about structured data quality, and invalid schema can result in rich results not appearing — or worse, manual penalties for guideline violations.

Step 1: Use Google's Rich Results Test

Google's Rich Results Test is the primary tool for validating schema markup. Enter your page URL or paste your code directly, and the tool will identify which rich results your page is eligible for and flag any errors or warnings.

Run every page with schema markup through this tool before considering it complete. Pay attention to both errors (which prevent rich results) and warnings (which reduce rich result quality).

Step 2: Use Schema.org Validator

The Schema.org Validator provides more detailed technical validation than Google's tool. It checks your markup against the official Schema.org specifications and identifies structural issues that Google's tool might miss.

Use this validator when developing new schema implementations or troubleshooting complex markup that passes Google's test but still does not trigger rich results.

Step 3: Check Google Search Console

Google Search Console provides ongoing monitoring of your structured data performance. The Enhancements report shows which schema types Google has detected, how many valid pages exist, and any errors across your site.

Monitor this report weekly. New errors can appear when templates change, plugins update, or content is modified. Catching these issues quickly prevents lost rich result opportunities.

Step 4: Verify Rich Result Appearance

Validation tools confirm your schema is technically correct, but only live search results confirm it is working. After implementing schema, search for your target keywords and verify that rich results actually appear.

Rich results do not appear immediately — Google must crawl and process your schema first. Allow 1-2 weeks after implementation before expecting to see changes in search results.


Common Schema Markup Mistakes Contractors Make

Even with the best intentions, schema implementation often goes wrong. Here are the most common mistakes we see on contractor websites:

Using the wrong schema type. A plumbing company using generic LocalBusiness instead of PlumbingService misses an important relevance signal. Always use the most specific type available.

Incomplete required properties. Every schema type has required properties. Missing "address" in LocalBusiness schema or "name" in Organization schema causes the entire markup to be ignored.

Inconsistent NAP information. Your schema markup name, address, and phone must exactly match your Google Business Profile and other citations. Even minor differences — "St" versus "Street" — create conflicting signals.

Markup that does not match visible content. Google checks that schema data matches what users see on the page. Marking up reviews that are not displayed, or prices that differ from visible pricing, violates guidelines.

Over-optimizing with fake reviews. Creating Review or AggregateRating schema for reviews that do not exist is a direct violation of Google's guidelines and can result in manual penalties.

Ignoring updates. Schema markup is not a set-it-and-forget-it task. Business moves, phone numbers change, hours adjust, and services expand. Outdated schema is often worse than no schema at all.


Schema Markup Implementation Priority for Contractors

If you are overwhelmed by 25 schema types, here is a practical implementation priority based on SEO impact and implementation difficulty:

Week 1 — Foundation: Implement LocalBusiness, Organization, and WebPage schema on your homepage. These are the highest-impact, easiest-to-implement types.

Week 2 — Services: Add Service schema to each of your core service pages. Focus on your top 3-5 revenue-generating services first.

Week 3 — Content: Implement FAQPage schema on service pages, Article/BlogPosting schema on blog posts, and HowTo schema on instructional content.

Week 4 — Enhancement: Add AggregateRating schema if you have sufficient reviews, BreadcrumbList schema across your site, and ImageObject/VideoObject schema for media content.

Month 2 — Advanced: Implement the remaining types based on your specific business needs — Product schema if you sell equipment, JobPosting schema if you are hiring, Event schema if you host events.


Conclusion

Schema markup is no longer optional for home service businesses competing in local search. It is the difference between a plain search result and a rich, interactive result that captures attention, builds trust, and drives clicks. For contractors in competitive markets, the businesses that implement comprehensive schema markup will consistently outrank those that do not.

This checklist gives you 25 structured data types to work with, organized by priority and impact. Start with the essential types — LocalBusiness, Organization, Service, FAQPage — and build from there. Test every implementation, monitor your results, and keep your markup updated as your business evolves.

The technical barrier to schema markup has never been lower. With the code examples in this guide, you or your developer can implement these schema types in a matter of hours. The SEO returns — rich snippets, higher click-through rates, better local rankings — will continue paying dividends for years.

Get Your Schema Implemented: Free Technical SEO Audit

Not sure if your schema markup is correct or complete? Our technical SEO team will audit your website's structured data, identify missing opportunities, and provide a prioritized implementation plan. Request your free technical SEO audit today and ensure your business is maximizing every structured data opportunity available.


Related Articles

Need a Website That Actually Converts?

Book a free 30-minute strategy call. We will audit your current site and show you exactly how to turn it into a lead-generating machine.

Book Your Free Call