Schema markup is structured data added to a web page’s code that tells search engines and AI systems, in a standardized machine-readable format, what the page’s content means. Instead of leaving a crawler to infer that a string of numbers is a phone number, that a name is the author, or that a block of text is a list of questions and answers, schema markup states it explicitly: this is a LocalBusiness, this is its address, these are its opening hours, this is the Person who wrote the article, this is the price of the Service.

The vocabulary comes from Schema.org, a shared standard launched in 2011 by Google, Microsoft (Bing), and Yahoo, and later joined by Yandex. It defines hundreds of types, such as Organization, LocalBusiness, Product, Article, Event, and FAQPage, each with properties describing it. Schema markup is the most common way to implement what Google calls structured data.

Why schema markup matters

Rich results

Schema markup can make a page eligible for rich results in Google: enhanced listings that show review stars, prices and availability, event dates, recipe details, breadcrumbs, video thumbnails, and more. Rich results take more space in search results and tend to attract more clicks. Eligibility is not a guarantee; Google decides when to show them, and the markup must follow its guidelines.

Understanding and entities

Even where no visual enhancement appears, structured data helps search engines understand what a page is about and how it connects to known entities. Organization and LocalBusiness markup with sameAs links to your profiles on other platforms is one of the most direct ways to establish your business as a clearly identified entity, which is the foundation of entity SEO.

AI search

AI systems that read web pages benefit from the same clarity. Structured data gives them explicit facts, such as services, prices, locations, authors, and dates, that are easier to extract accurately than prose. Our entry on structured data for AI covers how to design markup with machine readers in mind.

Formats: JSON-LD, Microdata, and RDFa

Schema.org vocabulary can be written in three formats. JSON-LD is a block of JavaScript Object Notation placed in a script tag, separate from the visible HTML. Microdata and RDFa add attributes directly to the HTML elements that display the content.

Google recommends JSON-LD where possible, and it is the format most sites should use. It is easier to write, read, and maintain, because it does not require changing the page’s visible markup, and it can be generated from a template or a CMS field.

Common schema types for businesses

Organization or LocalBusiness (and more specific subtypes such as LegalService, Dentist, or HomeAndConstructionBusiness): name, logo, address, geo coordinates, phone, hours, area served, and sameAs links. Usually placed on the homepage or sitewide.

WebSite and WebPage: basic information about the site and each page, often generated by SEO plugins.

BreadcrumbList: the page’s position in the site hierarchy, which can appear in search results in place of the URL.

Service: what the business offers, with provider, area served, and description.

Article or BlogPosting: headline, author, publisher, and dates for editorial content.

Person: authors, founders, and experts, with job title and links to professional profiles. This supports E-E-A-T.

Product and Offer: price, currency, availability, and reviews for ecommerce.

Review and AggregateRating: ratings, which carry strict guidelines about what can be marked up.

FAQPage: question-and-answer content.

Event, VideoObject, HowTo, JobPosting, Course, and many others for specific content types.

A simple example

A basic LocalBusiness block in JSON-LD states the business type, name, website, phone, full postal address, geo coordinates, and an array of sameAs links to the business’s Google Maps listing, LinkedIn page, and directory profiles. Each property corresponds to a fact that should also appear on the visible page. The markup does not add information; it labels information that is already there.

Rules and guidelines

Mark up only what is visible. Structured data should describe content users can see on the page. Marking up reviews, prices, or FAQs that do not appear is a violation of Google’s guidelines and can lead to a manual action removing rich results.

Keep it accurate and current. Hours, prices, and availability in markup must match the page. Stale structured data can produce misleading rich results.

Follow the rules for each rich result. Google publishes specific requirements for every rich result type. Self-serving reviews of your own business, for example, are not eligible for review stars in most cases.

Keep markup and body text in sync. Our own standing rule is that FAQ and Service schema text is kept identical to the visible text, so search engines and AI systems read one consistent version.

Changes to rich results

Google adjusts which rich results it shows over time. In 2023 it significantly reduced FAQ rich results, limiting them mainly to well-known authoritative government and health sites, and removed HowTo rich results. Many sites saw their FAQ dropdowns disappear from search. FAQPage markup is still valid and still helps machines understand question-and-answer content, but it should no longer be added with the expectation of extra search listing space. The lesson generalizes: implement structured data because it accurately describes your content, not only for a particular visual feature that may change.

How to add schema markup

SEO plugins. On WordPress, plugins such as Yoast and Rank Math generate a baseline graph of Organization, WebSite, WebPage, Article, BreadcrumbList, and Person markup automatically. This is a good foundation for most sites.

Theme templates. For Service, LocalBusiness details, FAQs, and custom content types, generating JSON-LD in the theme from structured fields is more precise and easier to keep in sync with the visible content than relying on plugin settings.

Custom code. For complex sites, a dedicated function that builds a single connected graph, with consistent IDs linking the Organization, WebSite, pages, services, and people, avoids duplicate or contradictory entities from multiple sources.

Whichever method you use, avoid having several plugins and the theme each output their own Organization markup. Conflicting duplicates confuse the picture you are trying to clarify.

Common schema markup mistakes

Duplicate entities. A theme, an SEO plugin, and a reviews plugin each outputting their own Organization block, with slightly different names or logos.

Markup that contradicts the page. Old hours, retired services, or prices that no longer match what visitors see.

Marking up invisible content. FAQs, reviews, or ratings that exist only in the code.

Missing connections. Pages, services, and authors described in isolation rather than linked to the Organization with consistent IDs, which leaves search engines to guess how they relate.

Generic types. Using Organization when a more specific LocalBusiness subtype describes the business accurately.

Set and forget. Structured data written at launch and never checked again, while the site and business change around it.

Broken JSON. A missing comma or an unescaped quotation mark invalidates the whole block, silently, until someone runs a test.

Testing and monitoring

Google’s Rich Results Test checks whether a page’s markup is valid for Google’s rich result features.

The Schema Markup Validator (validator.schema.org) checks markup against the full Schema.org vocabulary, including types Google does not use for rich results.

Search Console reports structured data found across the site, with errors and warnings for each rich result type.

Re-test after theme updates, plugin changes, and migrations, which commonly break or duplicate markup.

Schema markup and technical SEO

Implementing and validating structured data across a site is a core deliverable of our technical SEO services, and we build it into every custom theme. For a step-by-step walkthrough, see our guide to implementing schema markup. If you are not sure what your site’s structured data currently says about your business, book a discovery call.