Schema Writer
Schema writing engineers can trust.
AI classifies pages and extracts entities. A deterministic engine — never free-form model output — assembles connected JSON-LD with provenance on every property. Use Schema Writer beside entity-first campaigns, not instead of them.
Schema Writer / schema writer
Schema health
92/100
Connected @graph
5 nodes
- JSON
- Vocabulary
- Graph integrity
- Search features
- Entity consistency
Entity graph
From crawl to production graph
- 1
Crawl and classify
The crawler inventories pages and templates. AI classification assigns each page a type with a confidence score.
- 2
Extract entities
Organization, person, product and service entities are extracted once and reused across every graph in the workspace.
- 3
Generate @graph
The engine assembles Organization, WebSite, WebPage, BreadcrumbList and the main entity into one connected graph with stable @id references.
- 4
Validate and deploy
Seven validation layers score the result, then serve it from a hosted endpoint or hand you the JSON-LD.
Generated markup should be reproducible.
Run generation twice and Schema Writer produces identical JSON-LD. Every property records its source — verified profile, crawler, rule or AI — together with a confidence score, so reviews focus on facts instead of guesses. Each generation creates an immutable version you can compare and fall back to.
What the engine checks and records
Provenance per property
Every value records its source and confidence, from verified profile data to flagged AI suggestions.
Immutable versions
Graphs are versioned on every generation; recent versions stay browsable with their validation history.
Vocabulary guardrails
Seventeen supported schema.org types with search-feature eligibility rules, including FAQPage restrictions.
Graph integrity
Duplicate @ids and unresolved references fail validation before anything reaches production.
Visible-content consistency
Markup is checked against the actual page title and your business profile for mismatches.
Issue triage
Open issues list severity, layer and node, with resolve and ignore actions per row.
Ship markup without touching templates.
The hosted schema endpoint serves the deployed graph for any crawled URL: GET /api/v1/sites/{siteId}/schema?url=example.com/page — authenticated with a scoped, host-locked token that is hashed at rest and shown only once. Your framework pulls JSON-LD at render time; EntityStacks handles versions behind it.
See the engine work
The same deterministic engine that powers EntityStacks runs right here in your browser. Adjust the inputs and watch connected JSON-LD generate with a real validation health score. Nothing is sent to a server.
{
"@context": "https://schema.org",
"@graph": [
{
"@id": "https://northstardental.com/services/example#breadcrumb",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"item": "https://northstardental.com",
"name": "Northstar Dental",
"position": 1
},
{
"@type": "ListItem",
"item": "https://northstardental.com/services",
"name": "services",
"position": 2
},
{
"@type": "ListItem",
"item": "https://northstardental.com/services/example",
"name": "example",
"position": 3
}
]
},
{
"@id": "https://northstardental.com/services/example#service",
"@type": "Service",
"name": "Dental Implants | Northstar Dental",
"provider": {
"@id": "https://northstardental.com#organization"
}
},
{
"@id": "https://northstardental.com/services/example#webpage",
"@type": "WebPage",
"about": {
"@id": "https://northstardental.com#organization"
},
"description": "Dental implant treatments from the Northstar Dental team — consult, plan, and restore in one clinic.",
"inLanguage": "en",
"isPartOf": {
"@id": "https://northstardental.com#website"
},
"mainEntity": {
"@id": "https://northstardental.com/services/example#service"
},
"name": "Dental Implants | Northstar Dental",
"publisher": {
"@id": "https://northstardental.com#organization"
},
"url": "https://northstardental.com/services/example"
},
{
"@id": "https://northstardental.com#organization",
"@type": "Organization",
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer support",
"email": "care@northstardental.com",
"telephone": "+1-555-014-2832"
},
"email": "care@northstardental.com",
"name": "Northstar Dental",
"telephone": "+1-555-014-2832",
"url": "https://northstardental.com"
},
{
"@id": "https://northstardental.com#website",
"@type": "WebSite",
"inLanguage": "en",
"name": "Northstar Dental",
"publisher": {
"@id": "https://northstardental.com#organization"
},
"url": "https://northstardental.com"
}
]
}
Health score
100/100
Status
validGraph nodes
5
FAQ
Move from snippets to a system
Build your first defensible schema graph.
Start with a real site, resolve the entities that matter, and validate connected JSON-LD before it reaches production.