docs
Organization
The Organization schema type represents a company, nonprofit, school, or any other organization. It enables search engines to display your brand's logo, social profiles, and contact details in the knowledge panel.
About Organization
Organization markup gives search engines a clear entity record for your brand: name, logo, URL, contact details, and official profiles. The sameAs property links your brand across platforms and helps disambiguate the entity in knowledge graph systems. This is a useful baseline schema type for business and product websites.
Fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✓ | The official name of the organization. |
url | string | ✓ | The canonical URL of the organization's website. |
logoUrl | string | — | URL of the organization's logo image for knowledge panel display. |
description | string | — | A brief description of the organization and what it does. |
alternateName | string | — | An alias or alternate name for the organization. |
sameAs | array of strings | — | URLs of official social media profiles and other authoritative pages about the organization. |
contactPoint.contactType | string | — | The type of contact (e.g. customer support, sales, technical support). |
contactPoint.email | string | — | The contact email address for the specified contact type. |
contactPoint.availableLanguage | array of strings | — | Languages supported by this contact point (e.g. English, Spanish). |
department[].name | string | — | The name of a department within the organization. |
department[].url | string | — | URL of the department. |
department[].telephone | string | — | Phone number for the department. |
Plugin Registration
sanity.config.ts
import { defineConfig } from 'sanity'
import { schemaOrgOrganizationPlugin } from 'sanity-plugin-seofields/schema'
export default defineConfig({
// ... your sanity config
plugins: [
schemaOrgOrganizationPlugin(),
],
})Schema Usage
Add the schemaOrgOrganization field to any document schema:
schemas/page.ts
import { defineField, defineType } from 'sanity'
export default defineType({
name: 'page',
title: 'Page',
type: 'document',
fields: [
// ... your other fields
defineField({
name: 'schemaOrgOrganization',
title: 'Organization Schema',
type: 'schemaOrgOrganization',
}),
],
})GROQ Query
GROQ query
*[_type == "yourDocument"][0]{
schemaOrgOrganization {
name,
url,
logoUrl,
description,
alternateName,
sameAs,
contactPoint {
contactType,
email,
availableLanguage
},
department[] {
name,
url,
telephone
}
}
}Next.js Component
app/layout.tsx
import { OrganizationSchema } from 'sanity-plugin-seofields/schema/next'
export default function Layout({ data }) {
return <OrganizationSchema data={data.schemaOrgOrganization} />
}JSON-LD Output
Generated JSON-LD
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Acme Corporation",
"url": "https://acme.com",
"logo": "https://acme.com/logo.png",
"description": "Acme Corporation is a leading provider of innovative solutions.",
"alternateName": "Acme Corp",
"sameAs": "https://twitter.com/acmecorp",
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer support",
"email": "support@acme.com",
"availableLanguage": ["English", "Spanish"]
},
"department": [
{
"@type": "Organization",
"name": "Sales Department",
"url": "https://acme.com/sales",
"telephone": "+1-800-555-0123"
}
]
}Last updated: May 27, 2026. Tested with: Sanity Studio v3, v4, and v5.
Was this page helpful?