Skip to main content
seofields
docs

Person

The Person schema type represents an individual person. It enables search engines to display rich information about team members, authors, founders, and other individuals in knowledge panels and search results.

About Person

Person schema is critical for establishing author authority and E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) signals. Google uses Person markup to connect authors to their content, display knowledge panels, and verify expertise. The sameAs property links a person's identity across platforms, helping search engines build a comprehensive entity profile. This is especially valuable for content creators, thought leaders, and professionals.

Fields

FieldTypeRequiredDescription
namestringThe full name of the person.
jobTitlestringThe person's job title or role (e.g. Software Engineer, CEO).
urlstringThe person's personal website or profile URL.
imageUrlstringURL of the person's profile photo or headshot. Maps to the image property in JSON-LD output.
sameAsstringURLs of social media profiles and other authoritative pages about this person.
worksFor.namestringThe name of the organization the person works for.
emailstringEmail address of the person.
faxNumberstringFax number of the person.
telephonestringPhone number of the person.
descriptionstringA short bio or description of the person.
genderstringGender of the person.
birthDatedateDate of birth of the person.
address.streetAddressstringStreet address of the person.
address.addressLocalitystringCity of the person's address.
address.addressCountrystringCountry code of the person's address, e.g. "US".

Plugin Registration

sanity.config.ts
import { defineConfig } from 'sanity'
import { schemaOrgPersonPlugin } from 'sanity-plugin-seofields/schema'

export default defineConfig({
  // ... your sanity config
  plugins: [
    schemaOrgPersonPlugin(),
  ],
})

Schema Usage

Add the schemaOrgPerson 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: 'schemaOrgPerson',
      title: 'Person Schema',
      type: 'schemaOrgPerson',
    }),
  ],
})

GROQ Query

GROQ query
*[_type == "yourDocument"][0]{
  schemaOrgPerson {
    name,
    jobTitle,
    url,
    imageUrl,
    sameAs,
    worksFor {
      name
    },
    email,
    faxNumber,
    telephone,
    description,
    gender,
    birthDate,
    address {
      streetAddress,
      addressLocality,
      addressCountry
    }
  }
}

Next.js Component

app/layout.tsx
import { PersonSchema } from 'sanity-plugin-seofields/schema/next'

export default function Layout({ data }) {
  return <PersonSchema data={data.schemaOrgPerson} />
}

JSON-LD Output

Generated JSON-LD
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Jane Doe",
  "jobTitle": "Senior Software Engineer",
  "url": "https://janedoe.dev",
  "image": "https://example.com/jane-photo.jpg",
  "sameAs": "https://linkedin.com/in/janedoe",
  "worksFor": {
    "@type": "Organization",
    "name": "Acme Corp"
  },
  "email": "jane@janedoe.dev",
  "faxNumber": "+1-555-123-4567",
  "telephone": "+1-555-987-6543",
  "description": "Full-stack developer specializing in React and Node.js with 10 years of experience.",
  "gender": "Female",
  "birthDate": "1990-06-15",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "San Francisco",
    "addressCountry": "US"
  }
}

Last updated: May 27, 2026. Tested with: Sanity Studio v3, v4, and v5.

Was this page helpful?