---
title: "ProfilePage Schema"
description: "Add Schema.org ProfilePage structured data to your Sanity-powered site with sanity-plugin-seofields. Identify author bios, creator pages, and member profiles for Google."
canonical: https://sanity-plugin-seofields.thehardik.in/docs/schema-org/profile-page
---

# ProfilePage

The ProfilePage schema type identifies a page that represents a single person or organization — author bios, creator channels, employee directories, and community member pages. It powers Google&apos;s Profile rich results and bolsters E-E-A-T signals across your site.

## About ProfilePage

The most important field is mainEntity — it tells Google &quot;this page is about this person/organization&quot;. Use it together with a fully populated  Person  block (with sameAs pointing to LinkedIn, GitHub, or verified social profiles) so Google can build an authoritative knowledge panel for your authors. ProfilePage is also a strong signal for E-E-A-T evaluations.

## Fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | Yes | Title of the profile page. |
| `dateCreated` | datetime | No | When this profile page was created. |
| `dateModified` | datetime | No | When this profile page was last modified. |
| `mainEntity.name` | string | Yes | Full name of the person who is the subject of this profile page. |
| `mainEntity.url` | string | No | Website URL of the person. |
| `mainEntity.image` | string | No | Profile image URL of the person. |
| `mainEntity.description` | string | No | Bio or description of the person. |
| `mainEntity.jobTitle` | string | No | Job title of the person. |
| `mainEntity.sameAs` | string | No | Social media URL (LinkedIn, Twitter, etc.). |

## Plugin Registration

```typescript
import { defineConfig } from 'sanity'
import { schemaOrgProfilePagePlugin } from 'sanity-plugin-seofields/schema'

export default defineConfig({
  plugins: [
    schemaOrgProfilePagePlugin(),
  ],
})
```

## Schema Usage

Add the `schemaOrgProfilePage` field to any document schema:

```typescript
import { defineField, defineType } from 'sanity'

export default defineType({
  name: 'authorPage',
  title: 'Author Page',
  type: 'document',
  fields: [
    defineField({
      name: 'schemaOrgProfilePage',
      title: 'ProfilePage Schema',
      type: 'schemaOrgProfilePage',
    }),
  ],
})
```

## GROQ Query

```javascript
*[_type == "authorPage"][0]{
  schemaOrgProfilePage {
    name,
    dateCreated,
    dateModified,
    mainEntity {
      name,
      url,
      image,
      description,
      jobTitle,
      sameAs
    }
  }
}
```

## Next.js Component

```tsx
import { ProfilePageSchema } from 'sanity-plugin-seofields/schema/next'

export default function Page({ data }) {
  return <ProfilePageSchema data={data.schemaOrgProfilePage} />
}
```

## JSON-LD Output

```json
{
  "@context": "https://schema.org",
  "@type": "ProfilePage",
  "name": "Jane Doe — Developer Profile",
  "dateCreated": "2024-01-01T00:00:00Z",
  "dateModified": "2025-01-15T00:00:00Z",
  "mainEntity": {
    "@type": "Person",
    "name": "Jane Doe",
    "url": "https://janedoe.dev",
    "image": "https://example.com/jane-photo.jpg",
    "description": "Full-stack developer specializing in React and Node.js.",
    "jobTitle": "Senior Software Engineer",
    "sameAs": "https://linkedin.com/in/janedoe"
  }
}
```
