Person identifiers are missing or conflict

In the reportAuthors have Person markup without URL or sameAs identifiers

author_person_schema_incomplete · Opportunity

Short answer

This appears when a Person in your structured data has neither a url nor a sameAs, or when Person records across at least two pages share a normalized name and profile address but use different global @id values. The matching tokens do not prove that the records describe the same real person. Google recommends a url, or sameAs, to help it understand an article author. Add a profile link where appropriate; if the records describe one person, use a consistent @id.

Severity: Notice. It is a notice: an improvement to the markup, not an error.

Why it matters

Google's guide to article structured data strongly recommends the type and url, or sameAs, properties to help Google understand who the author is, and says Google can understand both when disambiguating authors. It also says there are no required properties.

What to do

  1. Look at the finding: it shows the person's name, the pages and how each occurrence is marked up.
  2. Add a url to a page about the person, such as an author or about page, or sameAs links to their profiles.
  3. If the records describe the same person, use one consistent @id across pages; if they describe different people, correct the shared name or profile data that makes the records appear to match.

When to leave it as it is: if the person is not an author, such as a founder named in your company's markup, and you do not want a profile link for them, you can leave it.

What we read

We read the JSON-LD, microdata and RDFa of each crawled page that answered 200 with HTML, with JSON-LD expanded against the schema.org vocabulary; no link is followed. Every schema.org Person counts, not only authors, and we read its name, url, sameAs and @id.

A Person record is reported when an occurrence has no url and no sameAs; records with the same absolute @id are judged together across pages, the rest page by page. Two different @id values are reported when their records share the same normalized name and web address in url or sameAs, on at least two pages. A retained non-blank value counts as present.

A page is marked as not checked when it did not answer 200 with HTML, loads a JSON-LD context other than schema.org, or has a Person with no name or conflicting normalized names; a named Person on that page that lacks both url and sameAs is still reported, with a note. Several spellings that normalize to the same name do not by themselves block checking. A Person record judged by @id needs every crawled address read before it can have a clean result.

Example & evidence

Illustrative example — one article's author markup, not a live audit.

https://bakery.example/blog/sourdough/ contains:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "author": { "@type": "Person", "name": "Maria Baker" }
}
</script>

The person has no url and no sameAs, so the page is reported with the occurrence.

"author": {
  "@type": "Person",
  "@id": "https://bakery.example/about/maria/#person",
  "name": "Maria Baker",
  "url": "https://bakery.example/about/maria/"
}

A possible correction: a page about the author, and one @id to reuse on every article.

Confirm & check again

Check for yourself: run the page through the Rich Results Test or the Schema Markup Validator and look at each Person for url or sameAs.

Check again: Full audit — run a new audit of the site. A page-local missing-identifier finding can close when its one tracked occurrence gains url or sameAs, or when its old slot is demonstrably absent without a possible rename. A grouped global @id missing-identifier finding closes only when no current occurrence under that @id still lacks both fields, with complete cohort coverage. A prior conflict closes when every tracked occurrence still matches its old name and shared profile but now uses one global @id, or when all old slots are absent without a possible rename. A changed name or profile, or only some disappearing conflict members, may leave the result inconclusive. A grouped @id result also needs every crawled address read, so a single 404 or PDF leaves it unconfirmed.

Limits & sources

Every Person is checked, whether or not it is an author, and values are neither checked nor followed, so a sameAs of N/A counts as present. Markup added by JavaScript is not seen, and the check does not show how Google uses it.

Confidence: High because the markup is read directly from the pages.

Sources

Editorial review: 29 October 2026