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
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✓ | The full name of the person. |
jobTitle | string | — | The person's job title or role (e.g. Software Engineer, CEO). |
url | string | — | The person's personal website or profile URL. |
imageUrl | string | — | URL of the person's profile photo or headshot. |
sameAs | array of strings | — | URLs of social media profiles and other authoritative pages about this person. |
worksFor.name | string | — | The name of the organization the person works for. |
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 theschemaOrgPerson 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
}
}
}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://janedoe.dev/headshot.jpg",
"sameAs": [
"https://twitter.com/janedoe",
"https://linkedin.com/in/janedoe",
"https://github.com/janedoe"
],
"worksFor": {
"@type": "Organization",
"name": "Acme Inc."
}
}Was this page helpful?