Skip to content

Person Schema

Person schema is structured data that identifies a named human, their job title, their credentials and the profiles that corroborate them. In a crawl of 464 accounting firm websites, 5.8% carried it, meaning 94.2% marked up no expert at all, usually while describing that expert in prose on the same page.

What we measured

Person schema appeared on 5.8% of reachable sites, 95% Wilson confidence interval 4.0 to 8.3, so 94.2% marked up no expert at all. Any identity schema at all reached 37.9%, 95% CI 33.6 to 42.4. This was a pre-registered hypothesis and the result supported it. In the broader business-website crawl the Person schema rate was 11%, 95% CI 9 to 12, over a reachable denominator of 1,261, so the accounting vertical sits below an already low baseline.

Source: State of CPA Firm Websites 2026, confirmatory crawl 2026-07-11 across 68 metropolitan areas, same crawler as the AI-Readiness study so the two are directly comparable., n=464.

Sample framing: 556 firms crawled, 464 reachable, and every percentage uses the reachable denominator. United States accounting firms. The study measures structured-data legibility, not firm quality, and is descriptive only.

How to re-derive it: Figures reproduce from the published dataset. Parent study pre-registration DOI 10.17605/OSF.IO/2Q5ER.

Why it matters

  • An assistant asked to recommend a professional has to answer who this person is and why anyone should trust them. Prose answers that for a reader. Markup answers it for everything else.
  • The information is nearly always already there. The certifications, the years in practice, the bio. This is a translation problem, not a content problem.
  • The sameAs property is the part that does the work. It connects the name on your page to profiles that already exist elsewhere, which is what turns a claim into a corroborated one.
  • At 5.8%, doing it at all is differentiating. That will not last, but it is true now.

The failure

The failure: a credentialed expert, invisible as data
<section>
  <h2>Meet Dana Whitfield, CPA</h2>
  <p>
    Dana has led our tax practice since 2011 and
    is licensed in New Mexico and Texas. She
    speaks regularly at the state society's
    annual conference.
  </p>
</section>

A real person, a real credential, two real licenses. None of it addressable. A machine reading this has a string that looks like a name and no way to confirm any of the rest. This is the 94.2% case, and it is what most bio pages look like.

The fix

The fix: the same bio, as Person schema
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Dana Whitfield",
  "jobTitle": "Tax Practice Lead",
  "worksFor": {
    "@type": "AccountingService",
    "name": "Example Accounting"
  },
  "hasCredential": {
    "@type": "EducationalOccupationalCredential",
    "credentialCategory": "CPA",
    "recognizedBy": {
      "@type": "Organization",
      "name": "New Mexico Public Accountancy Board"
    }
  },
  "sameAs": [
    "https://www.linkedin.com/in/example",
    "https://example.com/team/dana-whitfield"
  ]
}
</script>

Every property here restates something already visible in the bio. sameAs is the one that matters most: it points at profiles that exist independently of you, which is the difference between asserting a credential and letting it be checked.

Verify the fix

Changing the code is not the same as fixing the problem. Confirm it.

  1. Run the page through Google's Rich Results Test. If it does not parse, the markup does nothing at all, and a silent parse failure is the most common outcome of hand-written JSON-LD.
  2. Run it through the schema.org validator as well. It reports property-level problems that Google's test passes over.
  3. Open every sameAs URL. A dead or wrong profile link is worse than no sameAs, because it points corroboration at something that does not corroborate.
  4. Confirm the name, title and credential in the markup match the visible text exactly. A mismatch is the thing structured data guidelines specifically prohibit.
  5. Check that the Person is connected to the organization through worksFor or employee. An unattached Person floating on a page is a weaker signal than a connected one.

Exceptions and misconceptions

Person schema is not a ranking factor

It does not move you up in results. It makes an identity legible. Anyone selling it as a ranking lever is selling something else.

Only mark up people who are actually on the page

Schema describes visible content. A Person block for somebody with no bio on the page is markup without a subject, and it is the kind of thing that gets structured data ignored site-wide.

Do not invent credentials or recognizing bodies

hasCredential and recognizedBy are checkable. If the licensing board is not the one that issued it, do not name it. An unverifiable claim stated as data is worse than the same claim in prose, because data is what gets trusted automatically.

One good Person beats twelve thin ones

A single properly connected expert with working sameAs links does more than a staff directory of bare names. Volume is not the variable here.

Watch it

Primary sources

The measurement above comes from our study, State of AI-Readiness on Business Websites 2026.

Related lessons

Check your own site for this

DeepAudit AI renders your page in a real browser and reports the affected code, so you can see exactly where each finding came from. Free, no signup.

Run a free audit

Last reviewed 2026-09-18. Checks covered: Structured Data for AI, JSON-LD.