Structured data stopped being a rich-results tactic and became infrastructure: the layer that tells search engines which entities exist on your site and how they relate. This guide covers the entity graph, the WordPress implementation paths and their conflicts, the honest limits of schema in AI answers, and the governance that keeps it accurate.
JSON-LD is a W3C format for expressing structured data as JSON, using the schema.org vocabulary, inside a script block that sits alongside your page rather than inside its markup. Google recommends it over Microdata and RDFa because it is easier to implement and maintain at scale. In WordPress it can come from an SEO plugin, from theme-level code, or from reusable editorial blocks — and in most B2B sites all three coexist, which is exactly where the problems start. Its real function in 2026 is not decoration: it is entity disambiguation — declaring who publishes, what the organisation is, which services exist, and how those things connect through stable identifiers.
What JSON-LD actually is
JSON-LD stands for JavaScript Object Notation for Linked Data. It is a serialisation format for describing things and the relationships between them in a way machines can consume without guessing. On a web page it lives inside a script block of type application/ld+json, separate from the visible HTML — which is the property that makes it maintainable: you can version it, template it and audit it without touching layout.
The vocabulary it carries is schema.org, a shared dictionary maintained since 2011 by Google, Microsoft, Yahoo and Yandex, and still actively released — version 30.0 shipped in March 2026. Google expanded support for JSON-LD in 2015 and has recommended it since. Three formats remain valid; only one is pleasant to maintain across hundreds of WordPress templates.
The distinction worth internalising: schema.org is the vocabulary, JSON-LD is the format, structured data is the practice. Vendors selling "AI schema" are selling ordinary types with a new label on the invoice.
How the entity graph works
A structured data block is not a list of tags. It is a set of nodes and edges — entities and the relationships between them. Four properties do most of the work.
| Property | Function | Failure mode when wrong |
|---|---|---|
| @context | Declares the vocabulary in use, normally https://schema.org | Without it the block is not interpreted as schema.org markup at all |
| @type | What kind of thing this is: Organization, Service, Article, Person | Over-typing (marking a blog post as a Product) invites mismatch penalties |
| @id | The stable identifier for an entity, normally a URL fragment such as #organization | Missing or inconsistent @id means the same brand becomes several unrelated entities |
| @graph | Groups multiple connected entities into one block | Nodes bundled with no identifiers cannot be linked to each other |
Table scrolls horizontally on mobile.
The identifier is the part most implementations get wrong. When your organisation is declared once with @id ending in #organization, and every article, service and page thereafter references that identifier instead of describing the organisation again, a crawler can merge everything into a single coherent picture of the business. When each template invents its own organisation object, the crawler sees several similar entities and has to decide which one is real. That decision is not made in your favour.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Service",
"@id": "https://example.com/consulting/#service",
"name": "Technical SEO consulting",
"provider": { "@id": "https://example.com/#organization" },
"areaServed": ["US", "CA", "BR"]
}
]
}
One line — provider pointing at an existing identifier — is the difference between a connected graph and a pile of disconnected fragments.
What changed in 2026
Two shifts reset the strategy this year, and both push in the same direction: away from schema as a display trick, toward schema as a description of what is genuinely on the page.
Rich results narrowed. Google confirmed that FAQ rich results stopped appearing in Search on 7 May 2026, with the Search Console report and Rich Results Test support retired in June and API support ending in August. Google noted the markup can stay in place, since other engines may still process it. This completes a pattern that began in 2023 with the FAQ restriction and the HowTo deprecation: when a feature gets scaled by tooling until it no longer describes the page faithfully, the feature goes away and the vocabulary stays.
AI features arrived, and Google was blunt about requirements. Its guidance for site owners states plainly that there are no additional requirements to appear in AI Overviews or AI Mode, that no machine-readable AI files are needed, and that there is no special schema.org structured data you need to add. Eligibility is the same as for ordinary results: indexed, and eligible to appear with a snippet.
"No special schema is required" is not "schema is irrelevant". It closes the door on AI-specific markup products while leaving the ordinary function of structured data — describing entities accurately so systems do not have to infer them — completely intact. The agencies selling AI schema and the agencies declaring schema dead both misread the same sentence.
Schema and AI answers: the honest version
Here is where most content on this topic becomes unreliable, so it is worth being precise about what is evidence and what is inference.
What the tests show. In early 2026, a controlled experiment placed a company address exclusively inside an invalid, invented JSON-LD block, with the fact appearing nowhere in the visible copy. Both ChatGPT and Perplexity retrieved the address anyway — which indicates the script content is tokenised as text along with everything else on the page, not parsed as a validated graph. A separate multi-assistant test reached a compatible conclusion for direct page fetches, while noting the obvious limitation: schema may still matter upstream, in the search indexes those assistants query.
What follows from that. Two practical rules, both uncomfortable for anyone selling schema as an AI lever:
- Never put a fact in schema that is not visible on the page. If a model can read your script block as text, an inaccurate block becomes a source of wrong quotes about your business — and Google's general guidelines already prohibit marking up content that is not visible to readers.
- The visible layer does the citing work. Clear definitions near the top of a section, self-contained answers, real tables, unambiguous headings — that is what gets extracted and quoted. Schema is the layer that keeps the entity behind the quote correctly identified.
So the value is a dual layer, not a single lever: JSON-LD for the search infrastructure that feeds AI surfaces; visible structure for the models that read pages as text. Anyone claiming a direct causal line from schema to citations is describing a correlation with an undocumented mechanism. It matters commercially, too — vendor studies through 2026 report AI-referred visitors converting several times better than standard organic on B2B sites, and B2B referral share splitting across four engines rather than concentrating in one. Treat those as directional estimates, not audited numbers; the methodologies vary widely and the panels are small.
The four layers that matter for B2B
A services business does not need forty schema types. It needs four layers, modelled once and referenced everywhere.
- Identity. Organization plus the people behind it — founder, authors, specialists — with
sameAspointing at the profiles that corroborate them. This is the layer AI systems and knowledge graphs use to decide whether a brand is a known entity or an unverified string. - Structure. WebSite, WebPage and BreadcrumbList: how the site is organised and where each page sits. Usually handled by the SEO plugin, and usually best left there.
- Offer. Service nodes for each thing you sell, connected to the organisation through
provider, withareaServed,audienceand a service catalogue. This is the layer plugins never generate and B2B sites almost always lack. - Content. Article or BlogPosting with author, dates and
aboutentities; FAQPage where genuine Q&A exists. This is what connects your editorial output back to the identity layer instead of leaving it orphaned.
In audits, the missing layer is almost always the third one. Sites publish for years without a single machine-readable statement of what they sell, to whom, and in which markets — then wonder why answer engines describe them vaguely or attribute their category to a competitor.
JSON-LD in WordPress: three paths and where they collide
WordPress powers a large share of the web precisely because there are always three ways to do anything. Structured data is no exception, and the three paths can coexist — provided someone decides which one owns which entity.
| Path | Best for | Limit |
|---|---|---|
| SEO plugin | The structural baseline: WebSite, WebPage, BreadcrumbList, Organization, Article | Generic by design; cannot model your portfolio, methodology or team relationships |
| Theme or child theme | Per-template blocks — service pages, case studies, author pages — with controlled @id values | Requires developer discipline; dies quietly in a theme update if undocumented |
| Reusable blocks / custom fields | Editorial autonomy: the content team fills fields, the template renders valid JSON-LD | Needs an upfront build and validation guardrails, or editors will produce invalid graphs |
Table scrolls horizontally on mobile.
The collision is predictable. A plugin such as Rank Math or Yoast already emits an organisation node under its own identifier. A developer then adds a custom block that declares an Organization with the same name and a different @id. Now the site publishes two brands. The fix is never to remove the plugin's graph — it is to inspect the identifiers the plugin uses and reference them from every custom node, so provider, publisher and worksFor all point at one canonical entity.
Building the entity model before writing any code
The markup is the last step, not the first. The sequence that works:
- Inventory the entities. The organisation, the people, each service, each location or market, the recurring content types. Written in plain language before any JSON exists.
- Assign canonical identifiers. One
@idper entity, decided once, documented, never improvised at template level. - Map the relationships. Which service belongs to which organisation, which person authors which content, which page describes which service.
- Check the visible layer. Every claim the schema will make must exist in copy a human can read. This step routinely sends work back to content, and that is a feature.
- Template it. Implement per page type, not per page, so the model survives the next hundred pages.
- Validate and document. Both tools, both directions: syntax and eligibility, plus a written record of which identifier means what.
Steps one to four contain most of the value and none of the code. That ordering is what separates structured data as engineering from structured data as a plugin checkbox — and it is the reason this work sits inside our broader approach to SEO, GEO and AEO rather than beside it.
Eight errors we find in almost every audit
- Duplicate entities. Two or more organisation nodes with different identifiers. The most common finding, and the most damaging.
- Schema that contradicts the page. A service described in markup that the copy never mentions, or prices that differ between the block and the front end.
- Orphan nodes. Valid, isolated blocks with no
@idand no references — technically correct, semantically useless. - Relative URLs. Identifiers and image URLs written as paths instead of absolute URLs, which breaks entity merging across the site.
- dateModified theatre. Timestamps bumped automatically on every cache purge, which trains systems to ignore the signal.
- Over-typing. Landing pages declared as Product, blog posts as NewsArticle, agencies as LocalBusiness with no verifiable premises.
- Blocked resources. Structured data behind robots.txt disallow rules or rendered by scripts the crawler cannot execute — Google's guidelines are explicit that markup must remain accessible.
- Set-and-forget. A model built around a service portfolio that changed eighteen months ago, still describing the company that no longer exists.
Validation and measurement
Two tools, two different jobs, and neither is optional. The Rich Results Test answers whether Google sees your markup as eligible for supported features. The Schema Markup Validator answers whether your graph is valid schema.org regardless of what Google chooses to display — which is the relevant question for everything outside Google's rich result gallery.
Measurement is where expectations need calibrating. Structured data has no dedicated success metric, and the things it influences are indirect:
- Search Console enhancement reports for error and eligibility trends by type — remembering that FAQ reporting is being retired through 2026.
- Brand queries and knowledge panel behaviour as a proxy for whether your identity layer is being consolidated correctly.
- AI citation testing: a fixed set of buyer-intent prompts, run monthly across the major assistants, recording whether your brand appears and whether the description is accurate. This is manual, unglamorous, and the only honest read available.
- Referral segmentation in analytics, since AI-sourced sessions land in direct or referral buckets by default and stay invisible until you separate them.
The most useful thing structured data can do for a B2B brand is not more impressions. It is ensuring that when a machine describes your company to a buyer, the description is correct.
Flowup Agency — position stated for editorial transparency.
Governance: schema as a maintained asset
Structured data decays. Services get renamed, people leave, markets expand, plugins update their graphs. A model that was accurate at launch describes a fictional company two years later, and the fiction is machine-readable.
Governance means four commitments: a documented entity model that lives outside anyone's head; a review triggered by business events rather than a calendar; validation as part of the deployment routine, not an annual audit; and a single owner who decides what the canonical identifier for each entity is. On a WordPress site this usually means someone who understands both the development layer and the commercial model — which is precisely the seam where most implementations fail.
Working with Flowup from outside Brazil
Flowup Agency has been building digital assets since 2011. We are not a marketing agency: we engineer digital authority — the work of making a brand findable, understandable, verifiable and citable, by people, by search engines and by AI systems. Structured data is one layer of that, and it is the layer where most of our international engagements start, because it is measurable, self-contained and diagnostic of everything else.
What an engagement typically looks like:
- Diagnostic. A map of every entity your site currently declares, the conflicts between them, and the gap between markup and visible content.
- Entity model. A documented set of canonical identifiers and relationships, agreed before implementation.
- Implementation. Versioned JSON-LD by template, coexisting cleanly with your existing SEO plugin instead of fighting it.
- Editorial enablement. Reusable blocks and fields so your team can publish without regenerating the problem.
- Monitoring. Validation, Search Console coverage, and a monthly AI citation test against your own buyer-intent prompts.
We work in English, Portuguese and Spanish, serve clients in Brazil, the United States, Canada and beyond, and operate in a time zone that overlaps the North American and European working day. Everything above is delivered as documentation you own — code, entity model and rationale — not as a black box that requires us to stay.
Frequently asked questions
Does JSON-LD improve rankings?
Not directly. Structured data is not a ranking factor in the way content quality and links are. What it does is make a page eligible for supported rich results and reduce ambiguity about the entities on the page — who published it, what the organisation is, which service the page describes. Google's own documentation frames structured data as a way to help Search understand content, and states that a manual action for spammy markup affects rich result eligibility rather than web ranking. The practical benefit is a clearer entity footprint and a better click-through profile, not a position jump.
Do I still need FAQ schema after Google removed FAQ rich results?
You do not need it for search appearance. Google confirmed that FAQ rich results stopped appearing on 7 May 2026, with the Search Console report, Rich Results Test support and API data retired over the following months. Google also said the markup can be left in place and that other engines may still process it. The honest position: keep FAQPage markup if your page genuinely has questions and answers, and expect zero visual footprint in Google. The value now sits in the visible Q&A content, which every retrieval system can read.
Do ChatGPT and Perplexity read JSON-LD?
They read it as text, not as structured data. Controlled tests published in early 2026 showed both systems retrieving a fact that existed only inside an invalid JSON-LD block, which indicates the script content is tokenised along with the rest of the page rather than parsed and validated as a graph. The implication for implementation is important: never put a fact in your schema that is not also visible in the page copy. Schema supports Google's entity infrastructure; visible, well-structured content is what language models actually quote.
Is the schema from my SEO plugin enough?
For a blog, usually yes. For a B2B site selling services, usually not. Plugins such as Rank Math and Yoast generate a solid baseline graph — Organization, WebSite, WebPage, BreadcrumbList, Article — but they do not model your service portfolio, your named methodology, your team as people, or the relationships between them. The failure mode we see most often is not absence of schema but duplication: a custom block redeclaring an organisation the plugin already defines, producing two conflicting entities for the same brand.
How do I avoid duplicate entities between my plugin and custom JSON-LD?
Reference, do not redeclare. Inspect the graph your plugin already outputs, note the identifiers it uses for the organisation and the website, and have every custom node point at those identifiers instead of defining new ones. In practice this means a custom Service block whose provider property is a reference to the existing organisation identifier, rather than a fresh Organization object with the same name. One entity, one identifier, referenced from everywhere — that is the entire governance rule.
How long does a JSON-LD implementation take on a WordPress site?
The markup itself is fast. The modelling is not. Writing the code for a mid-sized B2B site is typically days of work; deciding which entities exist, which identifiers are canonical, and how the schema must match visible copy is where the time goes, and it usually surfaces content problems that were invisible before. A realistic sequence is audit and entity model first, then implementation by template, then validation, then a review cadence tied to site changes rather than a fixed calendar.
References
- AI features and your website — Google Search Central documentation.Source for the statement that no special schema.org structured data is required for AI Overviews or AI Mode.
- Intro to how structured data markup works — Google Search Central.Source for the JSON-LD recommendation over Microdata and RDFa.
- General structured data guidelines — Google Search Central.Source for the visible-content requirement and access rules.
- Google to no longer support FAQ rich results — Search Engine Land, May 2026.
- ChatGPT & Perplexity treat structured data as text on a page — Search Engine Roundtable, February 2026.
- Schema markup and AI: what ChatGPT, Claude, Perplexity and Gemini really see — SearchVIU.Independent test; author reports limitations for phases beyond direct fetch.
- AI search statistics — Similarweb, July 2026.Vendor panel data on generative AI traffic distribution.
- AI search market share report, wave 2 — Goodie, 2026.B2B referral panel; small sample, directional only.
- AI referral traffic vs organic search: conversion rates compared — AirOps, 2026.Aggregates several vendor studies with differing methodologies.
- Schema.org — vocabulary history and release versions.
Statements attributed to Google come from its public documentation, checked on 2 August 2026. Figures on AI referral traffic and conversion come from vendor studies with varying methodologies and sample sizes; they are directional signals, not audited benchmarks, and are labelled as such in the text. The tests on how language models handle JSON-LD are independent experiments, not vendor claims — but they are single experiments, and the internal mechanics of these systems are not publicly documented.

