AEO

Schema Markup Service for Local Business: What to Add and Check

A schema markup service for local business sites decides which structured data types are worth adding, what to fix and what to remove.

By Rehan NUpdated 6 min read
Key takeawayMost local service businesses need LocalBusiness markup (or a specific subtype like Plumber or Dentist) on the homepage or contact page, Service markup on service pages, and BreadcrumbList and Article where relevant. Every value must match what is visible on the page and your Google Business Profile. Validate with Google's Rich Results Test and the Schema Markup Validator after every change.

A schema markup service for local business sites should make it easier for search engines to confirm which business a page is about, what it offers and where. Structured data does not replace clear content. It labels what the page already shows, so machines can read the same facts without guessing.

Accuracy matters far more than coverage. Every fact in the markup has to agree with the page it sits on, with the Google Business Profile and with every other block of markup on the site, and most schema problems turn out to be places where those sources disagree.

Know What Schema Can and Cannot Do

Google's introduction to structured data describes it as a standardized format for providing information about a page and classifying its content. The same documentation says markup should describe content visible to users, and that valid markup makes a page eligible for features without guaranteeing them.

Think of it as a label on a box. The label helps someone sort the box quickly, but it cannot change what is inside, and a wrong label causes more trouble than no label at all.

For a plumber, roofer or dental practice, the realistic benefits are confirming core business facts in a consistent format, tying service pages to the business that provides them, and making breadcrumbs and articles explicit. Schema will not fix a thin service page, and it will not move map rankings on its own. Your profile, reviews and pages carry far more weight there.

The same applies to AI tools. Clean markup is one small input among many, and consistent business details across your site and listings matter more; that wider picture is the subject of LLM visibility for local businesses. Treat schema as the last layer of a clear page, added once the visible content is right.

Choose a Small Set of Schema Types

Most service sites need only a handful of types. More markup is not better markup.

TypeWhere it goesNotes
LocalBusiness or a subtypeHomepage or contact page, onceUse the most specific fitting subtype, such as Plumber, HVACBusiness, RoofingContractor, Electrician or Dentist
ServiceEach service pageNames the service and points to the business as provider
BreadcrumbListPages below the homepageMatches the visible breadcrumb trail
ArticleGuides and blog postsHeadline, author and dates that match the page
FAQPageOnly pages with visible questions and answersRich results now limited to a small set of sites

Choosing the subtype is worth a minute of thought. A company that does heating, cooling and plumbing might fit HVACBusiness or Plumber; pick the one that matches the primary category on your Google Business Profile, so the two sources agree. If no subtype fits well, such as for a landscaping or flooring company, the parent HomeAndConstructionBusiness or plain LocalBusiness is better than a wrong guess.

The full vocabulary is on schema.org, but Google uses only part of it, so start from Google's documentation rather than the full type list.

Get the LocalBusiness Fields Right

The LocalBusiness block carries the facts most likely to conflict with your profile. Check them first.

Review:

  • name: the real business name, with no added keywords.
  • address: street, city, region, postal code and country.
  • telephone: the main number shown on the site.
  • url: the canonical homepage.
  • openingHoursSpecification: the same hours as your profile.
  • areaServed: the cities or regions you actually cover.
  • geo: coordinates, if the address is public.
  • sameAs: your official social and directory profiles.
  • image and logo: real photos and your logo file.

Service-area businesses that hide their address on the profile should think carefully before publishing a street address in markup, and can rely on areaServed instead. Be careful with aggregateRating too: Google does not show review stars for reviews a business collects and marks up about itself on its own site, so keep those reviews visible for people and leave them out of the markup.

Connect Service Pages to One Business

A Service block on a "Drain Cleaning" page usually needs only a few properties: the service name as shown in the H1, a description that matches the intro, serviceType, areaServed, and a provider that points to the LocalBusiness entity by its ID.

Described in plain terms, the Service block for a hypothetical pest control company's termite page would say: the service is "Termite Treatment", the type is pest control, it is offered in the listed counties, and it is provided by the business entity defined on the homepage. Nothing more is needed for most pages.

That provider reference is the useful part. Without it, some plugins create a new, slightly different business on every service page, each with its own name or phone format. Leave prices out of markup unless the same prices are on the page and kept current.

Match Every Value to the Visible Page

Almost every serious schema problem breaks the same rule: the markup says something the page does not. A roofing company's theme outputs "ProfessionalService" because nobody changed the default. Opening hours in the markup differ from the footer. FAQ markup lists questions that appear nowhere on the page.

Before adding anything, decide where the single source of truth lives for each fact, usually the Google Business Profile and contact page, then make the markup match it. Google's local business structured data documentation lists the required and recommended properties to check against.

Review What a Schema Markup Service for Local Business Should Deliver

The work should follow a sequence you can check, not just a pasted block of JSON-LD:

  1. Crawl the site and list every structured data block, including theme and plugin output.
  2. Compare each value against the page and the profile.
  3. Remove duplicate and conflicting business entities.
  4. Recommend LocalBusiness, Service, BreadcrumbList and Article markup with exact values.
  5. Implement in templates so new pages inherit it.
  6. Validate representative pages.
  7. Recheck after launch and after theme or plugin updates.

The recommendations should arrive as a table of fields and values for each page type, not just finished code. That makes review easy for someone who does not read JSON-LD: the owner can scan the hours, phone and service areas and spot an error in a minute. Ask for the field values in writing before anything is implemented, so you can confirm each fact yourself.

Watch for Plugin Conflicts and Copied Markup

WordPress sites often run two or three SEO plugins that each print their own business markup, sometimes with different phone numbers. Another is a service-area page marked up as a separate business location, when the business has only one office.

Other problems include:

  • Keywords added to the name field.
  • JSON-LD copied from another site with old details left in.
  • Markup that was never checked after a redesign.

To find these, view the page source and search for "application/ld+json", or paste the URL into the Schema Markup Validator and count how many business entities it reports. More than one LocalBusiness on a single-location site is almost always a mistake. Pick one tool to own structured data and switch off schema output everywhere else.

Validate, Then Recheck After Every Update

Run representative pages through Google's Rich Results Test and the Schema Markup Validator, then watch the enhancement reports in Search Console. Validation catches syntax errors. It does not catch a wrong phone number, so compare values by hand too.

Recheck whenever something upstream changes: new hours, a new phone number, a move, a rebrand, a theme switch or a plugin update. Those are the moments when markup quietly falls out of step with the page. Correct markup removes ambiguity; it does not promise rich results, rankings or AI citations. Judge the work by whether errors are gone and every fact matches across site, markup and profile.

Review Markup Before a Migration and After a Plugin Change

The riskiest moments for structured data are a redesign or migration, a change of SEO plugin, and the slow drift that sets in when nobody has looked at the markup in a year. Schema review is part of my SEO/AEO site audits, and WordPress sites often need it cleaned up during WordPress optimization. If you want me to look at yours, send the URL.

Frequently asked questions

What schema markup does a local business need?

Most need LocalBusiness markup, or a subtype such as Plumber, HVACBusiness or Dentist, placed once on the homepage or contact page. Add Service markup on service pages, BreadcrumbList on inner pages and Article on guides. FAQPage markup only belongs where the questions and answers are visible.

Does schema markup improve local rankings?

Not in any way Google has promised. Structured data helps search engines read business facts reliably, while map visibility depends far more on your Google Business Profile, relevance, distance, reviews and page quality. Think of schema as a clarity fix rather than a ranking lever.

Can I add review stars with schema on my own website?

Google does not show review stars for reviews a business collects and marks up about itself on its own site. Show genuine reviews on the page for visitors and keep earning reviews on your Google Business Profile. Self-serving review markup will not produce stars and can conflict with Google's guidelines.

How do I check if my schema is working?

Run pages through Google's Rich Results Test and the Schema Markup Validator, then check the enhancement reports in Search Console. Also compare each value with what the page and your profile show, because mismatches are the most common problem.

Should service-area businesses include an address in schema?

If you hide your address on Google Business Profile, keep the markup consistent with that choice. Use areaServed to describe the cities or regions you cover without publishing a street address. Whatever you choose, the markup and the profile should say the same thing.

About the author

Rehan N runs Callworthy, a freelance SEO and AEO practice for service businesses. He plans and builds lead-generation websites, service pages and local search setups, then checks what changes in calls and inquiries after the work goes live.

Connect on LinkedIn

Tell me what you want your website to generate.

Share the business, the site and the goal. I'll review the fit and reply with the most practical next step.

Contact Free website review