
Element Code: RI-008
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
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
| Property | Priority | What to provide |
|---|---|---|
name | Core | Exactly the name shown in the visible byline. Mismatches undermine the whole point. |
@id | Core | One stable identifier, e.g. author page URL + #person, reused everywhere. |
url | Core | The author's profile page on your site. |
sameAs | Core | Live, genuinely maintained external profiles: LinkedIn, X, Scholar, professional directories. |
jobTitle | Recommended | Real current title, matching what the bio says. |
worksFor | Recommended | An Organization object, ideally referencing your site's Organization @id. |
knowsAbout | Optional | A handful of topics the person demonstrably covers. Not forty. |
image, description | Recommended | A real headshot and a short factual bio, both matching the visible page. |
alumniOf, hasCredential | Optional | Worth 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
- Build real author pages first. Photo, bio, credentials, topics covered, links to profiles. The markup describes the page; it cannot substitute for it.
- 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@idhere. - Reference that @id from every article. The Article's
authorproperty should resolve to the same entity, either by @id reference or by repeating the Person with the identical @id. - Populate sameAs with profiles that are alive. Three current, active links beat eight dead ones. Delete anything that 404s.
- 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.
- Validate and recrawl. Confirm the entity graph resolves: one Person, one @id, many articles pointing at it.
- 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
- 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?
What is ProfilePage and do I need it?
Our writers use pseudonyms. Can we still use Person schema?
Should the author ever be an Organization instead?
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.







