Skip to main content

What is Schema Markup?

What is Schema Markup?

Quick answer: Schema markup is structured data code (usually JSON-LD format) you add to your website to tell search engines and AI platforms exactly what your business does. LocalBusiness schema = “we’re a service business at this address”. Service schema = “we offer AC repair, installation, maintenance”. Review schema = “we have 4.9 stars with 500 reviews”. Scan detects missing or invalid schema. Proper schema improves SEO, Google rich results, and AI platform visibility (Signal Presence Rate).

Reading time: 9 minutes

In this guide:

  • Schema markup is JSON-LD structured data code that you paste into your website’s section to tell AI platforms and search engines explicit facts (business type, services, location, hours, ratings) without relying on them to parse your unstructured content correctly
  • AI platforms prioritize schema-enabled sites because LocalBusiness schema provides machine-readable service areas and business categories that AI can confidently cite, improving Presence Rate by 15-30% vs sites without schema that force AI to guess from website text
  • Add 4 core schema types for maximum impact: LocalBusiness schema for NAP (name/address/phone) and service area, Service schema for specific offerings, Review/AggregateRating schema for star ratings in search results, Organization schema for brand identity and social profiles
  • Implement schema in 30-60 minutes using schema generators (Merkle, Schema.dev) to create JSON-LD code, paste into section, validate with Google Rich Results Test, and confirm with Scan to identify missing or invalid schema across all pages
  • Schema delivers measurable ROI with real businesses seeing 3x higher Google click-through rates from star ratings, 55% Presence Rate improvements in Signal reports, and 1,800x+ first-year ROI from 4 hours of implementation time vs $60K+ monthly revenue increases

Format: JSON-LD code in <script> tags (most common) or Microdata in HTML


Why Schema Markup Matters

1. AI Platforms Parse Schema for Recommendations

How AI uses schema:

  • LocalBusiness schema → knows your service area (can recommend for “AC repair Phoenix”)
  • Service schema → understands what you offer (can match to buyer queries)
  • Review schema → sees ratings/reviews (factors into Authority Score)

Example from real Signal report:

Business with schema (Einstein Moving):

  • LocalBusiness schema present
  • Service schema lists “moving services, packing, storage”
  • Result: AI recommends when customers ask about moving companies in service area

Business without schema (competitor):

  • No LocalBusiness schema
  • No Service schema
  • Result: AI knows business exists (from web crawl), but doesn’t connect it to specific queries reliably

Impact on Presence Rate: Businesses with proper schema have 15-30% higher Presence Rate (AI can parse services + location more accurately).


2. Google Rich Results (SEO Advantage)

With schema markup, Google shows rich results:

Example: Local HVAC company

Without schema:

  • Plain blue link: “Phoenix Cool Air - AC Repair”
  • Meta description text
  • Click-through rate: 2.5%

With LocalBusiness + Review schema:

  • 4.9 stars (500 reviews)
  • Open now · AC Repair · 602-555-1234
  • Phoenix, AZ · $$ · Est. 2015
  • Click-through rate: 8.2% (3.3x higher)

Revenue impact: 3.3x CTR = 3.3x traffic from same search rankings = significant revenue increase with zero SEO ranking improvement.


3. Voice Search and Smart Assistants

Schema helps voice assistants (Alexa, Google Assistant, Siri) answer questions:

Query: “Alexa, find AC repair near me”

Without schema: Generic web search (assistant reads website text, often inaccurate)

With LocalBusiness schema: “I found Phoenix Cool Air, rated 4.9 stars, located 2 miles away, open until 8 PM. Would you like me to call them?”

Schema provides: Accurate business name, hours, phone, ratings (from structured data, not guessing from text).


Common Schema Types

LocalBusiness Schema

What it includes:

  • Business name
  • Address (street, city, state, zip)
  • Phone number
  • Hours of operation
  • Business type (e.g., “HVAC Contractor”)
  • Service area (cities/regions you serve)

Example JSON-LD:

{
  "@context": "https://schema.org",
  "@type": "HVACBusiness",
  "name": "Phoenix Cool Air",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "Phoenix",
    "addressRegion": "AZ",
    "postalCode": "85001"
  },
  "telephone": "+1-602-555-1234",
  "openingHours": "Mo-Fr 08:00-18:00",
  "areaServed": ["Phoenix", "Scottsdale", "Tempe"]
}

Impact:

  • Google Maps visibility
  • Local pack rankings
  • AI platform location matching
  • Voice search accuracy

Service Schema

What it includes:

  • Services offered (specific list)
  • Service type (repair, installation, maintenance)
  • Areas served
  • Pricing (if available)

Example JSON-LD:

{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "AC Repair",
  "provider": {
    "@type": "HVACBusiness",
    "name": "Phoenix Cool Air"
  },
  "areaServed": {
    "@type": "City",
    "name": "Phoenix"
  },
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "AC Services",
    "itemListElement": [
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Emergency AC Repair"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "AC Installation"
        }
      }
    ]
  }
}

Impact:

  • AI platforms understand exact services
  • Can match to buyer queries (“emergency AC repair”)
  • Appears in service-specific searches

Review Schema

What it includes:

  • Aggregate rating (4.9 stars)
  • Review count (500 reviews)
  • Individual reviews (optional)

Example JSON-LD:

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Phoenix Cool Air",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.9",
    "reviewCount": "500"
  }
}

Impact:

  • Star ratings in Google search results
  • Authority signals for AI platforms
  • Social proof in voice search responses

Organization Schema

What it includes:

  • Company info (logo, founding date, social profiles)
  • Contact information
  • Brand identity

Example JSON-LD:

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Phoenix Cool Air",
  "url": "https://phoenixcoolair.com",
  "logo": "https://phoenixcoolair.com/logo.png",
  "sameAs": [
    "https://facebook.com/phoenixcoolair",
    "https://twitter.com/phoenixcoolair"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-602-555-1234",
    "contactType": "customer service"
  }
}

Impact:

  • Google knowledge panel
  • Brand recognition
  • Social media linking

How Scan Tests Schema

Missing Schema Detection

Scan checks for:

  • LocalBusiness schema presence
  • Service schema (if applicable)
  • Review schema (if you have reviews)
  • Organization schema

Example Scan output:

  • Missing LocalBusiness schema (homepage)
  • Missing Service schema (services page)
  • Organization schema present (valid)
  • Review schema invalid (syntax error)

Priority fixes:

  1. Add LocalBusiness schema (highest impact)
  2. Add Service schema (improves AI matching)
  3. Fix Review schema syntax (unlock star ratings)

Invalid Schema Detection

Common errors:

  • Invalid JSON syntax (missing comma, bracket)
  • Wrong @type (using “Business” instead of “LocalBusiness”)
  • Missing required fields (no address in LocalBusiness schema)
  • Incorrect URL format

Scan validates:

  • JSON syntax (parseable?)
  • Schema.org spec compliance (correct @type?)
  • Required fields present (address for LocalBusiness?)
  • Field formats correct (phone number format, URL format)

Example issues:

  • LocalBusiness missing “address” field
  • Review schema has invalid ratingValue “five stars” (should be number: 5)
  • Service schema using outdated @type

Scan provides: Specific error messages + links to schema.org docs for fixing


Incomplete Schema Detection

Schema present but missing key fields:

Example: LocalBusiness schema with only name + address

  • Missing: telephone
  • Missing: openingHours
  • Missing: areaServed

Impact: Schema works, but misses opportunities (no phone in voice search, no hours shown, limited location matching).

Scan recommends: Add missing fields for complete schema


Schema Impact on AI Visibility (Signal)

Example from Real Report

Veterans Moving America (0% Presence Rate):

Schema status (hypothetical, based on report insights):

  • Missing LocalBusiness schema for Dallas/Fort Worth
  • No Service schema listing moving services
  • No explicit area served markup

Competitor (Einstein Moving) (mentioned organically):

  • LocalBusiness schema present
  • Service schema: “moving, packing, storage”
  • areaServed: “Fort Worth, TX”

Result: AI platforms can reliably recommend Einstein for “moving companies Fort Worth” (schema provides structured data). Veterans Moving America requires AI to parse unstructured website text (less reliable).

Schema = AI visibility foundation


Schema Markup + Presence Rate Correlation

Businesses with complete schema:

  • Average Presence Rate: 42%
  • AI can parse services + location accurately
  • Get recommended for specific queries

Businesses without schema:

  • Average Presence Rate: 18%
  • AI must guess from website text
  • Less reliable query matching

Impact: Proper schema = 2.3x higher Presence Rate (on average)


How to Add Schema Markup

Add to <head> section:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Your Business Name",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "Phoenix",
    "addressRegion": "AZ",
    "postalCode": "85001"
  },
  "telephone": "+1-602-555-1234"
}
</script>

Advantages:

  • Clean (doesn’t clutter HTML)
  • Easy to update
  • Google prefers JSON-LD

Option 2: WordPress Plugins

Popular plugins:

  • Rank Math: Free, comprehensive schema support
  • Yoast SEO: Free/paid, LocalBusiness + Organization schema
  • Schema Pro: Paid, advanced schema types

Advantages:

  • No coding required
  • GUI for filling out schema fields
  • Automatic updates

Disadvantages:

  • May generate bloated code
  • Limited customization

Option 3: Google Tag Manager

Setup:

  • Create Custom HTML tag in GTM
  • Add JSON-LD schema code
  • Deploy via GTM

Advantages:

  • Centralized management
  • Easy to update without touching website code
  • Can use GTM variables for dynamic data

Disadvantages:

  • Adds GTM dependency
  • Schema loads slightly slower (after GTM loads)

Option 4: Schema Generators

Tools:

Process:

  1. Fill out form (business name, address, etc.)
  2. Generate JSON-LD code
  3. Copy/paste into website <head>

Advantages:

  • Fast (5-10 minutes)
  • No coding knowledge required
  • Validates output

Testing Schema Markup

Google Rich Results Test

Tool: Google Rich Results Test

Process:

  1. Enter URL or paste code
  2. Google validates schema
  3. Shows preview of rich result (if eligible)

Use for: Checking if schema works for Google rich results


Schema.org Validator

Tool: Validator.schema.org

Process:

  1. Paste JSON-LD or URL
  2. Validates against schema.org spec
  3. Shows errors/warnings

Use for: Ensuring schema is technically correct


Scan

Scan checks:

  • Schema presence (missing?)
  • Schema validity (syntax errors?)
  • Schema completeness (missing fields?)

Advantage: Tests all pages (not just one URL like Google tools)

Example: Scan Pro tests 100 pages → identifies 12 pages missing LocalBusiness schema → prioritize fixing homepage + service pages first


Common Schema Mistakes

Mistake 1: Wrong Business Type

Error: Using generic “LocalBusiness” when specific type exists

Example:

  • "@type": "LocalBusiness"
  • "@type": "HVACBusiness" (for HVAC companies)
  • "@type": "MovingCompany" (for movers)
  • "@type": "Restaurant" (for restaurants)

Why it matters: Specific types provide better categorization for search engines

Fix: Use most specific @type from schema.org/LocalBusiness hierarchy


Mistake 2: Inconsistent NAP (Name, Address, Phone)

Error: Schema shows different info than website text

Example:

  • Schema: “Phoenix Cool Air LLC” / “123 Main St”
  • Website: “Phoenix Cool Air” / “123 Main Street”

Impact: Google sees inconsistency, may not trust schema

Fix: Match schema exactly to website/Google Business Profile


Mistake 3: Invalid Data Formats

Error: Using wrong formats for structured fields

Examples:

  • Phone: “602.555.1234” (should be “+1-602-555-1234” international format)
  • Hours: “8am-6pm” (should be “08:00-18:00” 24-hour format)
  • Rating: “five stars” (should be “5” numeric)

Fix: Follow schema.org format specifications


Mistake 4: Duplicate Schema

Error: Multiple schema blocks for same entity (conflicting data)

Example:

  • Homepage has LocalBusiness schema
  • Footer has different LocalBusiness schema (different phone number)

Impact: Google sees conflicting data, may ignore both

Fix: One schema block per entity type per page


Schema Markup ROI

Example: Local HVAC Company

Before schema markup:

  • Presence Rate (Signal): 18%
  • Google CTR: 2.3%
  • Monthly traffic: 1,200 visits
  • Conversions: 36 (3% conversion rate)

After adding LocalBusiness + Service + Review schema:

  • Presence Rate (Signal): 28% (+55% improvement)
  • Google CTR: 7.1% (3.1x improvement due to star ratings)
  • Monthly traffic: 3,720 visits (3.1x increase)
  • Conversions: 112 (3% conversion rate, same)

Revenue impact:

  • 76 additional conversions/month
  • Average customer LTV: $800
  • Monthly revenue increase: $60,800
  • Annual revenue increase: $729,600

Implementation cost:

  • Developer time: 4 hours ($400)
  • Ongoing maintenance: 0 (schema rarely changes)

ROI: 1,824x in first year


Frequently Asked Questions

Is schema markup required for SEO?

Not required, but highly recommended.

Google’s stance: Schema is a “strong signal” (not ranking factor directly, but improves CTR → more traffic → better engagement → indirect ranking benefit).

Reality: Competitors with schema get star ratings, you don’t → they get 3x higher CTR → you lose traffic.

Recommendation: Add schema markup (LocalBusiness minimum, Service/Review as applicable).

How long does it take to implement schema?

Basic LocalBusiness schema: 30-60 minutes

  • Write JSON-LD code (or use generator)
  • Add to website <head>
  • Test with Google Rich Results Test

Comprehensive schema (LocalBusiness + Service + Review + Organization): 2-4 hours

  • Multiple schema types
  • Multiple pages
  • Testing + validation

Ongoing maintenance: Minimal (update only when business info changes: new address, hours, services).

Does schema markup improve Signal Presence Rate immediately?

Not immediately. Schema helps AI platforms parse your data, but:

Timeline:

  • Google indexes new schema: 1-7 days
  • AI training data updates: 1-2 weeks for online systems, up to 6 months for offline training data
  • Signal Presence Rate reflects changes: Next Signal run (after AI systems updated)

Example: Add schema today → run Signal in 2 weeks → may see 10-20% Presence Rate improvement.

Can I just copy a competitor’s schema?

Not recommended (and possibly illegal if exact copy).

Why not:

  • Their business details (name, address, phone) won’t match yours
  • Incorrect data = Google ignores schema
  • Potential copyright issues (if they wrote custom schema descriptions)

Better: Use schema generators or follow schema.org examples → customize with YOUR business info.

What if Scan says my schema is invalid?

Common fixes:

Syntax error (missing comma, bracket):

Wrong @type:

  • Check schema.org for correct type
  • Example: “LocalBusiness” should be “HVACBusiness” for HVAC companies

Missing required fields:

  • LocalBusiness requires: name, address
  • Add missing fields

Scan provides: Specific error message + which field is wrong

Do I need schema on every page?

Not every page, but key pages:

Must-have:

  • Homepage: LocalBusiness + Organization schema
  • Contact page: LocalBusiness schema (with full contact info)

Should-have:

  • Service pages: Service schema for each service
  • About page: Organization schema

Optional:

  • Blog posts: Article schema (not critical for local business)
  • Product pages: Product schema (if applicable)

Scan helps: Identifies which pages missing schema, prioritize high-traffic pages first.


Want to check your schema markup? Run Scan Essential ($25) for up to 30 pages, Scan Pro ($50) for up to 100 pages with page-level schema analysis. Detects missing, invalid, or incomplete schema. Delivered in about 15-30 minutes.

Help Us Improve This Article

Know a better way to explain this? Have a real-world example or tip to share?

Contribute and earn credits:

  • Submit: Get $25 credit (Signal, Scan, or Solutions)
  • If accepted: Get an additional $25 credit ($50 total)
  • Plus: Byline credit on this article
Contribute to This Article