Skip to content
Lingows
Geometric navy key art of faceted wireframe structure, for schema markup engines can parse.

AEO / Schema markup

Schema markup that cannot drift from the page machine-readable truth

Assistants use structured data to confirm what a page says, not as a substitute for reading it. Markup that disagrees with the visible content gets ignored or, worse, distrusted.

Schema markup is a second, machine-readable statement of what a page already says. It does not add persuasive copy, and it does not change what a human sees. It gives a crawler or an assistant a structured, unambiguous version of the same facts: this is an Organization, this is a Service with this name and description, this is a question with this exact answer. When that structured statement agrees with the rendered page, it becomes a trust signal. When it disagrees, even by omission, it becomes a reason to discount the page.

Most schema problems we find were not caused by neglect. They were caused by hand-written JSON-LD, pasted into a template once and never touched again. A price changes, a service gets renamed, an FAQ answer gets edited, and the schema block sitting in the page head keeps saying the old thing. Nobody remembers it is there until an assistant or a search console report surfaces the mismatch.

We solve that by generating schema from the same typed component library that renders the visible page, the approach documented across this site's own schema components. A ServiceSchema component takes the same title, description, and deliverable list that the page displays and emits the JSON-LD from it. There is no second source of truth to forget about, because there is only one source of truth and two renderings of it.

This page covers which schema types matter for which kind of page, how the generation model prevents drift, and how we validate and monitor markup once it ships. None of this is exotic. It is disciplined implementation of a specification that has existed for years and that most sites still get wrong.

What it is

Which schema type for which page

Schema.org defines dozens of types. A handful cover nearly everything a service business or content site needs.

Organization and LocalBusiness schema establish who is speaking. Organization carries the legal name, logo, and sameAs links to verified profiles. LocalBusiness extends that with address, service area, and hours for anything with a physical or defined local footprint. These sit near the root of the site and rarely change, which makes them the easiest to get right and the most damaging to leave inconsistent, since every other entity on the site references back to this one.

Service schema describes an individual offering, with a name, description, and provider reference back to the Organization. FAQPage and QAPage markup do the most direct work for answer engines: FAQPage pairs a set of questions and answers that appear together on a page, while QAPage suits a single question with one accepted answer, closer to a forum or support-article shape. Both give an assistant an exact question-to-answer mapping instead of asking it to infer one from prose.

Article and BreadcrumbList round out most content and navigation needs. Article schema carries headline, author, and publish date, which matters for the authorship signals covered under entity optimization. BreadcrumbList is unglamorous but functional, telling a crawler exactly where a page sits in the site's hierarchy without it having to reconstruct that from links. Product and Event schema apply narrowly, to commerce catalogs and scheduled occurrences, and we only add them where the underlying content type actually exists.

The type is only half the job. Coverage without accuracy is worse than no markup, since a schema block that names the wrong service or an outdated FAQ answer is a factual claim a machine can check against the page and find false.

Fit

Who this is for, and who it is not for

We would rather say no early than sell a program that cannot work.

This fits when

  • Your site currently has no structured data, or blocks that were written once and never revisited.
  • You are investing in answer-first content and want the machine-readable layer to match it.
  • You want schema generated from your actual page content instead of maintained as a separate file.

This is not a fit when

  • Your site content changes daily in ways schema cannot reasonably track without an engineering change.
  • You want a plugin that auto-generates generic markup without review, which produces exactly the drift this page argues against.
  • There is no underlying content worth marking up yet. Fix the content first.

Deliverables

What you get

Markup generated from your components, validated, and watched for drift.

Schema audit and type map

A full inventory of every page type on the site and which schema types apply, cross-referenced against what is currently implemented or missing.

Component-generated JSON-LD

Schema components built into the same template layer that renders the page, so a content edit updates both the visible copy and the markup in one change.

FAQPage and QAPage implementation

Question and answer markup built to match the exact wording on the page, sourced from the same content object rather than transcribed separately.

Validation pass

Every schema type run through structured data testing tools before launch, checking required properties and catching type errors before they ship.

Drift monitoring

Scheduled checks comparing rendered markup against page content, flagging any block that has fallen out of sync after a content update.

A written no-list

A short document of markup we will not add, including schema for content that does not exist on the page, which search engines and assistants treat as manipulation.

How we run it

How schema work runs here

Four stages, starting with an inventory of what exists and what should.

  1. Step 1: Type inventory

    We map every template on the site against the schema types it should carry, and audit what is currently implemented, missing, or stale.

  2. Step 2: Component build

    Schema gets built as components fed by the same data object as the visible page, not as a separate JSON-LD file maintained by hand.

  3. Step 3: Validation

    Every type is run through structured data testing before it ships, checking required and recommended properties against the specification.

  4. Step 4: Launch and index check

    We confirm markup renders server side in the initial HTML response and appears correctly in search console structured data reports.

  5. Step 5: Ongoing drift checks

    Scheduled comparisons between markup and page content catch the mismatches that accumulate after routine edits, before they become a trust problem.

What is schema markup and why does it matter for AI search?

Schema markup is structured data, usually JSON-LD, that states a page's facts in a machine-readable format. Assistants use it to confirm what a page says and to map questions to exact answers, so markup that agrees with the visible content builds trust and markup that disagrees gets discounted.

  • Organization and LocalBusiness schema establish who is speaking, before any other type matters.
  • FAQPage and QAPage give assistants an exact question-to-answer mapping instead of inferred prose.
  • Markup generated from the same component that renders the page cannot silently fall out of sync.

Why does hand-written JSON-LD go stale?

Hand-written JSON-LD is a second, disconnected copy of page facts that nobody remembers to update. A service description or FAQ answer changes on the page, the markup still says the old version, and the mismatch sits invisible until a crawler or console report surfaces it.

Generating schema from the same typed component that renders the visible content removes the second copy entirely, since there is only one source of truth.

Where this connects

Schema is one layer of a larger structure

It depends on entity clarity and content already being answer-first.

Schema can only confirm facts that are already consistent, which is why it depends on the identity work done under entity optimization before an Organization block gets written.

FAQPage markup is only as good as the underlying answers, which is the content discipline covered in AI search visibility and its answer-first structure.

Whether schema gets read at all depends on the crawler ever reaching it, which is the access question handled in llms.txt implementation for machine-readable site discovery.

See how schema fits alongside the other five programs on the AEO hub where the full sequence is explained.

Because markup only renders correctly if the HTML is complete on first load, this work assumes the server rendering built under application frontends since a client-rendered page can serve empty markup to a crawler that never executes JavaScript.

Questions

Schema markup questions we get asked

Find out which schema types your site is missing

We audit your current markup against your actual page content before writing a line of JSON-LD.