
Right-click your own website, choose "view source", and search the code for application/ld+json. If something comes back, your site is describing itself to machines. If nothing does, it isn't, and on a small business site that is the usual result.
Schema markup for small business is the work of fixing that. It is a short, labelled description of each page, written for machines rather than people and tucked invisibly into the HTML. A visitor reads your heading and your opening paragraph. A machine reads the structured data and knows, without guessing, that this page belongs to a plumbing company in Bristol, that it covers emergency callouts, which areas it serves, and when it opens.
Our earlier note on AI search optimisation for small business made the strategic case: assistants answer questions directly rather than handing over a list of links, so being legible to them matters. This post is the layer underneath that argument. It is the part someone actually has to build.
What schema markup actually is
Schema markup is structured data. You write a small block of JSON-LD that describes what a page represents, using a shared vocabulary from Schema.org, and you place it in the page's HTML. Schema.org is not a Google project; it is a joint vocabulary backed by Google, Microsoft, Yahoo and Yandex, which is why the same markup works across search engines and, increasingly, across AI assistants.
Think of it as the label on the outside of a box. Your visitors see the box. Machines read the label. With no label, they have to infer what is inside from whatever text they can scrape, and they infer wrong more often than you would like.
Why it matters more than it used to
For a long time schema was a nice-to-have that bought you rich snippets. Mark up your reviews and you might get stars beside your listing. Pleasant, not decisive.
That calculation has changed. Google's AI Overviews and assistants like ChatGPT and Perplexity compose an answer from several sources rather than pointing at a page and stepping back. They favour facts they can extract cleanly and attribute with confidence. Well-formed LocalBusiness data hands them your name, address, phone, opening hours and service area as facts. No structured data means they fall back to guessing from your prose, which is slower, less reliable, and less likely to end with you being named.
The honest framing is not that schema gets you recommended. It is that the absence of it gives a machine a reason to pick someone else who made the job easier.
The types a small UK business actually needs
You do not need the full vocabulary. You need the handful that describe your business truthfully.
LocalBusiness is the foundation. Name, address, phone, opening hours, and the area you serve. If you have premises or cover a defined patch, this is not optional. Whatever you put here must match your Google Business Profile exactly.
Service describes what you sell. An accountant offering bookkeeping, payroll and self-assessment can give each one its own entry with a name, a description and an area served. This is the markup that helps an assistant answer "who does bookkeeping in Leeds" with your business rather than a directory.
FAQPage applies when you have a real questions section on the page. Each question and its answer gets an entry. Mark up only what a visitor can actually read. Google now shows FAQ rich results only for well-known government and health sites, so do not expect a visual change in search; the markup still tells machines exactly which questions you answer.
Review and AggregateRating carry review data, individually and in summary. They are policed hard. Google will not show star ratings for reviews a business publishes about itself, and it does not allow ratings copied in from other sites, so this markup only belongs on reviews your own site genuinely collects.
Product or Offer matter if you sell goods, or if you have fixed-price packages. Price, availability and description belong here.
BreadcrumbList describes the path to the page, such as Home, then Services, then Boiler Repair. It helps machines understand how your site is organised and can change how your listing is drawn.
Few businesses need all of these. An electrician wants LocalBusiness, Service and Review. A shop wants Product, Offer and BreadcrumbList. Pick what matches the content you genuinely have.
A note on llms.txt
You may have seen llms.txt mentioned in this context. The idea borrows from robots.txt: a plain-text file at the root of your site summarising your business and your pages in language a large language model can read without parsing HTML.
It is a sensible idea and it costs almost nothing to add. Be clear-eyed about its status, though. It is a proposed convention, not a standard. No major assistant has committed to reading it, and it may end up as widely ignored as humans.txt. Add it if you like. Do not treat it as a substitute for structured data that search engines demonstrably do read.
How to check what you have
Three checks, in ascending order of effort.
View the source. Search the page source for application/ld+json. If you find a block, read it and see whether it is complete or a stub. If you find nothing, you have no schema at all, which is the normal starting point for a template-built site.
Run Google's Rich Results Test. Paste in a URL and it reports what Google detects, whether the markup is valid, and which rich results the page qualifies for. This is the fastest way to see your site the way Google sees it.
Run the Schema.org validator. It gives a fuller breakdown, including types and properties Google's tool ignores. Use it when you want to know the markup is correct rather than merely Google-compatible.
If your site runs on WordPress with an SEO plugin, you probably have some schema already. Check it rather than assume it. A half-configured plugin is a real hazard, and it is the next thing on this list.
Where small businesses get it wrong
The failures here are consistent enough to be predictable.
Marking up what isn't on the page. If the schema claims an FAQ, there should be an FAQ a visitor can read. If it claims reviews, the reviews should be visible. Search engines compare the structured data against the rendered page, and a mismatch is the kind of thing that earns a manual action rather than a ranking.
Self-issued review markup. Writing your own testimonials into AggregateRating is the quickest route to a penalty. Review data has to come from real customers through a process you could evidence. If your reviews live on your Google Business Profile, leave them there: copying that count and score into your own markup breaks Google's review guidelines, and your profile already shows the stars where people look for them.
Plugin defaults left half-done. Yoast, Rank Math and the rest emit schema automatically, but only describe your business correctly if you completed the business profile section. Installed and forgotten, they typically publish an organisation with your domain as its name, no address and no services. That is worse than having none, because it tells machines something confidently wrong.
Name, address and phone that disagree. If your markup says "Smith & Sons Plumbing" and your Google Business Profile says "Smith Plumbing" at the same address, that reads as two businesses rather than one. Inconsistency of this kind is one of the most common reasons a local business fails to surface in local results, and one of the cheapest to put right.
This belongs in the build
Schema markup is not a marketing task, it is a build task. It belongs in the templates and the CMS configuration, decided when the pages are designed, rather than retrofitted the month someone notices the site is quiet. That is the same pattern behind most of the causes in our piece on why your website isn't getting enquiries: work that falls between the designer, the developer and whoever does the SEO, with nobody owning the join.
Treated properly it is part of the digital architecture rather than a post-launch checklist item. The pages have to be structured to carry the right types, the CMS has to emit them correctly, and the business details have to agree across the site, the markup and the Google Business Profile.
If you already have a site, the three checks above take ten minutes and will show you what is missing or wrong. If you would rather someone else looked, get in touch. If you are building from scratch, make structured data part of the brief from the first commit, because it is far cheaper there than anywhere else.
Structured data is invisible when it works and expensive when it doesn't. Get it right and every search engine and assistant that matters can read your business accurately. Get it wrong and you are asking them to guess. They will guess, and not always in your favour.

