Local Schema Skill — Structured Data for Local Rankings and AI Visibility

Most local business websites have no schema markup at all. The ones that do usually have a basic LocalBusiness implementation missing the properties that actually matter — GeoCoordinates for precise location, sameAs for entity linking, areaServed for service area definition. These missing properties are exactly what AI platforms and Google’s knowledge systems use to identify, classify, and recommend local businesses.

The local-schema skill equips Claude to generate complete, validated Schema.org structured data that goes beyond the minimum — covering LocalBusiness subtypes, FAQPage markup for zero-click capture, and the entity-linking properties that feed AI visibility.

What This Skill Does

The local-schema skill enables Claude to generate complete LocalBusiness schema for any business type and location, audit existing schema for errors and missing high-value properties, create FAQPage schema for zero-click and AI Overview capture, build schema markup strategies for multi-location sites with location-specific implementations, validate schema against Google’s Rich Results Test requirements, and connect schema markup to AI platform entity understanding.

Prompt: "Generate complete LocalBusiness JSON-LD schema for Valley Plumbing,
a plumber at 4521 E McDowell Rd, Phoenix, AZ 85008. Include all properties
that affect local rankings and AI visibility."

Skills fired: dispatch → local-schema

Output:
{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "Valley Plumbing",
  "description": "Full-service plumbing contractor serving Phoenix and surrounding areas. Emergency plumbing, water heater installation, drain cleaning, and repiping services.",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "4521 E McDowell Rd",
    "addressLocality": "Phoenix",
    "addressRegion": "AZ",
    "postalCode": "85008",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "33.4656",
    "longitude": "-111.9850"
  },
  "telephone": "+1-602-555-0123",
  "url": "https://valleyplumbing.com",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "07:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "08:00",
      "closes": "14:00"
    }
  ],
  "areaServed": [
    {"@type": "City", "name": "Phoenix"},
    {"@type": "City", "name": "Scottsdale"},
    {"@type": "City", "name": "Tempe"}
  ],
  "priceRange": "$$",
  "sameAs": [
    "https://www.google.com/maps?cid=123456789",
    "https://www.yelp.com/biz/valley-plumbing-phoenix",
    "https://www.facebook.com/valleyplumbingaz"
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "247"
  },
  "hasMap": "https://www.google.com/maps?cid=123456789"
}

VALIDATION CHECKLIST:
✓ Using specific subtype (Plumber) not generic LocalBusiness
✓ GeoCoordinates included with precise lat/long
✓ sameAs links to authoritative profiles
✓ areaServed defines service coverage
✓ aggregateRating displays star ratings in organic results
✓ openingHoursSpecification fully structured

LocalBusiness Schema: The Complete Implementation

The LocalBusiness schema type has three tiers of properties: required, recommended, and high-value optional. Most implementations stop at required, missing the properties that differentiate complete schema from minimal compliance.

Required properties make schema technically valid:

  • name: The business name
  • address: Full PostalAddress with street, city, region, postal code

Recommended properties add functional completeness:

  • telephone: Primary business phone
  • url: Website homepage
  • openingHours or openingHoursSpecification: Business hours

High-value optional properties — the ones most implementations miss — drive ranking and AI visibility:

  • @type subtype: Use the most specific type (Plumber, Dentist, Attorney, not generic LocalBusiness)
  • geo: GeoCoordinates with precise latitude and longitude
  • areaServed: Geographic coverage for service-area businesses
  • sameAs: URLs to authoritative profiles (GBP, Yelp, Facebook, LinkedIn)
  • aggregateRating: Star ratings that display in organic results
  • priceRange: Price tier indicator
  • hasMap: Direct Google Maps link
  • image: Business photos
  • department: For businesses with multiple service lines

The skill generates complete implementations including every high-value property, not just the minimum required for validation.

The High-Value Properties Most Businesses Miss

Three property groups have outsized impact on local visibility and are absent from most implementations:

GeoCoordinates: The geo property with precise latitude and longitude tells Google and AI systems exactly where the business is located. This isn’t redundant with the address — it’s a machine-readable location signal. When an AI platform needs to identify businesses within a specific radius, GeoCoordinates provide the precise data.

"geo": {
  "@type": "GeoCoordinates",
  "latitude": "33.4656",
  "longitude": "-111.9850"
}

sameAs for entity linking: The sameAs property links your schema to your profiles on other platforms — your GBP, Yelp, Facebook, LinkedIn, industry directories. This is the schema-level equivalent of citation building. It tells AI systems: “This business entity has these verified presences across these platforms.”

"sameAs": [
  "https://www.google.com/maps?cid=123456789",
  "https://www.yelp.com/biz/valley-plumbing-phoenix",
  "https://www.facebook.com/valleyplumbingaz",
  "https://www.linkedin.com/company/valley-plumbing"
]

areaServed for service-area clarity: For businesses that travel to customers, areaServed defines the service area explicitly. This is particularly important for service-area businesses that hide their address in GBP — schema provides the geographic signal their hidden address can’t.

"areaServed": [
  {"@type": "City", "name": "Phoenix"},
  {"@type": "City", "name": "Scottsdale"},
  {"@type": "City", "name": "Tempe"},
  {"@type": "City", "name": "Mesa"}
]

Schema for AI Visibility and Entity Clarity

Structured data is one of the clearest signals AI platforms use to identify and describe local businesses. When ChatGPT (via Bing), Gemini, or Google AI Overviews retrieves information about a business, structured data tells the system exactly what the business is, where it is, what it does, and what its identifiers are.

The entity clarity question for AI platforms: “Is this a real business that I can confidently recommend?” Schema provides the answer through multiple properties:

Business type: Using the specific @type (Plumber vs. LocalBusiness) tells AI systems exactly what category this business belongs to. Google supports dozens of LocalBusiness subtypes: Dentist, LegalService, Restaurant, AutoRepair, HealthClub, RealEstateAgent, and more.

Location precision: GeoCoordinates give exact positioning. AI systems can say “this plumber is 2.3 miles from your location” rather than approximating from an address.

Cross-platform verification: sameAs links to authoritative profiles provide triangulation. If schema links to a verified GBP, a Yelp page with reviews, and an active Facebook presence, the entity is clearly established.

Service coverage: areaServed tells AI systems where this business operates, enabling accurate recommendations for location-based queries.

The skill builds schema implementations that maximize entity clarity for AI platforms, not just technical compliance for Google’s Rich Results.

FAQPage Schema for Zero-Click Capture

FAQPage markup on FAQ content creates eligibility for People Also Ask boxes in traditional search and can influence AI Overview source selection. When your FAQ content has proper schema, Google can extract and display it directly in search results.

Prompt: "Generate FAQPage schema for these 3 questions about plumbing services:
1. How much does a plumber charge per hour in Phoenix?
2. What should I do if my water heater is leaking?
3. How often should drains be professionally cleaned?"

Skills fired: dispatch → local-schema

Output:
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How much does a plumber charge per hour in Phoenix?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Phoenix plumbers typically charge $75-150 per hour for standard service calls. Emergency and after-hours rates run $150-250 per hour. Most plumbers also charge a service call fee of $50-100 in addition to hourly rates."
      }
    },
    {
      "@type": "Question",
      "name": "What should I do if my water heater is leaking?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Turn off the water supply valve at the top of the water heater immediately. If it's a gas water heater, turn the gas valve to pilot. If electric, turn off the breaker. Place towels or a bucket under the leak and call a plumber for same-day service."
      }
    },
    {
      "@type": "Question",
      "name": "How often should drains be professionally cleaned?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Most homes benefit from professional drain cleaning every 18-24 months. Homes with older plumbing, large families, or frequent clogs should consider annual cleaning. Commercial properties typically need quarterly service."
      }
    }
  ]
}

FAQPage schema should appear on pages with actual FAQ content — the markup references content that exists on the page. The combination of FAQ content targeting question-format keywords plus proper schema creates maximum opportunity for zero-click display.

Multi-Location Schema Architecture

Multi-location businesses need individual schema blocks for each location page. One schema block per location, each with its own address, GeoCoordinates, and location-specific properties.

Structure: Each location page contains a complete LocalBusiness JSON-LD block with that location’s specific information. The homepage can contain an Organization schema that references locations, but each location page needs its own LocalBusiness implementation.

URL property: Each schema block references its own canonical URL with the url property pointing to that specific location page.

Department structure: For businesses where locations have different specialties or service lines, the department property can define sub-entities within each location.

{
  "@type": "Dentist",
  "name": "Bright Smile Dental - Scottsdale",
  "url": "https://brightsmile.com/scottsdale",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "7500 E McCormick Pkwy",
    "addressLocality": "Scottsdale",
    "addressRegion": "AZ",
    "postalCode": "85258"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "33.5509",
    "longitude": "-111.9280"
  },
  "parentOrganization": {
    "@type": "Organization",
    "name": "Bright Smile Dental",
    "url": "https://brightsmile.com"
  }
}

The skill generates location-specific schema for each location page while maintaining consistency with the parent organization structure.

Validating Your Schema

Schema must be validated before deployment. Errors in structured data can prevent rich results and may confuse AI systems attempting to extract entity information.

Google Rich Results Test: The primary validation tool. Tests whether your schema is eligible for rich results and surfaces any errors or warnings. Available at search.google.com/test/rich-results.

Schema Markup Validator: Validates against Schema.org vocabulary. Catches syntax errors and property misuse. Available at validator.schema.org.

Common errors the skill catches:

  • Missing required properties (name, address)
  • Invalid property values (wrong data types)
  • Incorrect nesting (properties in wrong contexts)
  • Missing @context declaration
  • Generic @type when specific subtype exists

Common warnings:

  • Recommended properties not present
  • aggregateRating without sufficient review count
  • openingHours in simple format rather than openingHoursSpecification

The skill generates schema that passes validation and includes all recommended properties to eliminate warnings.

Get Started

For complete LocalBusiness schema generation:

Generate complete LocalBusiness JSON-LD schema for [Business Name],
a [business type] at [full address]. Include GeoCoordinates, sameAs links
to [list profiles], areaServed for [service cities], and aggregateRating
with [rating] from [review count] reviews.

For FAQ schema:

Generate FAQPage schema for these questions and answers about [topic]:
[List questions and brief answers]

Claude returns validated JSON-LD ready to paste into your page’s <head> section, with complete high-value properties that improve entity clarity for Google’s Knowledge Graph and AI platforms.

Learn More

To learn what this skill can do for your local SEO workflow, see the skill overview.