Academy

Structured Data and Entity Building

Build structured data and entity signals that match visible content, clarify key facts for search and AI systems, and remain valid as pages change over time.

16 min read

Structured data and entity building turns approved on-site facts into a machine-readable layer. It identifies the people, organizations, products, articles, questions, steps, and navigation paths that genuinely exist, assigns stable identifiers, and expresses testable relationships. It never invents a second version of the content.

Phase: P13, Structured Data and Entity Building. Stage: C — Build. Timebox: 3–5 working days for a site with a small set of stable templates; 1–2 weeks for a marketplace, publisher, or ecommerce catalog with multiple content systems. Owner: the technical SEO lead is accountable, with engineering implementing templates, content owners confirming visible facts, and brand or legal owners approving canonical entity records.

Search engines generally treat schema as one signal among page content, links, feeds, and other evidence. AI retrieval systems can increasingly treat the structured layer as a direct source of facts and relationships. An incorrect price, author, organization name, or relationship may therefore be extracted confidently because it looks explicit. Markup improves interpretation; it cannot make an unsupported claim true.

Why this phase, and why here

P13 consumes decisions made earlier in the process. The topical map identifies which page owns each intent and entity. The content inventory identifies duplicates and legacy URLs. The production system stabilizes fields such as author, reviewed date, price, availability, and FAQ text. On-page optimization makes those facts visible, while internal-linking work fixes hierarchy and canonical destinations. Only then can a schema template describe a settled page rather than encode a moving target.

Running this phase too early produces technically valid fiction. A developer may mark every editorial page as Article before the business decides whether the byline represents a person, a team, or the organization. A product template may expose an offer price that the visible page later replaces with “contact us.” Breadcrumb markup may preserve an old hierarchy after navigation changes. Each object parses, yet each tells machines something different from what people see.

Skipping the phase leaves systems to infer more than necessary. They may still understand the page, but names, relationships, dates, authorship, and product facts remain ambiguous. That weakens entity disambiguation : the process of deciding which real person, company, product, or place a name refers to. It also makes future maintenance harder because no one owns the identifiers and source fields behind the markup.

Dependency gate
Do not begin template implementation until the canonical page, visible source field, and accountable owner are known for every material entity property. If a fact has no visible source of truth, resolve the content model first.

The output is not “schema added.” It is a tested mapping from page templates to justified schema types, a canonical entity register, live validation evidence, and a monitoring rule. P14, off-page digital PR and citations, needs that contract so external profiles, coverage, and references reinforce the same names and identifiers instead of creating new variants.

Inputs and outputs

DirectionItemWhy it is neededAcceptance condition
InputApproved page and template inventorySchema coverage must follow real page types, not guessed URL patterns.Every in-scope template has an owner, example URLs, publication status, and canonical behavior.
InputCanonical entity listNames and identifiers cannot be stabilized one page at a time.Each organization, person, product family, and place has one preferred name and one canonical page or an explicit exception.
InputVisible-content field mapMarkup must be generated from the same facts users see.Price, availability, author, dates, ratings, FAQs, steps, and breadcrumbs each point to a visible source field.
InputInternal-link and hierarchy decisionsBreadcrumbs and entity pages depend on the agreed site structure.Parent-child paths and destination URLs are approved; unresolved merges and redirects are flagged.
OutputSchema coverage matrixEngineering needs to know what belongs on each template and why.Every in-scope template is assigned a justified type set, required properties, owner, and exclusions.
OutputEntity registerContent, engineering, and PR need one naming contract.Every material entity has a stable @id, preferred name, canonical page, aliases, and reviewed sameAs references.
OutputValidation evidenceA passing source file is not proof that live pages work.Representative live URLs have syntax, eligibility, visible-parity, canonical, and index evidence with timestamps.
OutputMonitoring specificationMarkup otherwise decays silently as templates and facts change.Critical templates have a test frequency, sampled URLs, alert condition, owner, and correction service level.

The coverage matrix contracts with implementation; the entity register contracts with the next phase. Validation evidence and monitoring keep both current.

Logo

Ready to Monitor Your AI Visibility?

Track how AI chatbots mention your brand across ChatGPT, Perplexity, and other platforms.

The checklist

Every item below includes the work, its reason, the method, the tool, and a done-when condition. Preserve those five fields if the checklist is moved into a ticketing system.

1. Inventory templates and select eligible page samples

What: list every in-scope template and choose representative live URLs, including variants with missing optional fields. Why: one ideal example cannot expose conditional errors such as a product without reviews, an article without a named author, or a category with no breadcrumb parent. How: group URLs by rendering template and content source, then select at least one complete, one minimal, and one edge-case URL per template. Tool: the page inventory, crawler export, CMS model, and browser. Done when: 100% of in-scope templates have at least three samples, or all live URLs when a template has fewer than three.

2. Choose only schema types that earn their place

What: assign types according to the page’s visible job. Why: extra types increase the surface for contradictions without creating entitlement to a result. How: use the narrowest accurate type and document why each object exists:

  • Article schema or BlogPosting belongs on editorial content with a visible headline, author or publisher, and publication context. Use the broader Article when a narrower subtype would mislead.
  • FAQ Schema belongs only where users see the complete questions and answers. Semantic value and special search presentation eligibility are separate.
  • HowTo belongs on a visible ordered procedure. Three marketing benefits are not a how-to.
  • Product schema belongs on a specific product or variant. Offers, currency, availability, ratings, and reviews must match the page.
  • Organization schema belongs on the canonical organization representation and can be referenced by stable @id elsewhere.
  • Person belongs on a canonical profile with enough visible information to identify the person. A bare byline does not justify credentials.
  • BreadcrumbList schema must reflect a hierarchy users can understand, not an artificial keyword path.

Tool: the coverage matrix, visible pages, schema.org vocabulary, and the search platform’s current eligibility documentation. Done when: every selected type has a one-sentence justification, a visible source, and an explicit exclusion rule for pages where it must not render.

3. Build the canonical entity register

What: create one maintained record for each important organization, person, product family, and location. Why: consistent identifiers let separate pages refer to the same thing; inconsistent names make machines decide whether “AmICited,” “Am I Cited,” and a legal company name are one entity or several. How: record the preferred public name, legal name where relevant, aliases, canonical page, entity type, stable @id, owner, and authoritative sameAs references. A sameAs value asserts identity, not topical relevance, so it should point only to a record or official profile representing the same entity.

One canonical page owns each entity’s complete definition; other pages reference its @id rather than create competitors. A page’s canonical URL identifies the preferred page for indexing, while @id identifies the thing described. For example, the entity can be https://example.com/about/#organization while the page remains https://example.com/about/.

Tool: entity register, CMS records, legal or HR source data, official profiles, and authoritative public records. Done when: 100% of material entities used in markup have one preferred name, one canonical page or approved exception, one stable @id, an owner, and no unresolved identity conflict.

4. Map properties to visible source fields

What: connect each schema property to the field that renders the visible fact. Why: manual duplication creates drift; the same price or author stored twice will eventually disagree. How: map headline to the visible title, author to the published byline record, dateModified to a meaningful visible update date, offer fields to the customer-facing commerce source, FAQ objects to rendered answers, and breadcrumb positions to the actual hierarchy. Do not populate a property because it is available in a plugin if its source is hidden, stale, or semantically different.

Tool: CMS schema, template code, commerce feed, content API, and field map. Done when: every material property has one named source, transformation rule, fallback behavior, and owner; zero material values are maintained independently in markup and visible content.

5. Implement a connected JSON-LD graph

What: render the approved objects and connect them with stable identifiers. Why: disconnected blocks can describe the same organization or author as separate things, while stable references express relationships clearly. How: use JSON-LD —JavaScript Object Notation for Linked Data—unless the existing platform requires another supported format. Use @id references for publisher, author, product brand, and primary entity instead of repeating partial definitions. Keep the output server-readable where possible and escape user-controlled strings safely.

The result is a small page-level knowledge graph : entities and their relationships. Include facts that identify or qualify them on this page, not every available property.

Tool: template engine, source control review, browser source, and a JSON parser. Done when: all selected samples output parseable objects, every internal @id resolves to one definition or intended reference, optional fields disappear cleanly when absent, and no template emits empty or placeholder values.

6. Run visible-content parity review

What: compare every material marked-up fact with what a user can see on the same URL. Why: structured data is an explicit claim, not a hiding place for content. Search systems can ignore misleading markup, remove eligibility, or apply manual action policies; AI systems can repeat the wrong value as if it were authoritative. How: compare the rendered page and extracted graph side by side. Check names, authorship, credentials, dates, prices, availability, currency, ratings, review counts, questions, answers, steps, and breadcrumb labels.

Hard rule: markup must match the page
A material value that is absent from or contradicts visible content is a critical failure. Remove the property or correct the visible source before release. Do not accept “the markup is more current” as an exception; make the page current too.

Tool: rendered page, extracted JSON-LD, CMS preview, and commerce source. Done when: 100% of material properties match visible content in meaning, units, scope, and freshness across the complete, minimal, and edge-case samples.

7. Validate syntax, eligibility, canonicals, and live interpretation

What: test the generated graph at four layers. Why: valid JSON may use the wrong property; valid schema may not meet a search feature’s requirements; a correct page may still be non-indexed; and Google may select another canonical. How: first parse the JSON. Second, validate vocabulary and type-specific requirements. Third, inspect the live URL’s rich-results and detected-item verdicts. Fourth, confirm index status and the selected canonical. Separate errors from warnings, and separate eligibility from actual display.

Tool: schema validator, the relevant search platform testing tool, and AmICited URL Inspection. Done when: there are zero syntax errors, zero invalid or unsupported required properties, zero unresolved rich-result errors on eligible templates, every warning has an owner or documented non-applicability reason, and the inspected live URL is indexed under the intended canonical.

8. Establish regression monitoring and change ownership

What: automate checks and define events that force revalidation. Why: schema silently rots when a CMS field is renamed, a component is hidden, a price source changes, or a JavaScript deployment stops injecting the graph. How: run template fixtures in release tests, crawl representative live URLs, compare detected types and error counts with the baseline, and subscribe to search-platform reports. Trigger a targeted review after changes to templates, navigation, authorship, organization identity, catalog fields, canonical rules, or visible FAQ and step components.

Tool: automated tests, scheduled crawler, deployment log, URL Inspection, and an owned issue queue. Done when: every critical template is checked before release and at least weekly in production, failures create an assigned alert within one business day, and the entity register has a quarterly review date.

Tools in AmICited

AmICited supports two different parts of the workflow. They should not be collapsed into one score because reachability and structured-data interpretation answer different questions.

Open AI Accessibility at https://app.amicited.com/accessibility to verify that AI agents can reach and extract the page structure that the markup is meant to describe. A perfect graph is irrelevant if a crawler receives a challenge page, a client-rendered shell, or blocked access. Use this check on the same representative URLs and user-agent conditions used for the schema sample.

Open URL Inspection at https://app.amicited.com/reports/google-search/url-inspection for the live Google verdict. Inspect the intended canonical, index status, rich-results verdict, and detected schema.org nodes. Review object, error, and warning totals rather than treating “markup detected” as a pass. Refresh after a deployment when a cached result would not represent the new template.

Record both report URLs, the inspected page, time, result, and screenshot so the next reviewer can reproduce the check.

Decision rules

Numbers turn “schema quality” into a release decision. These thresholds measure implementation integrity, not promised rankings, rich results, or citations.

FindingThresholdDecisionDone when
Markup contradicts or adds a material fact not visible on the page1 or more valuesBlock releaseEvery contradiction is corrected in the shared source or removed from markup.
JSON cannot be parsed1 or more errorsBlock releaseAll sampled pages parse with zero syntax errors.
Required property is invalid or missing on a type intended for rich-result eligibility1 or more errorsBlock that templateThe live test reports zero errors, or the type is deliberately removed and the matrix updated.
Critical template coverageBelow 100% of in-scope templatesBlock phase handoffEvery template has a mapping, exclusions, samples, and an owner.
Sample size per templateFewer than 3 URLs when 3+ existExpand testA complete, minimal, and edge-case page pass, or all URLs are tested when fewer exist.
Entity identifier collision2 records use one @id, or one entity has competing @id valuesBlock affected entitiesThe register contains one stable identifier per entity and all templates use it.
Unreviewed sameAs value1 or more linksRemove or reviewEach link resolves, represents the same entity, and has an owner and review date.
Validator warningAny warningTriage, do not silently ignoreEach warning is fixed or recorded with reason, owner, scope, and next review date.
Production regressionAny new parse error, type loss, or material value mismatchAlert within 1 business dayThe owner restores the baseline or approves and documents the intended change.
Entity register ageMore than 90 days, or immediately after a material identity changeReviewNames, canonical pages, identifiers, aliases, and authoritative references are reconfirmed.

Passing does not guarantee a rich result or AI citation; these thresholds govern accuracy and maintenance, not selection.

Deliverable

Hand over one versioned package with four artifacts: the coverage matrix, entity register, validation log, and monitoring specification. A spreadsheet, database, or repository file is acceptable if the fields are exportable and owners can update them without reconstructing the method.

SCHEMA COVERAGE MATRIX
Template | Example URLs | Included types | Excluded types and reason
Property | Visible source field | Fallback | Implementation owner

ENTITY REGISTER
Entity type | Preferred name | Legal name | Aliases
Canonical page | Stable @id | sameAs references | Record owner | Reviewed date

VALIDATION LOG
URL | Template | Test time | Deployed version
Parse result | Detected types | Errors | Warnings | Visible parity
Index status | Google canonical | Rich-results verdict | Evidence links

MONITORING SPECIFICATION
Template | Fixture URLs | Check frequency | Alert condition
Owner | Response time | Last pass | Next entity review

The handoff is accepted when engineering can identify the template rule behind any live object, content can identify the visible source behind any material value, and the next-phase owner can identify the canonical entity record without opening the code.

What goes wrong

A plugin marks up everything. The homepage becomes an Article, category cards become products, and every accordion becomes an FAQ. Fix the coverage matrix; configuration follows page purpose.

Markup and visible content use different databases. The offer says “in stock” after the page says unavailable. Generate both representations from the same field and test update latency.

Every page redefines the organization. Names, logos, and profiles drift. Define it once with a stable @id, then reference it.

sameAs becomes a link dump. Mentions and similarly named companies are asserted as identical. Keep only authoritative records and controlled profiles for the same entity.

FAQ or HowTo markup hides the answer. If users see only a teaser or gated step, render the complete marked content or remove the properties.

Validation stops at a generator. The live template may duplicate objects, escape JSON incorrectly, or fail for crawlers. Validate the deployed page and its index interpretation.

Warnings are failed or ignored wholesale. Triage each by consequence, record the decision, and revisit it when requirements or templates change.

Schema gets credit for outcomes it cannot guarantee. Track validity separately from search presentation, traffic, AI citations, and conversions.

Next phase

P14 is off-page digital PR and citations. It needs the entity register, not just code. Coverage, profiles, partnerships, and directories should use the approved name, canonical destination, and relationship language; otherwise external evidence can strengthen the wrong identity.

The P13 owner hands over:

  • the approved preferred name, aliases, canonical page, and stable identifier for every entity in campaign scope;
  • the authoritative records already connected with sameAs, including any gaps that should not be filled without verification;
  • the page and schema types that describe each entity, so outreach claims match on-site facts;
  • unresolved conflicts, such as a legal name that differs from the public brand or two experts with similar names;
  • the monitoring owner who must review identity changes created by new profiles, rebrands, acquisitions, or author moves.

The next phase can begin when an external publisher could identify and link the correct entity using only this package. It waits while ownership, naming, or identity remains disputed.

FAQ

Frequently asked questions

Does adding schema markup guarantee a rich result or an AI citation?
No. Valid markup makes facts and relationships easier to interpret, but eligibility is not selection. Search engines decide whether to show rich results, and AI systems decide which sources to retrieve and cite using many other signals.
Which schema types should we implement first?
Start with types that describe visible, business-critical content on stable templates: Organization, Person, Article or BlogPosting, Product, BreadcrumbList, FAQPage, and HowTo where each type genuinely applies. Do not add a type merely because a generator supports it.
Can structured data contain facts that are not shown on the page?
No. Material claims in markup must match visible content available to users on that URL. Hidden prices, invented ratings, outdated availability, or FAQ answers that differ from the page are release-blocking parity failures.
What should a sameAs link point to?
Use sameAs for an authoritative record or profile that unambiguously identifies the same entity, such as a controlled official profile, a trusted registry, or a well-maintained knowledge-base record. Do not use it for every page that merely mentions the entity.
How often should structured data be monitored?
Validate changed templates before release, inspect representative live URLs immediately after deployment, and run an automated check at least weekly on critical templates. Review entity records quarterly and whenever a name, ownership, author, price, availability, or canonical URL changes.
Make every machine-readable claim defensible
Inspect live schema, canonicals, and rich-result verdicts, then keep the entity record connected to the visible source of truth.

← All Academy tutorials

Ready to put it into practice?

Free check · 7-day trial · no credit card