Search engines read your page the way a stranger reads a document in a language they are still learning. They can work out most of it from context, but they are guessing. Schema markup removes the guessing. It is a small block of code that says, in a fixed vocabulary both sides agree on, this is a business, this is its address, this is a product, this is its price, this is the question and this is the answer.

That matters more every year. Rich results in the search listing come from structured data. So do the knowledge panels, the review stars, the event dates and the recipe cards. And as AI assistants increasingly answer questions by summarising sources, the sites that have labelled their facts are the ones whose facts survive the summary intact.

What schema markup actually is

Schema.org is a shared vocabulary maintained jointly by the major search engines. It defines types, such as Organization, Product, Article or LocalBusiness, and properties those types can have, such as name, address, price or author. Schema markup is the act of tagging your page content with that vocabulary.

The important thing to understand is that it describes content that is already on the page. It is a label, not a claim. Marking up a price that does not appear anywhere on the page is not optimisation, it is a policy violation, and it is the single most common reason markup gets ignored.

Use JSON-LD, not microdata

There are three ways to write structured data: microdata woven into your HTML attributes, RDFa, and JSON-LD in a script block. JSON-LD is the format search engines recommend and the only one worth using on a new build. It sits in a single block in the head or body, it does not touch your markup, and it can be edited without any risk of breaking the layout.

Practically, that means one script tag of type application slash ld plus json, containing a JSON object. Because it is separate from the visible HTML, a developer can change the design without disturbing the structured data and a marketer can change the structured data without opening a template.

The schema types most businesses actually need

There are hundreds of types and you will use six. Organization identifies the company behind the site, with the name, logo, social profiles and contact points. LocalBusiness, or a more specific subtype such as Dentist or Plumber, adds the address, opening hours and service area for a business with a physical location. WebSite identifies the site itself and can declare your internal search.

On individual pages, BreadcrumbList describes where the page sits in your hierarchy and can replace the raw URL in the search result with a readable path. Article covers blog posts and guides. FAQPage marks up a genuine question and answer section. Beyond those, add Product and Offer if you sell things, Service if you sell services, Review and AggregateRating if you display real reviews, Event for dated events, and VideoObject if video is central to the page.

How to add LocalBusiness markup step by step

Start by writing down the facts exactly as they appear on your contact page: legal name, street address, city, region, postal code, country, phone number in international format, opening hours for each day, and the URL of the page. Pick the most specific type that fits your business rather than the generic LocalBusiness, because specific types support more properties.

Then place one block on the page, not several. If you have multiple locations, each location gets its own page and its own block, and each block gets a distinct identifier. Keep the name, address and phone number byte for byte identical to what you publish on your other listings, because inconsistency across sources is exactly the problem structured data is supposed to solve. That consistency work is covered in detail in our guide to local citations and NAP consistency.

FAQ markup: what it still does

FAQ rich results have been scaled back in the search listing and now appear mainly for authoritative sites, which caused a wave of advice saying FAQ markup is dead. That advice misses the point. The markup still tells a machine, unambiguously, that this string is a question and this string is the answer to it, and that pairing is precisely the unit an AI assistant needs to quote you.

Two rules keep it useful. The questions and answers have to be visible on the page, not hidden in the markup, and they have to be questions a real person would type. A section of five genuine questions at the end of a guide is worth marking up. Ten invented questions written to hold keywords are not.

Connect your entities with an @id graph

This is the step that separates competent markup from markup that actually builds an entity. Instead of shipping several unrelated blocks, publish one graph in which every object has an @id, and reference those identifiers instead of repeating the data. Your Organization gets an @id at your domain followed by hash organization. Every Article on the site then names that same identifier as its publisher.

The effect is cumulative. Rather than a hundred pages each describing a company that may or may not be the same company, you have one company described once and referenced a hundred times. That is how a search engine builds confidence that an entity exists, and entity confidence is what puts a knowledge panel on the right of the results page.

How to test and validate your markup

Use two tools and use both. The Schema Markup Validator checks whether your syntax is valid and whether the properties you used exist on the types you used. The Rich Results Test checks whether Google can actually generate a rich result from what you wrote, which is a stricter test because it enforces required properties.

After deployment, watch the enhancement reports in Search Console. They show the markup Google has found across your whole site, which pages are flagged as having errors, and which are only warnings. Warnings are recommended properties you left out and are usually worth fixing. Errors mean the markup will not be used at all.

Four mistakes that get markup ignored

Marking up content that is not visible on the page is the first and the most serious, because it is a guidelines violation rather than a mistake. Self serving review markup is the second: displaying an aggregate rating for your own business, on your own site, generated from nothing verifiable, is explicitly disallowed and can cost you all rich results on the domain.

The third is using a type that does not fit, such as marking a category listing as a Product or a service page as an Article, which produces valid code describing the wrong thing. The fourth is leaving the blocks disconnected, so that no two pages agree on what the organisation behind them is. None of these throw an error in a validator, which is why they survive so long.

What schema will and will not do

It will not raise your ranking on its own. There is no direct ranking boost for having structured data, and anyone selling one is selling a story. What it does is change how your listing appears and how quotable your content is, and both of those change behaviour. A result with breadcrumbs, a date, a rating or a price attached gets clicked more than a bare blue link in the same position.

The second effect is the one that matters most going forward. When an assistant answers a question by reading sources, structured facts survive the summary and unstructured prose gets paraphrased or dropped. Labelling your facts is how you stay the cited source instead of becoming background reading, which is the whole premise of LLM SEO.

How Social Signals Marketing implements structured data

Every page we build ships with a JSON-LD graph rather than scattered blocks: one Organization identity referenced sitewide, BreadcrumbList on every page, Article or Service on the page itself, and FAQPage wherever a genuine question and answer section exists. Validation runs before launch and the Search Console enhancement report is part of the monthly reporting rather than an afterthought.

See how it fits into a build in our website design services, read our approach to site structure and internal linking, or contact Social Signals Marketing for a structured data audit.

Frequently asked questions

Does schema markup improve Google rankings?

Not directly. Structured data is not a ranking factor on its own, and no amount of markup will lift a weak page above a strong one. What it changes is eligibility for rich results and how easily a machine can extract your facts, and both of those lift click through rate from the same position. The ranking benefit, where there is one, is indirect.

What is the difference between JSON-LD and microdata?

Microdata is written as attributes inside your visible HTML, so the markup and the content are tangled together. JSON-LD is a separate block of JSON in a script tag that describes the page from the outside. JSON-LD is the format search engines recommend, it is far easier to maintain, and it can be edited without any risk of breaking the page layout.

Do I need schema markup on every page?

Every page should carry the shared identity markup, meaning the organisation reference and a breadcrumb trail. Beyond that, add the type that matches what the page actually is: Article on a blog post, Service on a service page, Product and Offer on a product page, FAQPage only where a real question and answer section is visible. Do not add types that do not describe the page.

How do I check if my schema markup is working?

Run the page through the Schema Markup Validator to confirm the syntax and properties are valid, then through the Rich Results Test to confirm a rich result can actually be generated from it. After the page is live, the enhancement reports in Search Console show what has been found across the whole site and flag errors and warnings by page.

Can schema markup get my site penalised?

Yes, if you use it to describe things that are not on the page. Marking up prices, ratings or content that a visitor cannot see is a guidelines violation, and self serving review markup for your own business is specifically disallowed. The consequence is usually the loss of all rich results across the domain, which takes time to recover.