Insight

What is schema markup, and does my business need it?

Google requires exactly two properties for a local business. The rest is choice. What structured data actually does, why half of small business sites have none, and a complete example to copy.

The short answer
  • Google lists only two required properties for local business structured data: name and address. Everything else is recommended, which makes the floor much lower than most advice implies.
  • It is not a ranking shortcut. Google "does not guarantee that features that consume structured data will show up in search results", and there is no published ranking boost for having it.
  • It is now read by more than Google. An assistant answering a question wants a fact it can state, and a LocalBusiness block is the only part of your page that is written to be quoted rather than interpreted.
  • In an audit of 1,934 live small business homepages, 51.9% carried no structured data identifying them as a local business.

Almost certainly yes, and it is one of the cheapest things you will ever do to a website. Schema markup is a block of machine readable detail in your page source, invisible to visitors, that states plainly what your business is called, where it is, and when it is open. Without it, every search engine and every AI assistant has to infer those things from your prose and hope it guessed right.

Google's own definition is drier. Structured data is "a standardized format for providing information about a page and classifying the page content". The practical version is that it is the difference between being described accurately and being guessed at.

51.9% of live small business homepages in the London Borough of Croydon carry no structured data identifying them as a local business Source: Jones Digital audit of 1,934 live homepages, 11 July to 16 August 2026

What it actually looks like

Google recommends JSON-LD: a block of JSON inside a script tag, usually in the page head. It is recommended because it sits apart from your visible HTML, so you can add it, change it or remove it without touching a single thing a visitor sees. Here is a complete, valid example for a plumber with a shopfront address.

Homepage head, or anywhere before the closing body tag
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "Ridgeway Plumbing",
  "url": "https://www.example.com/",
  "telephone": "+442079460018",
  "priceRange": "££",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "14 Ridgeway Road",
    "addressLocality": "Croydon",
    "addressRegion": "Greater London",
    "postalCode": "CR0 2BD",
    "addressCountry": "GB"
  },
  "areaServed": [
    "Croydon", "Purley", "Sutton"
  ],
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "Monday", "Tuesday", "Wednesday",
      "Thursday", "Friday"
    ],
    "opens": "08:00",
    "closes": "17:30"
  }]
}
</script>

Every value here is a placeholder, including the domain and the phone number. Validate your own version with Google's Rich Results Test before you trust it.

Nothing in there is clever. It is the same handful of details already sitting on your contact page, written out once more in a form nothing has to interpret.

The required list is much shorter than people expect

For local business structured data, Google lists exactly two required properties: name and address. Everything else is recommended. That is worth sitting with, because most of the advice online implies a long compliance checklist, and the actual floor is your name and where you are.

PropertyStatusWhat it settles
nameRequiredWhat the business is actually called
addressRequiredWhere it is, in parseable fields
telephoneRecommendedThe number to show, in full international form
urlRecommendedWhich site is the business's own
openingHoursSpecificationRecommendedWhen you are open, without reading a table
geoRecommendedThe exact point on a map
priceRangeRecommendedRoughly what bracket you sit in
aggregateRating, reviewRecommendedRatings, if they are genuinely on the page

Required and recommended properties from Google's local business structured data documentation, checked 25 September 2026. An item missing a required property is not eligible for a rich result at all. The recommended ones are what make the result worth having. Treat the last row with care: see the final section.

Pick the most specific type you honestly are

LocalBusiness is not the end of the list. Schema.org defines it as "A particular physical business or branch of an organization", makes it a subtype of both Organization and Place, and puts a long list of more specific types underneath it: ProfessionalService, Dentist, Store, FoodEstablishment, HealthAndBeautyBusiness, MedicalBusiness, FinancialService, AutomotiveBusiness, LodgingBusiness, EntertainmentBusiness and more.

Use the closest honest match. A more specific type tells a search engine more about you without your writing another word, and it costs nothing. If nothing fits, plain LocalBusiness is perfectly valid. What you should not do is pick a type because you think that category ranks well; the point of the whole exercise is that the machine can believe what it reads.

What it buys you, and what it does not

Worth being precise about all three of these, because this is where the marketing gets loose.

  • A rich result becomes possible, not promised. Google's wording is that it "does not guarantee that features that consume structured data will show up in search results". For a local business the features on offer are a knowledge panel carrying your details, and for some queries a carousel of related businesses.
  • It is not a ranking shortcut. There is no published ranking boost for having schema markup. What it does is remove ambiguity, which matters more than it sounds when something is deciding whether your page answers the question in front of it.
  • Getting it wrong deliberately costs you the rich result, not the ranking. Google's policy for spammy structured markup is a manual action that removes eligibility for rich results. It does not change how the page ranks in ordinary web results.

The reason this matters more than it did two years ago

Structured data used to be a Google optimisation. It is now the cleanest way to hand your details to anything that reads the web, including the assistants people increasingly ask instead of searching. Something answering "who does emergency plumbing in Croydon" is looking for a fact it can state with confidence. A paragraph of prose is something it has to interpret. A LocalBusiness block is something it can quote.

Nobody outside those companies can tell you exactly how much weight it carries, and anyone quoting you a percentage is guessing. What is knowable is the direction of travel: unambiguous, machine readable facts are cheap to provide and impossible to misread. I have written separately about how AI search decides which businesses to recommend, and about whether your site is even letting those crawlers in.

How to check what you already have

  • Open your homepage, view the page source, and search it for ld+json. If nothing comes back, you have none. That was 30.7% of the homepages in the audit above.
  • Paste the URL into Google's Rich Results Test. It is the Google specific tool: it tells you which Google rich results your markup could generate, and flags what is missing for each.
  • For everything else, use the Schema Markup Validator. It validates all schema.org structured data "without Google feature specific warnings", so it catches syntax and vocabulary errors the Rich Results Test stays quiet about because they are not tied to a Google feature.
  • Check the values match the visible page. Same phone number, same address, same opening hours. A block that disagrees with the page it is on is worse than no block.
  • If you are on WordPress you probably have some already, added by a plugin or the theme, and it is often describing the article or the site rather than the business. Having markup is not the same as having useful markup: another 21.1% of the homepages audited carried structured data that described no local business at all.

The one rule that gets people into trouble

Mark up what is on the page, and only what is true. Google's policies are specific about what counts as spammy structured markup: marking up content that is not visible to readers of the page, marking up irrelevant or misleading content such as fake reviews, and using structured data to impersonate a person or organisation.

In practice the trap is almost always reviews. An aggregateRating block is the most tempting property on the list, because it is the one that puts stars in a search result. If the ratings it describes are not genuinely collected and genuinely shown on the page, it is precisely the case the policy names. Real reviews, displayed, marked up honestly, are fine. Collecting them is the slow part, and there is no version of this where the markup substitutes for the work.

If you do one thing after reading this, put your name, address or service area, phone number and opening hours into a LocalBusiness block on your homepage. On most platforms it is one plugin setting or one block of code, it is an afternoon at the outside, and it moves you out of the 51.9%.

Questions

Common questions.

What is schema markup?

It is a block of machine readable detail added to a web page that states what the page and the business are, in a standard vocabulary from schema.org. Google describes structured data as "a standardized format for providing information about a page and classifying the page content". It is invisible to visitors and exists purely so that software does not have to guess.

What is the difference between schema markup, structured data and JSON-LD?

Structured data is the general idea. Schema.org is the shared vocabulary almost everyone uses, so "schema markup" has become the everyday name for it. JSON-LD is one of three formats for writing it into a page, alongside Microdata and RDFa, and it is the one Google recommends because it sits in its own script tag rather than being woven through your HTML.

Which LocalBusiness properties does Google actually require?

Two: name and address. Everything else, including telephone, opening hours, geo coordinates, price range and reviews, is listed as recommended. An item missing a required property is not eligible for a rich result, so the two required ones are non negotiable, but the checklist is far shorter than most guides suggest.

Does schema markup improve Google rankings?

There is no published ranking boost for having it. What it does is make you eligible for rich results such as a knowledge panel, and Google is explicit that even then it "does not guarantee that features that consume structured data will show up in search results". The real benefit is that nothing has to infer your name, address and hours from prose.

Can schema markup get my site penalised?

It can cost you rich results. Google issues a manual action for spammy structured markup, which covers marking up content that is not visible on the page, marking up misleading content such as fake reviews, and impersonating another business. The manual action removes eligibility for rich results; it does not change how the page ranks in ordinary web results.

Do I need schema markup if I am a sole trader with no shopfront?

Yes, and it is arguably more useful, because there is no shop sign doing the job for you. Use a service area rather than a street address, keep the name, phone number and hours accurate, and pick the most specific schema.org type that matches the trade. It is the same block of code, minus one property.

Ready for a website that pays for itself?

Fixed price, live in days, looked after after. Tell me what you do and where.

Get a quote