Person Schema

No Comments
Person schema

Element Code: RI-008

TL;DR: Person schema is structured data that identifies the human behind a byline: name, role, credentials, and links to profiles proving they exist. It will not directly move rankings and there is no rich result badge for it, but it gives Google a machine-readable author entity to attach your content to, which is the plumbing underneath E-E-A-T.
Element code
RI-008
Category
Structured data
Applies to
Author pages, bylines
Key properties
name, url, sameAs, @id
Rich result
None; entity signal

Let me set expectations before we start, because Person schema attracts more magical thinking than almost any other markup. There is no E-E-A-T badge. Google does not hand out a ranking bonus because you declared someone an expert in JSON-LD. What Person schema actually does is quieter and, done properly across a whole site, genuinely useful: it turns a byline string into an unambiguous entity that machines can recognize, connect, and trust across every article that entity touches.

What Person schema does

The schema.org Person type describes an individual: their name, job title, employer, credentials, photo, and the external profiles that corroborate all of it. On a publishing site it shows up in two places: nested inside an Article's author property, and as the main entity of the author's profile page.

The job it performs is disambiguation. "John Smith" is a string; thousands of people share it. A Person object with an @id, a jobTitle, a worksFor organization, and sameAs links to a real LinkedIn profile is a specific human being. Search engines build entity graphs, and this markup is how you hand them the edges instead of making them infer everything from prose. Google's own Article structured data documentation asks for exactly this: an author name plus a url or profile links that identify who the author is.

The author entity graph you are building

sameAs worksFor author of author of knowsAbout Person @id: /author/jane/#person External profiles LinkedIn, X, industry bios Organization employer with its own @id Article A author references #person Article B same @id, same entity Topics areas of demonstrated expertise

The @id is the piece most implementations miss. Give the Person one stable identifier, conventionally the author page URL plus a fragment like #person, and reference that same identifier from every article the person writes. Now fifty articles do not carry fifty disconnected author blobs; they all point at one entity whose home is the author page. That consistency is the entire trick.

Why this matters, stated honestly

Google's quality rater guidelines lean hard on understanding who created content, especially for YMYL topics where the author's qualifications are part of the quality judgment. Person schema does not manufacture those qualifications, and Google has been clear that markup is a way to communicate information, not a way to rank better. What it does is remove ambiguity from signals Google is already trying to collect. If your medical reviewer really is a board-certified physician with a professional footprint, the markup makes that connection explicit and cheap to verify instead of leaving it to inference.

The second-order benefits are real too: correctly attributed authors in Google's various author-surfacing features, cleaner knowledge panel associations for writers who have one, and a defensible answer when someone asks how the site demonstrates who is behind its content. My opinion after years of audits: on a multi-author site with genuine expertise, this markup is cheap and worth doing well. On a site with fake personas, no markup will save you, and I have watched exposed fake-author schemes take entire content operations down with them.

Property reference

PropertyPriorityWhat to provide
nameCoreExactly the name shown in the visible byline. Mismatches undermine the whole point.
@idCoreOne stable identifier, e.g. author page URL + #person, reused everywhere.
urlCoreThe author's profile page on your site.
sameAsCoreLive, genuinely maintained external profiles: LinkedIn, X, Scholar, professional directories.
jobTitleRecommendedReal current title, matching what the bio says.
worksForRecommendedAn Organization object, ideally referencing your site's Organization @id.
knowsAboutOptionalA handful of topics the person demonstrably covers. Not forty.
image, descriptionRecommendedA real headshot and a short factual bio, both matching the visible page.
alumniOf, hasCredentialOptionalWorth adding for YMYL reviewers where credentials are the argument.

How to detect the gap

Crawl the site with Screaming Frog with structured data extraction enabled and look at two things. First, author profile pages: do they carry a Person object at all, or are they bare archive templates? Second, article markup: is the author property a full Person object with a url, or just "author": "Jane Smith" as a naked string? The naked string is what most themes and plugins output by default, and it throws away the entity connection entirely.

Spot-check with the Schema Markup Validator, since Person is not a rich result type and the Rich Results Test will mostly shrug at it. And do the human check: click a byline. If it leads nowhere, or to a page with no bio, no photo, and no profile links, the markup gap is the least of the problems; there is no author identity to mark up yet.

How to fix it, step by step

  1. Build real author pages first. Photo, bio, credentials, topics covered, links to profiles. The markup describes the page; it cannot substitute for it.
  2. Add Person markup to each author page, ideally as the main entity of a ProfilePage, which is a structured data type Google documents specifically for this. Assign the stable @id here.
  3. Reference that @id from every article. The Article's author property should resolve to the same entity, either by @id reference or by repeating the Person with the identical @id.
  4. Populate sameAs with profiles that are alive. Three current, active links beat eight dead ones. Delete anything that 404s.
  5. Align the strings. Byline, author page heading, and schema name should match character for character. "Dr. Jane Smith" in one place and "Jane Smith, MD" in another forces the disambiguation work you were trying to eliminate.
  6. Validate and recrawl. Confirm the entity graph resolves: one Person, one @id, many articles pointing at it.
DO

  • Mark up real people with real, verifiable footprints
  • Use one stable @id per author, referenced from every article
  • Match schema names to visible bylines exactly
  • Point sameAs at live, maintained profiles
  • Add credentials markup for YMYL reviewers who actually hold them
DON'T

  • Invent personas with stock photos and fabricated credentials
  • Leave article authors as plain text strings when a Person object is available
  • Stuff knowsAbout with every topic on the site
  • Link sameAs to abandoned or dead profiles
  • Expect a rankings jump; that is not what this markup is for

What good looks like

Every author has a substantive profile page carrying Person markup with a stable @id. Every article's author property resolves to that entity instead of a loose string. The sameAs profiles are live and plausibly belong to the same human. Names match everywhere. Validators come back clean. Most importantly, a skeptical stranger, or a quality rater, could land on any article, click the byline, and within thirty seconds understand exactly who wrote it and why they are qualified to. The schema is just that experience made machine-readable.

FAQ

Does Person schema improve E-E-A-T and rankings?
Not directly. E-E-A-T is not a score you inject via markup, and Google has said structured data communicates information rather than boosting rank. Person schema makes real expertise easier for machines to verify and attribute. If the expertise is not real, the markup changes nothing.
What is ProfilePage and do I need it?
ProfilePage is a Google-documented structured data type for pages about a single person or account, with the Person as its main entity. It is the cleanest way to declare an author page as the canonical home of the author entity, so yes, use it there.
Our writers use pseudonyms. Can we still use Person schema?
Pseudonymous authorship is a legitimate editorial choice and technically the markup works the same way. But be consistent: one pseudonym, one entity, one @id, and do not fabricate credentials or a fake human footprint around it. Claiming a pen name is a licensed professional is where legitimate becomes deceptive.
Should the author ever be an Organization instead?
Yes, for genuinely institutional content like documentation, product updates, or unbylined news briefs, Organization is the honest choice and Google's Article docs support it. Use Person when a specific human's judgment and expertise are the point of the piece.
Want your entity graph checked end to end?

Author markup, Organization identity, and how they connect across templates are all part of the Advanced SEO Audit. I will show you exactly where the graph breaks and how to wire it back together.

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog