Schema markup is the JSON-LD structured data that lives in the head of every page and tells Google, Bing, ChatGPT, Claude, Perplexity and every other crawler what the page is actually about. Done correctly it lifts ranking on commercial queries, unlocks rich-results eligibility in Google search, and gives AI engines the structured signals they use to decide whether to cite a page in an AI answer. Done badly it produces validation warnings and no benefit. This guide is the full UK 2026 playbook for getting it right on a small-business website.
What schema markup actually does
Three jobs at once. (1) Helps traditional Google rank the page accurately for the queries the page is genuinely about. (2) Unlocks rich-results eligibility — the visual SERP enhancements like review stars, FAQ accordions, recipe carousels, event listings, product price ranges, breadcrumb trails. (3) Feeds AI search engines the structured context they need to cite the page when answering related questions. The third job has become the largest in 2026 as AI search has crossed 22% of UK commercial-intent queries.
The JSON-LD format
Google supports three structured-data formats — Microdata, RDFa and JSON-LD — and recommends JSON-LD by a wide margin. Every example in this guide uses JSON-LD because it is the only format you should be writing in 2026. JSON-LD sits in a <script type="application/ld+json"> block in the head or body of the page; it does not affect the visible content; it parses cleanly; it is the format every search and AI engine reads first.
The minimum sitewide entities
Every page on a UK SMB website should emit four entities at minimum. (1) Organization — the business itself with name, URL, logo, sameAs (social profiles), contactPoint. Repeated on every page with a stable @id so all references resolve to the same entity. (2) WebSite — the website as a publication, with publisher referencing the Organization @id, inLanguage, optionally potentialAction for site search. (3) BreadcrumbList — the breadcrumb trail showing the page’s position in the site hierarchy. Required for the breadcrumb rich-result in Google. (4) For location-led businesses: LocalBusiness with the appropriate sub-type (Restaurant, Plumber, Electrician, HealthClub, etc.), postal address, geo coordinates, opening hours, area served.
Page-type-specific entities
Layered on top of the sitewide minimum, every page type adds the entities relevant to its content. Blog posts and articles add BlogPosting or Article with author as a Person entity, publisher referencing the Organization, dateModified, articleSection, wordCount, speakable specification for voice-assistant eligibility. Service pages add Service with provider referencing the Organization, areaServed, serviceType, hasOfferCatalog with Offer entries for pricing where disclosed. Product pages add Product with offers as Offer entity (or AggregateOffer for variant ranges), aggregateRating where reviews exist, priceValidUntil, availability. Pages with FAQ sections add FAQPage with mainEntity array of Question/Answer pairs.
The @id pattern
The single highest-leverage technique in schema design is the consistent use of @id values to link entities across pages. Every Organization, every Person, every Service, every Product on the site has a stable @id (typically the canonical URL of the entity’s primary page with a fragment identifier — example.com/#organization, example.com/#brand, example.com/about#editor). When another entity references it, the reference uses the same @id rather than re-declaring the full entity. This tells Google and AI engines that "the Organization at this URL is the same Organization mentioned on every other page" — entity resolution that compounds over time as the site grows. Sites that get @id consistency right ship 10-50× more nested entity references for the same total schema size and rank correspondingly higher on entity-led queries.
The AI-crawler schema fields
Every editorial entity (Article, BlogPosting, NewsArticle, case studies, guides) should emit a specific additional set of fields that AI crawlers read disproportionately. inLanguage with the page’s actual locale (en-GB, en-US, en-AU, en-CA). isAccessibleForFree: true — signals citation eligibility to AI engines. copyrightHolder, creator, publisher all referencing the Organization @id. license linking to a citation-terms page (allows AI engines to cite with attribution). speakable — SpeakableSpecification with cssSelector targeting the H1 and lead paragraph, surfaces the page to voice assistants. audience — Audience entity describing the intended reader. citation — array of CreativeWork entities for every primary source cited in the body. mentions — array of named entities (Organization, Person, Product, Place) that appear in the article. wordCount computed dynamically. The cumulative effect of getting these right is a meaningful uplift in AI-citation rate.
The Service-with-Offer pattern for SMB services
The most under-used schema pattern on UK SMB websites. Every service the business offers should emit a Service entity with the service name, description, serviceType, areaServed, provider (referencing the Organization @id), and hasOfferCatalog containing an OfferCatalog with itemListElement array of individual Offer entries. Each Offer carries the price (where disclosed), priceCurrency, availability, and url linking to the relevant service page. Done correctly, this surfaces the services in rich results on commercial queries and feeds AI engines the precise pricing context they cite in price-led answers.
The LocalBusiness sub-type discipline
LocalBusiness is the parent type; the deeper schema benefit comes from using the correct sub-type. Restaurants use Restaurant; cafes use CafeOrCoffeeShop; plumbers use Plumber; electricians use Electrician; hair salons use HairSalon; medical practices use MedicalBusiness or a more specific sub-type like Dentist or Optician; financial services use FinancialService or AccountingService. Each sub-type unlocks sub-type-specific properties (cuisineType on Restaurant, servesCuisine, acceptsReservations on Restaurant; brandName on Plumber; medicalSpecialty on MedicalBusiness). Using the generic LocalBusiness when a specific sub-type applies leaves visibility on the table.
The AggregateRating attachment problem
AggregateRating is one of the highest-impact schema entities for click-through rate (it surfaces as star ratings in the SERP) and one of the most commonly misimplemented. The rule: AggregateRating must be attached to the entity being reviewed, not to a free-floating context. For a business with Google reviews, attach AggregateRating to the LocalBusiness or Organization. For a product with product reviews, attach AggregateRating to the Product. For a service with service-specific reviews, attach AggregateRating to the Service. Detached AggregateRating that does not nest into a reviewable entity is rejected by Google’s validator and earns no rich-results eligibility.
Common mistakes that fail validation
Five recurring failures we see in UK SMB schema audits. (1) Telephone fields with placeholder numbers (+44-20-0000-0000) — the schema validates but the entity is treated as untrusted. (2) SearchAction pointing at a /search route that does not actually exist — produces a soft-404 signal and damages local ranking. (3) Twitter sameAs URLs that do not match the actual handle on the site — entity inconsistency, Google de-emphasises the sameAs links. (4) Duplicate @type declarations on the same entity (Organization and LocalBusiness both declared at root without proper nesting) — produces validation warnings. (5) AggregateRating with no associated reviewable entity — produces validation errors and no rich-results eligibility.
Validation tooling
Two tools you should run every schema change against. Google’s Rich Results Test (search.google.com/test/rich-results) validates against Google’s specific rich-results requirements and tells you exactly which rich-results variants the page is eligible for. Schema.org’s validator (validator.schema.org) validates against the formal schema.org specification and is stricter than Google’s validator — useful for catching issues that Google would tolerate but other AI engines might not. Both are free; both run in under five seconds; both should be part of the deployment workflow on any site taking schema seriously.
A 90-day schema rollout for an existing SMB site
Week one: audit the existing schema using the Rich Results Test on every page template. Document what is emitted, what validates, what does not. Week two: build the sitewide minimum (Organization, WebSite, BreadcrumbList, LocalBusiness with the correct sub-type) and the @id pattern across the four entities. Weeks three to four: add page-type-specific entities — Article on blog posts, Service-with-Offer on service pages, Product on product pages, FAQPage on pages with FAQs. Weeks five to six: add the AI-crawler schema fields (isAccessibleForFree, copyrightHolder, license, speakable, audience) across editorial entities. Weeks seven to twelve: monitor Search Console for rich-results impressions, watch for validation warnings, refine the entity graph based on what is appearing in the SERP and what is being cited in AI answers.