Skip to main content
seofields
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

FieldTypeRequiredDescription
namestringThe official name of the organization.
urlstringThe canonical URL of the organization's website.
logoUrlstringURL of the organization's logo image for knowledge panel display.
descriptionstringA brief description of the organization and what it does.
alternateNamestringAn alias or alternate name for the organization.
sameAsarray of stringsURLs of official social media profiles and other authoritative pages about the organization.
contactPoint.contactTypestringThe type of contact (e.g. customer support, sales, technical support).
contactPoint.emailstringThe contact email address for the specified contact type.
contactPoint.availableLanguagearray of stringsLanguages supported by this contact point (e.g. English, Spanish).
department[].namestringThe name of a department within the organization.
department[].urlstringURL of the department.
department[].telephonestringPhone 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?