Quick answer:Schema markup describes entities and content using a shared vocabulary; JSON-LD is one format for expressing it. Use types that match the page, connect stable identifiers and verify every factual property. Valid markup does not guarantee indexing, a rich result or an AI citation.
Step 1. Audit the page and its existing markup
Do this: Inspect the visible page and the JSON-LD already emitted by the template. List incorrect facts, duplicated nodes and missing relationships before changing code.
A structured description can be syntactically perfect and factually wrong. For an expert’s website, the useful first task is to check author, organization, role, dates and URLs against visible, verifiable information. Adding properties before resolving those facts creates a more elaborate error.
Google’s AI-features guidance does not require special schema for AI Overviews or AI Mode. Accurate structured data can describe content and support eligible search features, but it is not a universal citation instruction for ChatGPT or other providers.
This guide covers implementation for a personal expert site and its articles. For the broader question of confusing people or organizations, use the entity identity guide. Correct identity is useful even when a later AI-visibility test shows no change.
Before moving on: The page facts are verified and the existing output is recorded, including any schema produced by plugins.
Step 2. Choose only the relevant types
Do this: Use the table to identify what this page actually represents. List the types and verified properties you need, then check the relevant feature documentation.
| Type or property | Use it for | Common mistake |
|---|---|---|
| Person | A real author or speaker | Using an employer’s homepage as the person’s identity |
| Organization | An actual company or publisher | Describing a person and company as the same entity |
| Article or BlogPosting | A published editorial page | Inventing credentials, dates or findings in markup |
| BreadcrumbList | A real navigation hierarchy | Listing pages unrelated to the route |
| VideoObject | An actual video represented on the page | Adding a video that does not exist |
| FAQPage / QAPage | The appropriate visible question-and-answer format | Treating either as an AI-citation switch |
| sameAs | A URL that identifies the exact same entity | Using a related company, category or namesake |
Schema.org supplies the vocabulary. JSON-LD supplies a way to express linked data. @id identifies a node; sameAs supplies an identity reference. These jobs differ. A type being available in Schema.org does not mean Google offers a rich result for it on your site. Check current feature-specific documentation.
For articles, Google’s Article documentation explains properties such as headline, image, author and dates. Include information that fits the content and the supported feature rather than copying every property from another site.
Before moving on: Each chosen type has a visible counterpart or a factual relationship on the page.
Step 3. Build the graph with real identifiers
Do this: Adapt the illustrative relationship example to the verified page facts. Replace every demo value and connect the article author to the intended Person node.
Illustrative example with reserved example domains: the following graph describes a fictional author and article. It is displayed as a code sample, not installed as this page’s structured data. Replace the URLs, name, headline and dates with verified page facts before using it. It is a small relationship example, not a complete feature-eligibility template.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Person",
"@id": "https://example.com/#jane-doe",
"name": "Jane Doe",
"url": "https://example.com/about",
"sameAs": [
"https://profiles.example.org/jane-doe"
]
},
{
"@type": "Article",
"@id": "https://example.com/blog/measurement-guide#article",
"url": "https://example.com/blog/measurement-guide",
"headline": "A practical measurement guide",
"datePublished": "2026-09-01",
"dateModified": "2026-10-04",
"author": {
"@id": "https://example.com/#jane-doe"
}
}
]
}The article’s author.@id matches the Person node exactly. Reuse that person identifier on other pages about the same author. The article identifier remains distinct. A fragment identifier does not create a separate article URL or replace the page’s canonical link.
The profile in sameAs is hypothetical. In production, include a profile only after checking that it identifies that same person. An employer’s homepage belongs in an appropriate organization relationship, not in a person’s sameAs. A Wikipedia or Wikidata entry is not required. Do not add an uncertain namesake just to fill the field. See the property definition.
On a static site, JSON-LD can sit inside a script element with type="application/ld+json" in the HTML. In a CMS, check what the template or plugin already emits before adding another graph. Keep EN and ES page identities distinct while referencing the same real author. Translations need factual consistency, not identical sentences.
Before moving on: No fictional identity or example-domain URL remains in production data; the actual person and article have distinct identifiers.
Step 4. Validate the draft and published output
Do this: Work through the validation table. Resolve errors and factual mismatches before release; then inspect what the published URL actually serves.
- 01Parse and inspect
Check JSON, duplicate nodes, identifiers and URLs.
- 02Compare with the page
Verify claims, dates, authorship and visible content.
- 03Check the target feature
Use current documentation and the appropriate validator.
| Check | Tool or method | What a pass establishes |
|---|---|---|
| JSON syntax | A JSON parser | The document can be parsed |
| Vocabulary and structure | Schema.org Validator | Recognized vocabulary and structural feedback |
| Supported Google features | Google Rich Results Test | Feature-specific eligibility feedback, not all Schema.org vocabulary |
| Identity and claims | Manual comparison with visible page and verified sources | Factual consistency for the checked properties |
| Published output | Rendered page and relevant Search Console inspection | What is accessible and reported at that time |
Use the Schema.org Validator and Rich Results Test for their distinct purposes. Neither can establish that a professional credential is true. Google’s structured-data guidelines require relevant, representative content and explain that correct markup does not guarantee a rich result.
Record the exact page version, test date, findings and corrections. Review canonical and language links separately: schema validation does not replace those checks. Preserve the original publication date; use modification dates for substantive changes rather than scheduled freshness claims.
Before moving on: The validation record states the tested URL/version, tools, findings and unresolved issues. A syntax pass is not the final check.
Optional follow-up: investigate impact separately
Do this: If you want to study visibility effects, retain a baseline before deploying the change and record other simultaneous edits.
A successful implementation means the markup accurately represents the page and passes the checks relevant to its purpose. It does not mean the page has acquired citation authority. To investigate outcomes, save a baseline, document the markup change and preserve any simultaneous content or technical changes.
Repeat a fixed question panel under declared conditions and record exact-page citations, not just mentions. Variability, indexing delays and platform changes remain alternative explanations. A before-and-after result alone cannot isolate schema’s contribution. The AI visibility guide defines the rates and denominators.
Google’s Generative AI performance report can provide available AI-feature impressions; it is not a causal test of structured data and does not measure other platforms. Start with one page, verify its actual graph, and correct the first mismatch between markup and reality.
Before moving on: Implementation completion is reported separately from any observed AI outcome.
Check your finished work
Copy-and-complete template
This is a working template, not observed results.
Page URL / language / version: [ ]
Existing graph / changes made: [ ]
Article ID / author ID / verified identity links: [ ]
JSON parse / vocabulary / feature test: [result and date]
Visible-fact check / remaining issue: [ ]
Published-output check / reviewer: [ ]- The markup agrees with the visible author, content and dates.
- Article and Person identifiers connect correctly without conflating entities.
- Demo URLs and fictional example values are absent from production markup.
- Syntax, vocabulary and feature-specific findings have been reviewed.
- The actual published URL serves the intended graph and language links.
- Any unresolved factual issue is fixed before the implementation is called complete.
Frequently asked questions
Schema markup uses a vocabulary such as Schema.org to describe entities and content in structured data. JSON-LD is one format for expressing it; it is not the vocabulary itself.
Check existing template output first. Add accurate Article or BlogPosting data, connect the real author, and include relevant verified properties. Validate syntax, factual alignment and current feature-specific guidance before publishing.
@id identifies a node in linked data. sameAs points to a reference URL that identifies the exact same entity. Do not use an employer or a similarly named person as the author’s sameAs.
It provides feedback for supported Google features, not every Schema.org type or factual claim. Review vocabulary, identity and visible-content alignment separately.
No. Google does not require special schema for its AI features, and valid markup does not guarantee indexing, rich results or citations. Observe any outcome separately from implementation validity.
Make the technical decision clear to your audience
I connect AI-search implementation choices with the evidence and limits marketing leaders need to understand.
FA