No Person schema on an author profile
What is this issue?
This issue reports a Person schema block your page already declares that is
missing name — the only property this check requires. It does not report a page
that has no Person schema at all.
What this issue is not: it does not guess that an /author/, /team/ or /about/
page, or one showing a byline or bio, ought to declare Person schema. A page with
none declared is never reported. Recommended enrichments — jobTitle, worksFor,
sameAs, knowsAbout, @id — are good practice for E-E-A-T, but are not checked by
this issue.
Why it matters
Person schema is critical for E-E-A-T and content attribution:
- E-E-A-T signals: Creates a machine-readable chain: article → written by → person → works for → organization
- Author attribution: Enables proper attribution of content to specific authors
- Rich results: Author information can appear in article rich results
- AI search readiness: AI engines use Person schema to understand author expertise and authority
- Entity linking: Using
@idenables cross-page entity linking between articles and author profiles - Social proof: Links to LinkedIn and other professional profiles via
sameAsbuild credibility
Resolving this issue improves your SEO health score by strengthening E-E-A-T signals and ensuring proper content attribution.
How to fix it
If this issue was raised, your page already declares a Person with no name — that
is the only property this check requires; everything else below is recommended
enrichment for E-E-A-T, not something PixyScan verifies. The steps below are for a
page that declares no Person schema yet: worthwhile to add, and never reported as a
defect while absent.
Create author profile pages: Create dedicated pages for each author at URLs like
/author/nameor/team/member-nameAdd Person JSON-LD structured data to author profile pages:
{ "@context": "https://schema.org", "@type": "Person", "@id": "https://www.example.com/author/jane-smith", "name": "Jane Smith", "jobTitle": "Senior SEO Analyst", "worksFor": { "@type": "Organization", "name": "Example Corp" }, "knowsAbout": ["SEO", "Structured Data", "Technical SEO"], "sameAs": [ "https://linkedin.com/in/janesmith", "https://twitter.com/janesmith" ] }Include recommended properties:
name: Author's full namejobTitle: Professional titleworksFor: Organization the author works for (link to Organization schema)sameAs: Array of URLs to social profiles (LinkedIn, Twitter, etc.)knowsAbout: Array of topics/expertise areas@id: Unique identifier for entity linking (use author profile URL)
Link from Article schema: In your Article schema, reference the Person entity:
"author": { "@type": "Person", "@id": "https://www.example.com/author/jane-smith" }Validate with Google's Rich Results Test
Examples
Example 1: No Schema Declared — Not This Issue
<!-- Author page with a visible bio, but no Person schema -->
<html>
<head>
<title>Jane Smith - Author</title>
</head>
<body>
<h1>Jane Smith</h1>
<p>Senior SEO Analyst at Example Corp</p>
</body>
</html>Nothing is reported, however clearly the page profiles a person.
Example 2: A Minimal Person Schema (passes)
{
"@context": "https://schema.org",
"@type": "Person",
"name": "John Doe",
"jobTitle": "Content Writer"
}name is present, so this passes. No @id, worksFor or sameAs are required —
this check verifies only that a declared Person has a name. Adding those
properties is good practice for E-E-A-T (see How to fix it), but their absence is
not reported.
Example 3: Person Schema Missing name (fails)
Problematic state:
{
"@context": "https://schema.org",
"@type": "Person",
"jobTitle": "Content Writer"
}Reported: name missing.
Corrected state:
{
"@context": "https://schema.org",
"@type": "Person",
"name": "John Doe",
"jobTitle": "Content Writer"
}Example 4: A Fully Enriched Person Schema (passes, and recommended)
{
"@context": "https://schema.org",
"@type": "Person",
"@id": "https://www.example.com/author/jane-smith",
"name": "Jane Smith",
"jobTitle": "Senior SEO Analyst",
"worksFor": { "@type": "Organization", "name": "Example Corp" },
"knowsAbout": ["SEO", "Structured Data", "Technical SEO"],
"sameAs": ["https://linkedin.com/in/janesmith", "https://twitter.com/janesmith"]
}How PixyScan detects this
Read the declared structured data: every JSON-LD block is parsed, and
@graphwrappers are flattened.Select declared
Personentities: any schema block whose@typeisPerson. A page that declares none is not examined — this check does not infer an author or team page from its URL (/author/,/team/) or from a visible byline.Check the required property: a declared
Personmust have aname.This is reported when: the page declares a
Personschema missingname. A page with a visible author bio or team profile and noPersonschema at all is never reported. Properties such asjobTitle,worksFor,sameAsandknowsAboutare not required and are not checked today.
What we store
Storage Level
Page Level — This issue is evaluated for each individual URL that contains structured data.
Database Table / Prisma Model
PageStructuredData
Stored Fields
| Field | Type | Description |
|---|---|---|
| schemaType | SchemaType | The type of schema (e.g., Organization, Person) |
| schemaFormat | SchemaFormat | The format of the schema (JSON-LD, Microdata, RDFa) |
| schemaIdentifier | String? | Unique identifier for the schema |
| rawJson | Json? | The raw JSON-LD or structured data content |
| schemaErrors | Json? | Array of validation errors found in the schema |
| isValidSchema | Boolean? | Whether the schema is valid according to validation |
| missingFields | Json? | Reserved for future use — the crawler always writes null here today; no check currently populates it |
Detection Dependencies
- The following data sources are required to evaluate this issue:
- HTML Document — The crawler parses the HTML to find structured data (JSON-LD, Microdata, RDFa)
- Structured Data Validation — The extracted schema is validated against Schema.org definitions
- Schema Parser — JSON-LD scripts, Microdata attributes, and RDFa markup are parsed