I have multiple web pages in my website; "about" page (e.g.: http://example.com/about/) and "blog" pages (e.g.: http//:example.com/blog/1/).

In the "about" page, I have defined authors of the website. Each author has given a proper @id attribute.

Articles of the blog pages are written by someone from that author list in the "about" page. When I'm specifying the author of an article in a "blog" page, what should I do?

"author": {
    "@type": "Person",
    "@id": "http://example.com/about/#user1"
  1. Specify the author with only the above information (is @type really needed here?)
  2. Specify all the necessary attributes of the author (duplicate the item from "about" page)
  • 1
    There is no need to use schema for authorship anymore, Google isn't giving a rich snippet based on authorship now. Commented May 5, 2019 at 21:20
  • Also I think that the way it was used by Google, you had to have one page per author. Commented May 6, 2019 at 0:25
  • @StephenOstermiller, @AlexisWilke, in a case where there are book pages and a library page where I have links to those books, what should I do? Use only @id for a book in the library page?
    – Ramesh-X
    Commented May 6, 2019 at 2:29

1 Answer 1


Theoretically, it’s sufficient to specify only the @id:

"author": {"@id": "http://example.com/about/#bob"}

If a consumer already knows the entity with this @id URI (e.g., after having crawled the "about" page), they don’t need to see its properties here again.
If a consumer doesn’t already know the entity with this URI, they have the chance to learn more about it by visiting the URL and looking for an entity with the @id URI.

In practice, however, consumers don’t necessarily 1) remember which entities they found, and/or 2) visit referenced URLs. For example, if the consumer is a search engine, they might only care about what’s on the current page (e.g., because they want to display a rich result for it), ignoring every reference to other pages for this context.

So, it can be good idea to provide more data about a referenced entity.

If you know that a consumer expects certain properties on the current page, you should of course provide (at least) these. For example, Google’s Article rich result for AMP pages requires the type and name of an author.

If you don’t know what possible consumers expect, I think it makes sense to always provide at least the URI (@id) and type (@type) as well as the Schema.org properties name and url.

"author": {
  "@type": "Person",
  "@id": "http://example.com/about/#bob",
  "url": "http://example.com/about/#author-bob",
  "name": "Bob"

(@id and url have different values, because @id represents the actual person, while url represents the page (or page section) about this person.)

  • Thank you for the answer.. nice explanation. I have seen your answers in here and stackoverflow. Those are nice and well structured like a tutorial. Thank you again!!
    – Ramesh-X
    Commented May 6, 2019 at 3:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.