All articles
SEOAugust 9, 20263 min read

Schema markup, explained simply

Code that tells search engines what your page means rather than just what it says. Which types actually matter for a local business.

Search engines read your page as text. They're good at inferring meaning, but inference can be wrong.

Schema markup removes the guessing. It's structured data in the page that says explicitly: this is a business, this is its address, these are its hours, this is a review and here's the rating.

Why bother

Rich results. Star ratings under your listing, FAQ dropdowns, event details, prices. These make your result physically larger and more clickable. Schema is how you become eligible — you're not guaranteed them, but without markup you can't get them at all.

Removing ambiguity. If your address is in the footer as plain text, Google infers it's your address. With LocalBusiness schema, you've stated it.

Machine readability generally. Increasingly, systems other than traditional search read pages to answer questions. Structured data makes you legible to them.

The types worth having

LocalBusiness (or a specific subtype like Plumber, Dentist, Attorney). Name, address, phone, hours, service area, price range. If you serve customers locally, this is the one to do first.

Organization. For businesses without a physical customer-facing location. Name, logo, contact, social profiles.

Service. Describes each service you offer. Pairs naturally with individual service pages.

FAQPage. For pages with genuine question-and-answer sections. Can produce expandable questions directly in results, which takes up more space.

Article. For blog posts. Author, publish date, headline.

Review and AggregateRating. Genuine reviews only, and specifically not self-serving markup on your own site claiming your own rating. Google has rules about this and breaking them can get your rich results removed entirely.

BreadcrumbTrail. Shows the page's place in your site hierarchy in the results.

How it's implemented

JSON-LD, in a script tag. It's Google's recommended format and it sits separately from your visible content, so it doesn't affect layout.

You don't write it by hand. Most CMS platforms have plugins that generate it from data you enter. If your site is custom-built, your developer adds it once per template.

The important part isn't the syntax — it's making sure the markup matches what's actually on the page.

The rule that gets people penalised

Markup must describe visible content.

Marking up reviews that aren't on the page, prices you don't display, or an FAQ section that doesn't exist is a violation. Google actively detects mismatches and the penalty is losing rich result eligibility — sometimes site-wide.

Every temptation here is short-term. The rich result you gain by lying gets removed, and then you can't get it honestly either.

Checking it works

Google's Rich Results Test takes a URL and shows what it can read and which rich results you're eligible for. Free, instant, and worth running after any change.

Search Console also reports structured data errors across your site over time — useful for catching a template change that quietly broke your markup on two hundred pages.

Realistic expectations

Schema is not a ranking factor in the direct sense. Adding LocalBusiness markup will not move you from position eight to three.

What it does is make your existing listing more informative and more clickable, and remove uncertainty about your core facts. For a local business the LocalBusiness markup is genuinely worth the hour. Everything beyond that is worth doing where it's honest and easy, and not worth agonising over.

Want to know how your own site measures up?

Run a free audit. Our crawler checks your live pages for the technical and on-page issues covered in articles like this one, and tells you what to fix first. Takes about a minute.