Structured data guide

What is schema markup? The complete guide for WordPress

By Anis Harbaoui, SEO specialist

Schema markup is structured data, written with the Schema.org vocabulary, that tells search engines what a page is about: which entity it describes, who published it and how it connects to other entities. On WordPress it is output as JSON-LD by an SEO plugin. This guide covers how it works, which types still matter in 2026, how to build it as one connected graph, and how to measure the result.

schema markup: outline of the sections covered on this page, Schema markup, Rich results, Schema types, Structured data
Schema markup at a glance: the main sections of this page.
Key takeaways
  • Schema markup does not directly improve rankings; it makes pages eligible for rich results and removes ambiguity about entities.
  • Use JSON-LD from a single source. Two plugins printing schema create conflicting entities.
  • Connect every node with a stable @id and link your brand to official profiles and Wikidata with sameAs.
  • Markup must match what users see on the page, or Google ignores it.
  • Several rich results were retired in 2023 and 2025; check the current gallery before promising one.

What is schema markup?

Schema markup is a machine-readable description of a page built from the types and properties defined at Schema.org, a vocabulary founded in 2011 by Google, Microsoft, Yahoo and Yandex. HTML tells a browser how to display text; schema markup tells a search engine what that text means: that “NexalSEO” is a SoftwareApplication, that it is published by an Organization, and that this page is a guide written by a Person.

A minimal example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example",
  "url": "https://example.com/",
  "logo": "https://example.com/logo.png"
}
</script>

Schema.org vs JSON-LD vs microdata

TermWhat it isRole on WordPress
Schema.orgThe vocabulary of types and propertiesDefines what you can say
JSON-LDA JSON format placed in a script tagGoogle’s recommended format, output by your SEO plugin
Microdata / RDFaAttributes inside HTML elementsLegacy; breaks when the theme changes

Why does schema markup matter?

Structured data does two jobs. The visible one is rich-result eligibility: prices, review stars, breadcrumbs and software ratings displayed in search results. The durable one is entity understanding: helping Google reconcile your brand, authors and products with nodes in its Knowledge Graph. Rich-result features come and go; entity understanding never stops mattering.

  • Disambiguation: sameAs links tell Google which “Nexal” you are.
  • Rich results: Product, Review snippet, Breadcrumb, Software App, Organization logo, Article and Video features still depend on valid markup.
  • Consistency at scale: a plugin outputs the same correct structure on every URL.

Which rich results still exist in 2026?

Before adding a type for its visual result, check that the result still exists. Google restricted or retired several features recently:

FeatureStatusWhat to do
FAQRestricted to authoritative government and health sites since August 2023Keep only if the page is a genuine FAQ; expect no visual result
HowToNo longer shown since 2023Markup is valid but produces nothing visible
Course info, Claim Review, Estimated salary, Learning video, Special announcement, Vehicle listing, Book actionsAnnounced for phase-out in 2025Do not invest in new implementations
Product, Review snippet, Merchant listings, Breadcrumb, Organization, Article, Video, Software App, Local business, Event, RecipeActiveImplement fully and validate

Which schema types should your site use?

Site typeCore typesKey properties
Every siteOrganization or Person, WebSite, WebPage, BreadcrumbListname, url, logo, sameAs
Blog or mediaBlogPosting, Article or NewsArticle, Personheadline, author, datePublished, image
WooCommerce storeProduct, Offer, AggregateRating, Brandprice, availability, gtin, brand
Plugin or SaaSSoftwareApplication, Offeroffers, aggregateRating, operatingSystem
Local businessLocalBusiness subtypeaddress, telephone, openingHoursSpecification

Deeper guides: Organization schema explained, SoftwareApplication schema explained, article types and WooCommerce Product schema explained.

Structured data should be a graph

The difference between basic and advanced markup is the graph. Instead of separate blocks for Organization, Article and Breadcrumb, a connected graph gives each entity a stable @id and references it wherever it appears. Google reads one coherent set of facts instead of fragments that may contradict each other.

{
  "@context": "https://schema.org",
  "@graph": [
    { "@type": "Organization", "@id": "https://example.com/#organization",
      "name": "Example",
      "sameAs": ["https://www.linkedin.com/company/example",
                 "https://www.wikidata.org/wiki/Q_ID"] },
    { "@type": "WebSite", "@id": "https://example.com/#website",
      "publisher": { "@id": "https://example.com/#organization" } },
    { "@type": "WebPage", "@id": "https://example.com/guide/#webpage",
      "isPartOf": { "@id": "https://example.com/#website" } },
    { "@type": "Article", "@id": "https://example.com/guide/#article",
      "mainEntityOfPage": { "@id": "https://example.com/guide/#webpage" },
      "publisher": { "@id": "https://example.com/#organization" },
      "about": { "@type": "Thing", "name": "Schema.org",
                 "sameAs": "https://www.wikidata.org/wiki/Q3475322" } }
  ]
}

Three rules make it work: an @id never changes between pages; nodes reference each other by @id instead of repeating data; sameAs only points to profiles that describe the same entity. This is exactly how NexalSEO’s schema module builds every page.

How to add schema markup to WordPress

Pick one source of structured data

Use a single SEO plugin. Two generators produce duplicate entities (see duplicate schema explained).

Define your Knowledge Graph identity

Organization or Person, exact name, square logo and official profiles. In NexalSEO this is the first step of the setup wizard.

Declare your topics

Add the subjects you are an authority on as Wikidata URLs; they become knowsAbout.

Choose default content types

Article, BlogPosting or NewsArticle for posts; Product for WooCommerce; BreadcrumbList everywhere.

Fill what a plugin cannot guess

Brand, GTIN, author names and featured images must exist in WordPress first.

Validate and monitor

Test each template, then watch Search Console Enhancements reports.

Quality rules Google enforces

  1. Match visible content. Prices, ratings, dates and authors in markup must appear on the page.
  2. No hidden or invented reviews. Self-serving reviews of your own business are not eligible for review stars.
  3. Mark up the main content. Do not describe products or events that are not the subject of the page.
  4. Keep it current. Out-of-stock products marked as in stock can cost merchant features.
  5. Violations can lead to a manual action that removes rich results site-wide.

How to test and measure schema markup

Validate

  1. Run one URL per template (home, post, page, product, category) through the Rich Results Test.
  2. Run the same URLs through the Schema Markup Validator to see the full graph.
  3. View source and confirm there is exactly one Organization and one WebSite node.

Measure

In Search Console, open Performance → Search results, then filter Search appearance by rich-result type (for example Product snippets or Review snippets). Compare click-through rate for the same queries before and after deployment, over at least 28 days, and annotate the release date. A rise in CTR at stable average position is the clearest evidence that markup paid off.

Not sure why nothing shows? Use the rich results diagnosis table.

Does schema markup help with AI search?

What is established: AI Overviews are built on Google’s index and systems, ChatGPT Search and Copilot rely heavily on Bing’s index, and both search engines use structured data to understand pages. Clean, unambiguous entities therefore help the systems that AI answers depend on. What is not established: there is no public evidence that adding a given schema type directly increases AI citations. Treat structured data as a clarity layer, alongside clear answers in the visible text. Our AI Overviews guide covers the rest.

Frequently asked questions

Does schema markup improve rankings?

Not directly. It makes pages eligible for rich results and helps search engines understand entities, which can raise visibility and click-through rate.

Is JSON-LD better than microdata?

For WordPress, yes. JSON-LD is independent of the theme’s HTML, easier to maintain and the format Google recommends.

Can I use two SEO plugins for schema?

No. Each creates its own entities with different @id values. Keep one and disable schema output everywhere else.

Can I use several schema types on one page?

Yes, as long as they describe different entities on that page and are connected in one graph, for example WebPage, Article, Person and BreadcrumbList.

Why do I see no rich result after adding schema?

Eligibility is not a guarantee. Check that the feature still exists, required properties are present, the page is indexed and the markup matches the visible content.

Do I need to code schema by hand on WordPress?

No. An SEO plugin generates it; you only fill in information WordPress cannot know, such as brand or GTIN.

Related guides

Organization schema explained

Set up the identity node correctly.

Entity SEO with sameAs and Wikidata

Connect your brand to the Knowledge Graph.

Duplicate schema explained

Remove conflicting JSON-LD.

Get a connected graph without writing JSON

NexalSEO outputs Organization, WebSite, WebPage, Article, Person, Product and BreadcrumbList as one @graph, with sameAs and Wikidata topics set once.

See the schema module