Schema markup is a shared vocabulary (from Schema.org) for describing things on a web page: this is a business with these opening hours, this is a product with this price, this is an article written by this person. Search engines, and increasingly AI assistants, use it to understand pages with less guesswork. Google also uses certain types to show rich results: star ratings, prices, breadcrumbs, event dates and more.
JSON-LD: the recommended format
JSON-LD is a block of JSON inside a <script> tag, usually in the <head>. It doesn’t change how the page looks.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Elm & Oak Ltd",
"url": "https://elmandoak.co.uk",
"logo": "https://elmandoak.co.uk/logo.png",
"sameAs": [
"https://www.linkedin.com/company/elm-and-oak",
"https://www.instagram.com/elmandoak"
]
}
</script>
You can generate valid blocks for the common types with our schema markup generator.
The most useful types
Organization
Identifies your company: name, logo, website, social profiles, contact details. Put it on the homepage (or an About page). It helps Google connect your brand’s knowledge panel and logo.
LocalBusiness
For businesses with a physical location or service area: address, phone, opening hours, geo coordinates, price range. Use the most specific subtype available (Dentist, Plumber, Restaurant, AutoRepair). Keep the details identical to your Google Business Profile.
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "FlowFix Plumbing",
"telephone": "+44 113 496 0000",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Kirkgate",
"addressLocality": "Leeds",
"postalCode": "LS1 6BY",
"addressCountry": "GB"
},
"openingHours": "Mo-Su 00:00-23:59"
}
Product
For product pages: name, image, description, brand, SKU/GTIN, and an offers object with price, currency and availability. Adding aggregateRating or review can enable star ratings, but only for genuine reviews shown on the page. Product markup supports price, availability and review snippets in search and merchant listings.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Ergonomic Office Chair",
"image": "https://example.com/img/chair.jpg",
"sku": "EC-200",
"brand": { "@type": "Brand", "name": "SitWell" },
"offers": {
"@type": "Offer",
"price": "249.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
Article
For news and blog posts: headline, images, datePublished, dateModified and author (ideally with a URL to an author page). It helps Google show the right date and understand authorship.
BreadcrumbList
Describes the page’s position in the site hierarchy (Home › Guides › SEO). Google can show the breadcrumb trail instead of a raw URL, which makes results easier to read.
FAQPage
Still a valid Schema.org type and still used to understand content, but Google no longer shows FAQ rich results. After restricting them to well-known government and health sites in August 2023, Google stopped displaying them for all sites on 7 May 2026, with the Search Console report being retired in the following months. There’s no need to remove existing FAQ markup, but don’t add it expecting extra visibility in Google.
Rich results: what to expect in 2026
Google has steadily trimmed the list of supported rich results. HowTo results were removed in 2023, and in 2025 Google phased out several niche types such as Course Info, Claim Review and Vehicle Listing. Types that remain widely supported include Product, Review snippet, Breadcrumb, Article, Event, Recipe, Video, Local business, Organization and Job posting. Always check Google Search Central’s current “Search gallery” before investing in a type.
Remember:
- Eligibility isn’t a guarantee. Google decides per query.
- Markup must reflect visible content. Marking up reviews, prices or FAQs that users can’t see breaks the guidelines and can lead to a manual action.
- Self-serving reviews (a business marking up reviews of itself on its own site with LocalBusiness or Organization) don’t get star snippets.
Connecting entities with @id
On larger sites, it helps to link your markup together rather than repeating the same organisation details on every page. Give key entities a stable @id (usually a URL with a fragment) and reference it elsewhere:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Choose an Office Chair",
"datePublished": "2026-09-30",
"author": { "@type": "Person", "name": "Sam Patel", "url": "https://example.com/authors/sam-patel" },
"publisher": { "@id": "https://example.com/#organization" }
}
Here publisher points to the Organization defined once on the homepage with "@id": "https://example.com/#organization". This builds a consistent picture of who publishes what, which matters for search engines and for AI systems that summarise web content.
Testing and validation
- Rich Results Test (Google) shows which rich results a URL or code snippet is eligible for and lists errors and warnings.
- Schema Markup Validator (validator.schema.org) checks against the whole Schema.org vocabulary, including types Google doesn’t use for rich results.
- Search Console enhancement reports show errors across the whole site after Google crawls it.
- Our SEO checker detects whether structured data is present alongside your other meta tags.
Errors must be fixed; warnings mean optional properties are missing, and adding them can improve eligibility.
Common mistakes
- Invalid JSON: a trailing comma or unescaped quote breaks the whole block.
- Prices or availability in markup that don’t match the page.
- Using
Organizationmarkup with fake or purchased reviews. - Several plugins outputting conflicting schema for the same page.
- Relative URLs for images and logos: use absolute URLs.
- Forgetting to update
dateModifiedor prices when content changes.
Checklist
- JSON-LD in the page, generated by one source (theme, plugin or custom code, not all three).
- Organization on the homepage; LocalBusiness if you serve customers locally.
- Product, Article and BreadcrumbList on the relevant templates.
- All marked-up information visible to users and kept up to date.
- Tested in the Rich Results Test, monitored in Search Console.
- Titles and descriptions optimised too: see how to write title tags and meta descriptions.