XooCode(){

ProfilePage

ProfilePage is a direct WebPage subtype for pages whose subject is a single Person or Organization. Unlike most WebPage subtypes, ProfilePage has a dedicated Google rich result (launched 2022) that surfaces author, byline, and publication metadata on news and blog profile pages.

Populate:

  • mainEntity: the Person (or Organization) the profile describes.
  • dateCreated, dateModified: when the profile was created and last updated.
  • On the Person, populate name, alternateName (display handle), identifier (site-internal user ID), interactionStatistic (follower counts), agentInteractionStatistic (post counts).

Full example of schema.org/ProfilePage json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/ProfilePage
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProfilePage",
  "@id": "https://xoocode.com/authors/priya-chen#page",
  "name": "Priya Chen — Xoo Code Engineering",
  "url": "https://xoocode.com/authors/priya-chen",
  "dateCreated": "2023-07-15T10:00:00-04:00",
  "dateModified": "2026-04-01T09:30:00-04:00",
  "mainEntity": {
    "@type": "Person",
    "@id": "https://xoocode.com/authors/priya-chen#person",
    "name": "Priya Chen",
    "alternateName": "priyac",
    "identifier": "author-00042",
    "description": "Staff engineer at Xoo Code. Writes about structured data, TypeScript, and humane web fundamentals.",
    "image": "https://xoocode.com/avatars/priya-chen.jpg",
    "sameAs": ["https://github.com/priyac", "https://mastodon.social/@priyac"],
    "interactionStatistic": [
      { "@type": "InteractionCounter", "interactionType": "https://schema.org/FollowAction", "userInteractionCount": 2840 }
    ],
    "agentInteractionStatistic": [
      { "@type": "InteractionCounter", "interactionType": "https://schema.org/WriteAction", "userInteractionCount": 47 }
    ]
  }
}
</script>

Minimal valid version

The smallest markup that still produces a valid ProfilePage entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/ProfilePage (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProfilePage",
  "name": "Priya Chen",
  "mainEntity": { "@type": "Person", "name": "Priya Chen" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

Common ProfilePage mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Missing interactionStatistic / agentInteractionStatistic

    Wrong
    ProfilePage with only basic Person data
    Right
    Follower counts via interactionStatistic; post counts via agentInteractionStatistic

    Google's Profile Page rich result displays both counters; omitting them leaves the feature under-populated.

  2. 02

    ProfilePage on a business About page

    Wrong
    ProfilePage for the 'About' page of a company
    Right
    AboutPage for company About; ProfilePage for individual profiles

    Google's Profile rich result targets individual authors and public figures, not corporate About pages.

About the example data

Priya Chen's author profile on the Xoo Code Engineering blog.

Comments

Loading comments...

Leave a comment