Schema.org Structured Data
Add structured Schema.org data to Sanity content with typed Studio fields and Next.js JSON-LD components. Use Article, Product, FAQPage, WebSite, Organization, BreadcrumbList, and 30+ more types to describe content clearly for rich results, knowledge graphs, and AI answer surfaces.
Why Schema.org matters in the AI era
Schema.org structured data gives search engines and AI answer systems clearer entity, relationship, and page-type signals. It does not guarantee rankings or AI citations, but it makes your content easier to parse, validate, and reference when the visible page content matches the markup.
Quick Start
Register all 38 types at once with the combined plugin:
import { defineConfig } from 'sanity'
import seofields from 'sanity-plugin-seofields'
import { schemaOrg } from 'sanity-plugin-seofields/schema'
export default defineConfig({
// ...
plugins: [
seofields(), // SEO fields + dashboard
schemaOrg(), // all 38 Schema.org types
],
})Individual Plugins
Or register only the types you need:
import { defineConfig } from 'sanity'
import {
schemaOrgWebsitePlugin,
schemaOrgOrganizationPlugin,
schemaOrgArticlePlugin,
schemaOrgFAQPagePlugin,
} from 'sanity-plugin-seofields/schema'
export default defineConfig({
// ...
plugins: [
schemaOrgWebsitePlugin(),
schemaOrgOrganizationPlugin(),
schemaOrgArticlePlugin(),
schemaOrgFAQPagePlugin(),
],
})Schema Usage
When using schemaOrg(), a combined schemaOrg array field is registered that can hold multiple Schema.org types. Add it to any document schema:
import { defineField, defineType } from 'sanity'
export default defineType({
name: 'page',
title: 'Page',
type: 'document',
fields: [
// ... your other fields
defineField({
name: 'schemaOrg',
title: 'Schema.org Structured Data',
type: 'schemaOrg',
}),
],
})Or use individual types directly:
defineField({
name: 'schemaOrgWebsite',
title: 'Website Schema',
type: 'schemaOrgWebsite',
}),
defineField({
name: 'schemaOrgOrganization',
title: 'Organization Schema',
type: 'schemaOrgOrganization',
}),Rendering in Next.js
Each type has a React component that renders a valid <script type="application/ld+json"> tag:
import {
WebsiteSchema,
OrganizationSchema,
ArticleSchema,
} from 'sanity-plugin-seofields/schema/next'
export default function Layout({ data }) {
return (
<>
<WebsiteSchema data={data.website} />
<OrganizationSchema data={data.organization} />
<ArticleSchema data={data.article} />
{/* ... */}
</>
)
}Combined Schema Array
When using schemaOrg(), a schemaOrg array field is registered that can hold multiple types. Render all of them with one component:
import { SchemaOrgScripts } from 'sanity-plugin-seofields/schema/next'
// In your page component
<SchemaOrgScripts items={data.schemaOrg} />All 38 Schema.org Types
Grouped by purpose. Click any type for fields, JSON-LD output, and usage examples.
Content & Articles
10 typesPages, editorial, and written content.
WebsiteRepresents an entire website — name, URL, publisher, language.
WebPageAn individual web page — name, URL, description, parent site.
ArticleA news, scholarly, or blog article with author and publisher.
BlogPostingA blog post — headline, author, date, main entity page.
NewsArticleA news article — headline, dateline, section, publisher.
FAQPageFrequently Asked Questions — eligible for rich results.
HowToStep-by-step instructions — eligible for rich results.
RecipeA recipe — ingredients, steps, nutrition, cook time.
SocialMediaPostingA social post — author, sharedContent, datePublished.
ProfilePageA profile page — main entity (Person or Organization).
Commerce & Offers
8 typesProducts, pricing, ratings, and reviews.
ProductA product — name, brand, image, description.
OfferA product offer — price, currency, availability.
AggregateRatingAverage rating based on multiple reviews.
ReviewAn individual review — author, rating, body.
BrandA brand entity — name identification.
ServiceA service — provider, area served, offers.
RestaurantA restaurant — cuisine, price range, menu, hours.
BookA book — author, ISBN, format, edition.
Organization & Place
12 typesPeople, businesses, locations, and events.
PersonA person — name, job title, social profiles, employer.
OrganizationA company or organization — logo, social links, contact point.
LocalBusinessA local business — address, phone, opening hours.
ContactPointContact info — type, email, phone, languages.
PostalAddressA structured postal/mailing address.
LegalServiceA legal-services business — practice areas, hours.
JobPostingA job listing — title, employer, location, salary.
EventAn event — date, location, organizer.
PlaceA place or venue — name, address, geo.
CountryA country — name, identifier, geo.
SoftwareApplicationA software app — category, OS, offers.
WebApplicationA web-based application — URL, category.
Media & More
8 typesImages, video, music, navigation, and education.
ImageObjectAn image — URL, dimensions, caption.
VideoObjectA video — thumbnail, upload date, content URL.
MusicRecordingA song or recording — artist, duration, album.
MusicAlbumA music album — artist, tracks, release date.
MovieA film — director, cast, duration, release.
BreadcrumbListNavigation breadcrumbs — improves search appearance.
ItemListAn ordered list — supports rich list results.
CourseAn educational course — name, provider, description.
Import Paths
sanity-plugin-seofields/schemaSanity Studio plugins, schema factories, data types, and generator utilities.
sanity-plugin-seofields/schema/nextReact components that render <script type="application/ld+json"> tags.
sanity-plugin-seofields/nextAll Schema.org components + SEO meta helpers (buildSeoMeta, SeoMetaTags).
Last updated: May 27, 2026. Tested with: Sanity Studio v3, v4, and v5.
Was this page helpful?