squirrelscan
GitHub

An author who is only a name string is not an entity

Articles with a byline and no Person entity, or a Person with nothing to identify them by. Most of what E-E-A-T is built on needs an identifier.

Why a name is not enough

"author": "Ada Lovelace" tells a search engine that a string appeared in a byline. It does not connect that byline to the same person’s other articles, to their conference talks, to their Wikipedia entry or to the credentials that make them worth reading on the subject.

A person has to be identifiable before anything can be connected to them. A Person node with an @id, a url and a sameAs list is what makes that possible.

An Organization can be the author, and Google’s Article guidance supports that explicitly. An editorial board, a newswire or a research group is a valid author and this rule treats it as one.

This matters most on exactly the sites where it is most often missing: health, finance and legal content, where the author’s standing is part of whether the page should rank at all.

What squirrel checks

The rule runs once per crawl, reads the entity map rather than the pages, and emits a single check named entity-authors.

  • Skipped with the message No entity map was built for this audit and the reason entity-map-unavailable when the run produced no map. This is not the same as a site with no structured data, and the rule refuses to conflate them: passing here would assert it had checked something it never looked at.
  • Reports at info with the message This site declares no JSON-LD entities on any crawled page when the map exists and is empty.
  • Skipped with the message This site declares no articles and no people and the reason no-authorship-to-describe when there is no authorship to describe. A brochure site is not missing anything.
  • Warns with the message N articles are declared with no Person entity anywhere on the site when articles exist and no Person node does.
  • Passes with the message All N Person entities carry a url or sameAs.
  • Warns with the message N of N Person entities have no url and no sameAs, plus (+N more people) when more matched than are listed.

A Person counts as identified when it carries a non-empty url or at least one sameAs entry. Either is enough: a link to an author page on your own site is a real identifier even without external profiles.

Article, NewsArticle, BlogPosting, TechArticle and ScholarlyArticle all count as articles here.

Findings are capped at 10 items, and the count in the message is always the true total rather than the capped length. Run squirrel entities -f json and read the entities key for the full list.

How to fix it

Declare each author once, with everything that identifies them:

{
  "@type": "Person",
  "@id": "https://example.com/authors/ada#person",
  "name": "Ada Lovelace",
  "url": "https://example.com/authors/ada",
  "sameAs": [
    "https://en.wikipedia.org/wiki/Ada_Lovelace",
    "https://www.linkedin.com/in/example"
  ],
  "jobTitle": "Principal Engineer"
}

Then reference it from every article by "author": { "@id": "https://example.com/authors/ada#person" } rather than repeating the name. An author page on your own site is the easiest url to provide and is worth having regardless. See fixing structured data identity.

Rule IDschema/entity-authors
CategoryStructured Data
ScopeSite-wide
Severitywarning
Weight4/10

Enable / disable

Disable this rule

[rules]
disable = ["schema/entity-authors"]

Disable all Structured Data rules

[rules]
disable = ["schema/*"]

Enable only this rule

[rules]
enable = ["schema/entity-authors"]

enable replaces the default ["*"], so this is the only rule selected. Leave disable out: a rule that matches any disable pattern is skipped even when enable names it. Only an enabled setting under a rule’s own [rule_options] table overrides both lists.

Entity findings are site-wide and ship in every audit, next to the per-page structured data rules. See Fix SEO issues with AI for how an agent works through a report.

References

Check your site

Run squirrel audit https://example.com, then squirrel entities to see the graph the finding came from. Signed-out local audits need no account and cost nothing. Signed-in audits spend credits.

Type to search…

↑↓ navigate↵ openesc close