advanced12 min read

Local schema markup: complete implementation guide

Implement structured data markup to help search engines understand your local business information. This advanced guide covers LocalBusiness schema, service schema, review schema, and FAQ schema with code examples.

What Is Local Schema Markup?

Schema markup (also called structured data) is code added to your website that helps search engines understand the content on your pages. For local businesses, schema markup explicitly tells Google your business name, address, phone number, hours, services, and more in a machine-readable format.

While schema markup is not a direct ranking factor, it improves how search engines interpret your business information, can trigger **rich results** in search, and reinforces the accuracy of your NAP data.

LocalBusiness Schema

The foundation of local schema is the **LocalBusiness** type (or a more specific subtype). Here is the essential structure:

```json

{

"@context": "https://schema.org",

"@type": "LocalBusiness",

"name": "Your Business Name",

"image": "https://yoursite.com/images/storefront.jpg",

"@id": "https://yoursite.com",

"url": "https://yoursite.com",

"telephone": "+15551234567",

"address": {

"@type": "PostalAddress",

"streetAddress": "123 Main Street",

"addressLocality": "Dallas",

"addressRegion": "TX",

"postalCode": "75201",

"addressCountry": "US"

},

"geo": {

"@type": "GeoCoordinates",

"latitude": 32.7767,

"longitude": -96.7970

},

"openingHoursSpecification": [

{

"@type": "OpeningHoursSpecification",

"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],

"opens": "08:00",

"closes": "18:00"

}

],

"sameAs": [

"https://facebook.com/yourbusiness",

"https://yelp.com/biz/yourbusiness"

]

}

```

Choosing the Right Business Type

Use the most specific subtype available. Common options include:

  • **Plumber**, **Electrician**, **RoofingContractor** for home services
  • **Dentist**, **Physician**, **MedicalClinic** for healthcare
  • **Restaurant**, **BarOrPub**, **CafeOrCoffeeShop** for food service
  • **LegalService**, **Attorney** for law firms
  • **RealEstateAgent** for real estate professionals

Service Schema

List your specific services using the **hasOfferCatalog** property or the **Service** type:

```json

{

"@type": "Service",

"serviceType": "Water Heater Repair",

"provider": {

"@type": "LocalBusiness",

"name": "Your Business Name"

},

"areaServed": {

"@type": "City",

"name": "Dallas"

},

"description": "Professional water heater repair services for residential and commercial properties."

}

```

Add service schema to each service page on your website for maximum specificity.

FAQ Schema

FAQ schema can earn you **rich results** in search - expanded question-and-answer sections that take up more space in search results and improve click-through rates.

```json

{

"@context": "https://schema.org",

"@type": "FAQPage",

"mainEntity": [

{

"@type": "Question",

"name": "How much does water heater repair cost?",

"acceptedAnswer": {

"@type": "Answer",

"text": "Water heater repair typically costs between $150 and $500, depending on the issue."

}

}

]

}

```

Review Schema (AggregateRating)

Display your review stars in search results with AggregateRating markup. **Important**: This must represent real reviews from your website, not reviews from third-party platforms like Google or Yelp.

```json

{

"@type": "LocalBusiness",

"name": "Your Business Name",

"aggregateRating": {

"@type": "AggregateRating",

"ratingValue": "4.8",

"reviewCount": "127"

}

}

```

Implementation Methods

JSON-LD (Recommended)

Google recommends **JSON-LD** (JavaScript Object Notation for Linked Data) as the preferred format. Add it in a `

```

Where to Place Schema

  • **Homepage**: Full LocalBusiness schema
  • **Contact page**: LocalBusiness schema with complete NAP
  • **Service pages**: Service schema + FAQ schema
  • **Location pages**: LocalBusiness schema specific to each location
  • **Blog posts**: Article schema with author and publisher info

Validating Your Schema

Always validate your schema markup before deploying:

1. **Google Rich Results Test**: Tests whether your markup is eligible for rich results

2. **Schema.org Validator**: Validates the technical correctness of your markup

3. **Google Search Console**: Monitor for schema errors and warnings after deployment

Common Schema Mistakes

  • **Marking up content not visible on the page**: Schema must reflect visible page content
  • **Using incorrect business types**: Be specific but accurate
  • **Missing required properties**: Each schema type has required fields
  • **Duplicate or conflicting schema**: Ensure consistency across pages
  • **Fabricating review data**: Only mark up real, legitimate reviews from your own website

Frequently asked questions

Schema markup is not a confirmed direct ranking factor. However, it helps search engines understand your business information more accurately, which can indirectly improve rankings. It also enables rich results like star ratings and FAQ snippets, which significantly improve click-through rates from search results.

No. Google does not allow you to use AggregateRating schema to display reviews collected on third-party platforms like Google, Yelp, or Facebook. The review data must come from reviews collected on your own website. Misusing this schema can result in a manual action penalty from Google.

Many website platforms and plugins make schema implementation accessible without coding. WordPress plugins like Yoast SEO and Rank Math include local schema options. If you use a website builder, check for built-in structured data features. For custom implementations, a developer can add JSON-LD scripts relatively quickly.

Related guides

See where your business stands

Run a free local SEO audit. Takes two minutes, no credit card needed.

Get free audit