# 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).