WordPress sites that have done their basic on-page SEO work — title tags, meta descriptions, keyword-aligned content — typically still have one large surface untouched: structured data. Schema.org markup is the language that search engines and AI assistants use to understand what a page is about, not just what it contains. When done well, structured data is the SEO investment with the longest compound returns: small upfront work, ongoing benefit across organic search, AI-assisted search, and the rich results that make a listing stand out. Here's what the practice actually looks like, and where most WordPress sites get it wrong.
The default state of a WordPress page is that Google has to guess what it is. The page might have a title, a body, a few headings, an image. Google reads it, infers it’s probably an article or a service page or a contact page, and ranks it accordingly. The guess is usually close enough to be ranked correctly, but it’s still a guess. Structured data is what makes the guess unnecessary.
Schema.org is the vocabulary search engines use to read structured data. It’s a controlled set of types (Article, ProfessionalService, LocalBusiness, FAQPage, HowTo, Product, Person, Event, hundreds of others) and properties (author, datePublished, address, openingHours, priceRange, aggregateRating). When a page declares “this is a ProfessionalService, located in Rochester NY, with these business hours, offering these services,” Google stops guessing. The page now has structured facts attached to it.
The practical effect compounds over time. In the short term, structured data is what unlocks rich results: the star ratings under a search snippet, the product pricing and availability, the breadcrumb trail, the recipe card. In the medium term, structured data tightens the page’s topical authority: Google is more confident the page is about what it claims to be about. In the long term — and this is the part that’s become critical in 2026 — structured data is what AI search assistants read to decide whether to cite the page when answering a question.
What “doing schema” actually looks like.
The mechanics:
- A schema type is chosen per page based on what the page actually is. A blog post is an
Article(or a more specific subtype likeBlogPostingorTechArticle). A service page is aServiceorProfessionalService. A staff bio is aPerson. A location-specific landing page is aLocalBusiness. A FAQ section anywhere on the site can haveFAQPagemarkup. A how-to isHowTo. - Properties get filled in from the actual page content. Author name, publish date, business hours, address, phone, price range, rating value. Most of this data already lives in the WordPress database (post author, post date, ACF fields, taxonomy terms); the schema layer pulls it from there and outputs it as JSON-LD in the page head.
- JSON-LD is the recommended syntax. A
<script type="application/ld+json">block in the document head. Easy to validate (Google’s Rich Results Test, Schema.org’s validator), easy to maintain (no need to interleave markup with visible HTML), easy to extend.
Done well, a single page can have multiple linked schema entities: an Article whose publisher is an Organization whose address is a PostalAddress, all referenced by @id. The graph of entities describes the page, the business, the people, and the relationships, all in one block.
The categories most WordPress sites are missing.
The most common gaps:
- Organization-level schema. The site has no
OrganizationorLocalBusinessschema describing what the business is. Without it, Google has no anchor for the brand entity. Every page is described in isolation. - Article schema with author and publisher relationships. Blog posts have a title and date but no structured author, no publisher reference, no article body declaration. The page reads as content but doesn’t connect to a named author or organization.
- FAQ markup on FAQ sections. Sites have FAQs but render them as plain HTML accordions with no
FAQPagemarkup. While Google retired the visual FAQ accordion from standard search results in May 2026, FAQPage markup remains one of the strongest signals you can give an AI assistant. Without it, the model has to parse your HTML structure to realize it’s looking at a Q&A format. - Service or Product markup on service pages. Service-area sites have detailed service pages with no
Serviceschema describing the offering, the provider, the geographic reach. Google’s understanding of the offering is purely inferred from the prose. - Breadcrumb markup. Common, easy to add, almost never present. Breadcrumb schema generates the breadcrumb trail in Google’s search snippet, which boosts click-through.
- Person schema on staff bios. Sites with team or about pages list people without
Personmarkup. The site’s expertise signal is muted.
Each of these is a single block of JSON-LD on the relevant template. The work is in identifying which pages need what, populating the properties from the right data sources, and keeping it current as content evolves.
The AI-search angle.
The reason structured data has gone from “useful” to “essential” in 2026 is that AI assistants — ChatGPT, Perplexity, Google’s AI Overviews, Claude’s web tool — preferentially cite pages with clear, machine-readable structure. When an AI summarizes “what is the best WordPress hosting for X,” it reaches for sources where the answer is explicit and the page’s structure makes it easy to extract. A ProfessionalService schema block that says “this business provides WordPress managed hosting, located in Rochester NY, founded in 2022” gives the assistant a clean fact to cite. A page with the same information in plain prose is harder to pull from confidently.
The practical implication: every page targeting an AI-search query, informational or commercial, benefits from schema that explicitly states the answer the user is asking for. The investment justified by organic SEO alone now has a second compounding payoff in AI citations. See Generative Engine Optimization for WordPress for the broader picture of how AI search citation works.
The AI-assisted schema generation workflow.
One of the more useful applications of AI inside the WordPress admin: schema generation. The pattern that works:
- A page or post is created or substantially updated.
- An automated pass (an Action Scheduler job, or a publish hook) sends the page’s title, content, and existing meta to a connected AI model.
- The model returns a draft schema block: the type, the populated properties, the linked entities.
- An editor reviews and approves the schema in the WordPress admin before it goes live.
- The approved schema is stored in post meta and rendered in the page head on every request.
The pattern works because schema generation is exactly the kind of “structured, mostly-deterministic-with-some-judgment” task language models are good at. The editor’s role is to catch the few cases the model gets wrong (a service page misidentified as a product, an article author hallucinated), not to write the schema from scratch. The net is a site where every page has appropriate, current schema, generated at a fraction of the cost of doing it by hand.
The maintenance question.
Schema markup is not a one-time job. Every new page type needs a decision about what schema applies. Every change in the underlying data (the business moved, the team changed, the services list grew) needs to flow through to the schema output. The pattern that works on long-lived WordPress sites:
- Pull from the database, not from hardcoded values. Schema generation reads from ACF fields, taxonomies, post meta, the same sources the visible page reads from. When the content updates, the schema updates with it automatically.
- Validate on a quarterly cadence. Google’s Rich Results Test catches breakage; Schema.org’s validator catches semantic mistakes. A quick pass each quarter catches drift.
- Add new types as content categories appear. A site that adds a “case studies” content type, a “team” page, an “FAQ” section — each of those is a new schema type to consider.
The work compounds. A site with two years of consistent schema work has a structural advantage over a competitor that’s relying purely on prose. It ranks more confidently, surfaces in more rich results, and gets cited more often in AI answers, all from a structural decision that was made once and maintained lightly.
Where to start.
The 80/20 starting point:
- Organization schema in the header on every page (the business as the publisher entity).
- Article schema on every blog post (author, publisher, datePublished, headline, articleBody).
- FAQPage schema wherever the site has an FAQ section.
- Breadcrumb schema on any page deeper than the homepage.
- Service schema on service pages; LocalBusiness schema on location pages.
The work shows up clearly in specific cases. A multi-location business with two locations sharing the same brand name used advanced LocalBusiness schema to give Google an unambiguous way to distinguish the two locations as separate entities, fixing an SEO-consolidation problem that standard on-page signals couldn’t solve.
That’s a one-time engineering project for most sites, sized in days not weeks. The compounding payoff runs for years. See platform architecture built to last for what this looks like as part of a broader practice.