Author schema: bylines and author pages that build E-E-A-T
·4 min read
Author schema is the author property in your Article markup, written as a Person with a clean name, a url that points to the author's page on your site, and sameAs links to their public profiles. On its own it does little. It works when three things agree. You need a visible byline on the page, an author page with a real bio, and markup that names the same person and links to that page.
Google's helpful content guidance asks whether pages carry a byline where one is expected and whether bylines lead to more information about the author. That is the whole job. The markup describes what readers can already see. For the bigger picture on trust signals, read what E-E-A-T is.
Start with a visible byline
Put "By Jane Doe" under the title and link the name to her author page. Readers see it, crawlers see it, and it gives your markup something to match.
A few habits make bylines readable by machines as well as people:
- Render the byline in the server HTML, not with a script after load. Many crawlers never run your JavaScript.
- Use the person's real name. "Admin", "Editor" and "Team" tell nobody who wrote the piece.
- Wrap it in an element with a clear hook, such as
rel="author"on the link or anauthorclass. - Show every author who worked on the piece, in the same order as your markup.
Google also warns against invented authors. Its guidance calls made-up names, AI-generated headshots and false credentials a form of deception that makes a page untrustworthy. If a post was written by your marketing team, credit the company instead of inventing a persona.
Build an author page worth linking to
An author page is the URL your byline and author.url both point to. It should load, stay at one address and say who the person is in enough detail to matter. A name, a photo and one sentence is a stub.
What I put on every author page:
- Their role and what they actually do at the company.
- Relevant experience, with specifics like years, projects or credentials.
- The topics they write about.
- Links to their LinkedIn, GitHub or other profiles they maintain.
- A list of their articles.
Mark the page up as a ProfilePage with the person as mainEntity. Google's ProfilePage guide lists an author page on a news site and an About Me page on a blog among its intended uses. Give the Person an @id so your articles can reference the same node.
Author schema in Article markup: url and sameAs
Google's author markup best practices ask for the type and a url or sameAs on every author, and say Google can use either to tell authors apart. Use both. They do different jobs.
| Property | Points to | Use it for |
|---|---|---|
url |
The author page on your own site | One stable page that identifies the author |
sameAs |
Profiles on other sites | Tying the author to LinkedIn, GitHub, ORCID or Wikidata |
Google's description allows a social profile in url. I avoid that. Your own author page is the one address you control, and a profile URL there leaves the byline pointing somewhere the markup does not. Profiles belong in sameAs, with the same rules as for brands in the sameAs schema guide.
Here is the author part of a BlogPosting with the Person node defined once and referenced by @id.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BlogPosting",
"headline": "How we cut our page weight in half",
"datePublished": "2026-10-10T08:00:00+01:00",
"author": { "@id": "https://example.com/authors/jane-doe#person" },
"publisher": { "@id": "https://example.com/#organization" }
},
{
"@type": "Person",
"@id": "https://example.com/authors/jane-doe#person",
"name": "Jane Doe",
"jobTitle": "Head of Engineering",
"url": "https://example.com/authors/jane-doe",
"sameAs": [
"https://www.linkedin.com/in/janedoe",
"https://github.com/janedoe"
]
}
]
}On the author page, the ProfilePage uses the same @id as its mainEntity. Headline, images, dates and multiple authors are covered in the Article schema guide, so I will not repeat them here.
Where author markup goes wrong
Most problems come from the byline and the markup being filled from different places.
The byline and markup disagree. The page says "Jane Doe" and the JSON-LD says "Example Co" because an SEO plugin defaults to the site name. Generate both from the same author record in your CMS.
The name field holds more than a name. "Jane Doe, Head of Engineering" or "By Jane Doe" in author.name breaks the match. The title goes in jobTitle.
The author page is broken. Author archives get deleted in redesigns or set to noindex by a theme. If author.url returns a 404, the markup points at nothing.
No publisher. An article without a publisher loses the link to the company behind it. Reference your site's Organization node by @id, as in the example.
Trust pages count too. Google's quality rater guidelines treat clear information about who runs a site and how to reach them as basic, so link About and Contact from every page.
Check your bylines and author pages
The Author & E-E-A-T Checker reads one article URL and looks for a visible byline, using rel="author", itemprop="author", author or byline classes, or a "By Name" line near the top. It reads the Article author markup and flags missing names, names that contain titles, handles or "By", generic names like "admin", authors with no url or sameAs, and a byline that names a different person than the markup.
It then follows the author link and opens that page. It reports when the page fails to load, has under about 50 words about the person, or lacks Person or ProfilePage markup. It also checks for a publisher and for About and Contact links.
A run costs 8 credits. It reads the HTML your server returns and does not run JavaScript. It checks one article, not your whole site, and it does not judge whether the author is actually an expert.