629-298-8241 [email protected]
Nashville’s Web Design Contact
Web Design SEO AI SEO ServicesWork & Case Studies Google Ads Meta Ads AI Automation & Integration Website Assistant Backlink Audit & Cleanup Branding & Identity Hosting & Care Service Area Leads Punch List ToolsFree SEO & AI scan AI answer check Backlink check AI SEO guides Glossary About Process 629-298-8241 [email protected] Book a strategy call

SEARCH THE SITE · ASK NORA

Type to search every page. Press Enter to ask Nora, the site assistant — she answers from what this site says and hands anything else to Michael.

Nora is the site’s assistant, not a person. She quotes no prices and makes no promises — the buttons reach one.

GUIDE / STRUCTURED DATA

Schema markup for a local business: what to add, what to leave out

By Michael Blair, founder, Nashville’s Web Design · Updated

The straight answer

Schema markup is structured data — JSON-LD in the head of a page — that states in machine-readable form what a page and a business are: the name, address, services, area, hours, the person accountable, the questions the page answers. For a local business it is the difference between an engine guessing what you are and an engine knowing, and it only counts when it matches what the page visibly says.

Key takeaways

  • Use JSON-LD, one graph per page, with stable @id values so the nodes reference each other and the same Organization is the same entity on every page.
  • A local business page carries Organization or LocalBusiness (with the right subtype), WebSite, WebPage, BreadcrumbList, Service with an OfferCatalog, FAQPage where there is a FAQ, and a Person for who is accountable.
  • Self-serving ratings, invented reviews, a category that is not you, and markup that says something the page does not are the ways to be ignored or penalized.
  • sameAs is where you connect the site to the profiles that corroborate it — only to profiles that exist.
  • Validate every page with Google’s Rich Results Test and the Schema Markup Validator, and watch Search Console’s enhancement reports.

Why it matters more now

Search engines have used structured data for a decade to produce rich results — the stars, the breadcrumbs, the FAQ dropdowns. The AI engines use it for something more basic: to work out what entity a page is about. A model reading a plumber’s home page sees prose; a model reading the same page’s JSON-LD sees a LocalBusiness named X at address Y offering services Z in area W, connected by identifiers to a Google Business Profile and a set of directory listings. The second is what gets resolved into a Knowledge Graph entity and recommended. The first is a guess.

The nodes a local business page should carry

  • Organization or LocalBusiness. One node, one @id, identical on every page. Use the most specific subtype that is honestly you — Plumber, Electrician, RoofingContractor, HVACBusiness, GeneralContractor, ProfessionalService — with name, url, logo, address or areaServed, geo, telephone, email, openingHoursSpecification, priceRange, and sameAs to your real profiles.
  • WebSite. The site as a whole, with the Organization as publisher.
  • WebPage (or AboutPage, ContactPage, CollectionPage). The page, with its name, description, breadcrumb, primary image, dates, author and a speakable specification.
  • BreadcrumbList. The path to the page, matching the visible breadcrumb.
  • Service with an OfferCatalog on service pages: what is offered, by whom, to what area and audience.
  • FAQPage wherever the page has a FAQ, with the same questions and answers that are visible.
  • Person. Who is accountable for what is published — the owner or the author — referenced from the Organization and from every WebPage. E-E-A-T is a question about accountability, and this is the answer in machine-readable form.
  • ImageObject for the logo and the page’s primary image, with the creator and license stated.

All of it in one JSON-LD graph in the head, with @id values that do not change between pages, so the Organization on the contact page is unmistakably the Organization on the roofing page.

The mistakes that get you ignored or penalized

  • Rating yourself. An AggregateRating or Review markup on your own business, sourced from your own site, is “self-serving” under Google’s guidelines and is ignored at best. Reviews live on the platforms that collected them.
  • Invented anything. A founding date you are not sure of, a rating, a price range, a number of employees. If it cannot be verified, leave it out.
  • The wrong type. Marking a service-area contractor as a Store, or a general contractor as a Plumber because it looks better for a search. The type should match the Business Profile category.
  • Markup that says what the page does not. A FAQPage with questions that are not on the page; a Service the page never mentions. Google treats it as spam.
  • Someone else’s @id. Copying a template and shipping with another company’s identifiers, or with example.com in the URLs. It happens constantly.
  • sameAs to nowhere. Links to social profiles that were never created. Only profiles that exist, and only ones that are yours.

A minimal example

A single node for a roofing contractor, shortened. A real page would carry the WebSite, WebPage, BreadcrumbList, Service and Person nodes alongside it.

{
  "@context": "https://schema.org",
  "@type": "RoofingContractor",
  "@id": "https://example-roofing.com/#organization",
  "name": "Example Roofing",
  "url": "https://example-roofing.com/",
  "email": "[email protected]",
  "areaServed": [
    { "@type": "City", "name": "Franklin", "containedInPlace": { "@type": "State", "name": "Tennessee" } },
    { "@type": "AdministrativeArea", "name": "Williamson County, Tennessee" }
  ],
  "sameAs": [ "https://www.google.com/maps?cid=…" ],
  "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"], "opens": "07:00", "closes": "18:00" } ],
  "founder": { "@type": "Person", "name": "Owner Name", "jobTitle": "Owner" }
}

Every value in it is something the page and the Business Profile also say. That is the rule.

Validate it

Google’s Rich Results Test shows what Google can read from a URL and which rich results it is eligible for. The Schema Markup Validator at validator.schema.org checks the markup against the vocabulary regardless of Google. Search Console’s enhancement reports show errors across the whole site as Google crawls it — an ImageObject without a creator, a BreadcrumbList that points at nothing, a FAQPage with an empty answer. Fix what they show; they are the only feedback you get.

The free scan reads a page’s structured data and reports which of these nodes are present and which are missing. Every site we build ships with all of them from the first version — it is the third step of the AI SEO program.

FAQ / Answers

Schema markup for a local business — questions

Should I use JSON-LD or microdata?

JSON-LD. Google recommends it, it keeps the structured data in one block in the head rather than scattered through the HTML, and it is far easier to keep consistent across pages. One graph per page with stable @id values is the pattern.

Can I add star ratings to my own site with schema?

Not for your own business. Google’s guidelines treat a rating or review markup that a business publishes about itself as self-serving, and it is ignored or worse. Ratings belong on the platforms that collected the reviews; your site can link to them.

Which LocalBusiness type should I use?

The most specific Schema.org type that honestly describes the business and matches your Google Business Profile primary category — Plumber, Electrician, RoofingContractor, HVACBusiness, GeneralContractor, HousePainter, and so on. When none fits, LocalBusiness or ProfessionalService. Never a type chosen because it looks better.

NEXT STEP

Find out what the AI engines say about you — and whether your market is still open.

Tell us your trade and your city. Before we call, we check what the engines answer and who takes the calls today — so the first call is a straight answer on whether your market still has room.

We respond immediately. Call Book a strategy call