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 is essential for brand identity in search. Google uses this data to populate knowledge panels with your logo, official social profiles, and contact information. The sameAs property links your brand across platforms, strengthening your entity identity in Google's Knowledge Graph. This is a foundational schema type that every business website should implement.

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.
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).

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 theschemaOrgOrganization 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,
    sameAs,
    contactPoint {
      contactType,
      email,
      availableLanguage
    }
  }
}

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 Inc.",
  "url": "https://acme.com",
  "logo": "https://acme.com/logo.png",
  "description": "Acme Inc. builds tools for modern web developers.",
  "sameAs": [
    "https://twitter.com/acme",
    "https://linkedin.com/company/acme",
    "https://github.com/acme"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "support@acme.com",
    "availableLanguage": ["English"]
  }
}

Was this page helpful?