# Schema-content fit
The page declares the right schema.org @type for what it actually is, and every field value in the JSON-LD matches the visible body. Engines that parse both surfaces use the agreement as a confidence signal.
By AgentSite · 2 min read · Updated 2026-05-24
Schema-content fit is the property of a page whose JSON-LD structured data agrees with the visible HTML body — both that the right `@type` is declared and that every field value reflects what the body says. Engines that parse both surfaces read agreement as confidence and mismatch as ambiguity.
## The two halves
**Type fit.** [Schema.org](https://schema.org/) defines a type hierarchy descending from `Thing` — `Article`, `Product`, `FAQPage`, `Organization`, `Event`, `Recipe`, `SoftwareApplication`, dozens more. Each type has expected properties. A how-to page should declare `HowTo`, not `Article`. A pricing page should declare `Product` with `offers`, not `WebPage`. The right `@type` tells the engine which extractor to reach for.
**Field fit.** Once the type is declared, every property the schema names must reflect the body. [`Article`](https://schema.org/Article) defines `headline`, `author`, `datePublished`, `dateModified`, `image`; `Product` defines `name`, `price`, `description`. The engine that lifts `Article.author = "Jane Doe"` from the schema and finds no byline in the body has to pick one or distrust both.
```json
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Schema-content fit",
"datePublished": "2026-05-24",
"author": { "@type": "Organization", "name": "AgentSite" }
}
```
Every field above must be a fact about the visible body. Inventing an author or backdating `datePublished` is the failure mode named in [schema-content mismatch](/schema-content-mismatch).
## Why engines weight it
Google's structured-data policies say it explicitly: "Don't mark up content that is not visible to readers of the page" ([Google structured-data policies](https://developers.google.com/search/docs/appearance/structured-data/sd-policies)). The rule is policy in Search and the same principle applies in AI retrieval — agents that parse both surfaces use mismatch as a discount factor or drop the page from the candidate set entirely.
The architectural fix that produces fit by default: derive schema from rendered HTML, not from a separate config the editor doesn't touch. Build-time generators that read the rendered DOM and emit the JSON-LD can't drift because the schema is downstream of the same content the user sees.
## Where this fits
Schema-content fit is a Layer 3 signal — the page's "what kind of thing is this" declaration plus the agreement contract on every named field. It pairs with [FAQ schema](/faq-schema) (the schema type most prone to drift) and with [schema-content mismatch](/schema-content-mismatch) (the failure form of this property). The layered place is in [the five layers of AEO](/five-layer-aeo); the catalog of failure modes is in [AEO problems](/aeo-problems).