Person Structured Data
Person structured data helps Google understand who people are across the web — connecting authors to their articles, linking social profiles, and powering Knowledge Panel signals.
Table of contents
- When to Use
- Quick Start
- As Article Author
- Cross-Referencing with @graph
- Interaction Statistics
- Key Fields
- Best Practices
- Common Mistakes
When to Use
- Author attribution on articles and blog posts
- Team member pages on company sites
- Speaker profiles on event pages
- Creator credits on recipes, courses, videos
Quick Start
import { createPerson } from 'schemaorg-kit';
const author = createPerson({
name: 'Dr. Sarah Kim',
url: 'https://example.com/authors/sarah',
image: 'https://example.com/photos/sarah.jpg',
jobTitle: 'Machine Learning Engineer',
worksFor: { '@type': 'Organization', name: 'Acme AI' },
sameAs: [
'https://github.com/sarahkim',
'https://www.linkedin.com/in/sarahkim',
'https://twitter.com/sarahkim_ml',
'https://en.wikipedia.org/wiki/Sarah_Kim_(engineer)',
],
});
As Article Author
The most common use of Person is as an author on Article, BlogPosting, or NewsArticle:
import { createArticle, createPerson } from 'schemaorg-kit';
const article = createArticle({
headline: 'Understanding Transformer Architecture',
datePublished: '2025-05-20',
image: 'https://example.com/img/transformers.jpg',
author: createPerson({
name: 'Dr. Sarah Kim',
url: 'https://example.com/authors/sarah',
}).toObject(),
});
Or inline as a plain object:
const article = createArticle({
headline: 'Understanding Transformer Architecture',
datePublished: '2025-05-20',
image: 'https://example.com/img/transformers.jpg',
author: { '@type': 'Person', name: 'Dr. Sarah Kim' },
});
Cross-Referencing with @graph
Use @id to reference the same Person across multiple schemas on a page:
import { createGraph, createPerson, createArticle, createProfilePage } from 'schemaorg-kit';
const graph = createGraph([
createPerson({
'@id': 'https://example.com/#sarah',
name: 'Dr. Sarah Kim',
image: 'https://example.com/photos/sarah.jpg',
sameAs: ['https://twitter.com/sarahkim_ml'],
}),
createArticle({
headline: 'Understanding Transformer Architecture',
datePublished: '2025-05-20',
image: 'https://example.com/img/transformers.jpg',
author: { '@id': 'https://example.com/#sarah' },
}),
]);
Interaction Statistics
Track a person’s engagement metrics for ProfilePage or Discussion Forum contexts:
import { createPerson, InteractionCounterSchema } from 'schemaorg-kit';
const creator = createPerson({
name: 'Alex Rivera',
url: 'https://forum.example.com/u/alexr',
interactionStatistic: [
InteractionCounterSchema.parse({
interactionType: 'https://schema.org/WriteAction',
userInteractionCount: 342,
}),
InteractionCounterSchema.parse({
interactionType: 'https://schema.org/LikeAction',
userInteractionCount: 1580,
}),
],
agentInteractionStatistic: InteractionCounterSchema.parse({
interactionType: 'https://schema.org/WriteAction',
userInteractionCount: 342,
}),
});
Key Fields
| Field | Type | Notes |
|---|---|---|
name |
string |
Full name |
jobTitle |
string? |
Job title or role |
url |
string? |
Profile/bio page URL |
image |
string \| ImageObject? |
Profile photo |
sameAs |
string \| string[]? |
Social profiles — critical for Knowledge Panel |
worksFor |
Organization? |
Current employer |
knowsAbout |
string \| string[]? |
Topics of expertise |
honorificPrefix |
string? |
Dr., Prof., Mr., etc. |
email |
string? |
Contact email |
Best Practices
- Always include
sameAs— Google uses it to verify identity and connect profiles across platforms - Link to Wikipedia when available — strongest signal for Knowledge Panel eligibility
- Use consistent
namevalues across all your structured data — don’t alternate between “Sarah Kim” and “S. Kim” - Include
image— Google may use it in author byline features
Common Mistakes
Don’t create a Person node without connecting it to something. A standalone Person has limited value. Use it as
author,director,performer,mainEntity, etc.
For maximum Google coverage, pair Person with a
ProfilePageon author bio pages, and reference the same@idin all articles by that author.