/ โ† Agent Readiness Fixes / Author Signals
In this guide
  1. Five questions a machine asks about your page
  2. Where each signal has to appear
  3. A byline a crawler can actually read
  4. Author pages that confirm identity
  5. Joining author, article and publisher in JSON-LD
  6. Making the publisher identifiable
  7. Sources a machine can follow
  8. The fix, step by step
  9. Awkward cases
  10. Questions and answers

Five questions a machine asks about your page

Answer engines have to decide which pages to draw on and which to credit. Their providers say little in public about exactly how they weigh sources, so nobody can promise that an author box earns a citation. What is certain is that a system cannot use information it cannot find. When a crawler has your page, it is effectively trying to answer five questions from the markup alone:

  1. Who wrote this? A named person, in text, near the headline.
  2. Who is that person? A page at a stable address that describes them, and links to places elsewhere that confirm the same identity.
  3. Who published it? An organisation or individual with a name, an about page and contact details.
  4. When? A published date and, where it changed materially, an updated date, both machine-readable.
  5. Based on what? Links to the sources behind the claims, so the statements can be traced.

This guide is about the machine side of those answers: where they sit in the HTML and structured data, and how to keep them consistent. The human side, such as reviews, guarantees and the wording of bios, is covered by the E-E-A-T trust signals guide and the author bios guide.

Where each signal has to appear

Each fact should exist in two forms: as visible text on the page and as structured data that states the same thing. When both agree, a crawler has nothing to guess. When they disagree, or when one is missing, the machine has to choose, and it may choose badly.

SignalVisible HTMLStructured dataCommon failure
Author nameByline near the headline, linked to the author pageauthor on the Article, pointing to a PersonByline injected by script, or JSON-LD says a different name
Author identityAuthor page with role, background and topics coveredPerson with url, jobTitle, sameAsNo author page, or a page with only a list of posts
PublisherLogo, name, about and contact links in header or footerpublisher pointing to an OrganizationPublisher left blank because site settings were never filled in
DatesPublished and updated dates in a <time> elementdatePublished, dateModifiedModified date changes on every deploy without real edits
SourcesLinks from the claim to the primary sourcecitation, optionalSources listed as plain text with no links
โš ๏ธ Only mark up what the page shows. Structured data that names an author, credentials or reviews not visible on the page is misleading, and Google's structured data guidelines treat markup that does not match visible content as a policy problem.

A byline a crawler can actually read

The byline is the first place a crawler looks, and the most common place it goes missing. Designers sometimes remove it for a cleaner look; some themes render it from a script after the page loads; others print only a first name or a team name. Put the full name in the server-rendered HTML, next to the headline, and link it to the author page.

<article>
  <h1>How to size a heat pump for a three-bedroom house</h1>
  <p class="byline">
    By <a href="/team/morag-ellison/" rel="author">Morag Ellison</a>,
    heating engineer at Northfield Heating
    &middot; Published <time datetime="2026-04-02">2 April 2026</time>
    &middot; Updated <time datetime="2026-08-19">19 August 2026</time>
  </p>
  ...
</article>

A few details make this easier for machines:

Test it by fetching the page with curl and searching for the author's name. If it is not in the response, it is not in the byline a non-rendering crawler receives.

Author pages that confirm identity

A byline names someone; an author page tells the machine who they are. Each writer needs one page at an address that will not change, even if the site is redesigned. On that page:

The outward links matter for identity. When the author page and a profile on another site both describe the same person and point at each other, a system has independent confirmation that the name refers to someone real. Only link profiles the person controls or that genuinely describe them, and remove links when someone leaves.

๐Ÿ’ก Give each author page a fixed identifier for use in structured data, such as https://www.example.co.uk/team/morag-ellison/#person. Every article by that writer can then refer to the same identifier instead of repeating the details.

Joining author, article and publisher in JSON-LD

Structured data turns the visible facts into statements a machine can parse without guessing. The pattern that works best is a single graph in which each entity is described once, given an @id, and referred to by that identifier wherever it is needed. The article points to the author and the publisher; the author page describes the person fully.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://www.example.co.uk/guides/heat-pump-sizing/#article",
      "headline": "How to size a heat pump for a three-bedroom house",
      "datePublished": "2026-04-02T09:00:00+01:00",
      "dateModified": "2026-08-19T14:30:00+01:00",
      "mainEntityOfPage": "https://www.example.co.uk/guides/heat-pump-sizing/",
      "author": { "@id": "https://www.example.co.uk/team/morag-ellison/#person" },
      "publisher": { "@id": "https://www.example.co.uk/#organization" }
    },
    {
      "@type": "Person",
      "@id": "https://www.example.co.uk/team/morag-ellison/#person",
      "name": "Morag Ellison",
      "url": "https://www.example.co.uk/team/morag-ellison/",
      "jobTitle": "Heating engineer",
      "worksFor": { "@id": "https://www.example.co.uk/#organization" },
      "sameAs": [
        "https://directory.example.org/members/morag-ellison"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://www.example.co.uk/#organization",
      "name": "Northfield Heating Ltd",
      "url": "https://www.example.co.uk/",
      "logo": "https://www.example.co.uk/images/logo-512.png"
    }
  ]
}
</script>

Points that commonly go wrong:

The JSON-LD coverage guide explains how to extend the same graph to other page types.

Making the publisher identifiable

Even a well-marked author is only half the answer. A machine also wants to know which organisation stands behind the site, and whether it can be contacted. For a small business this does not require much, but it has to be findable from every page in plain HTML links.

Describe the organisation once in structured data, on the home page or about page, with its name, address, logo and profiles, and point every article's publisher at it by @id. The name in the structured data should match the name in the footer and on the about page exactly, including "Ltd" or its absence.

Sources a machine can follow

Claims that link to where they came from are easier to check, for people and for systems that compare sources. A bibliography in plain text at the bottom of a page is better than nothing, but a crawler cannot follow it.

If you want to declare sources in structured data, schema.org's citation property accepts a URL or a CreativeWork. It is optional, and the visible links matter more.

The fix, step by step

Step 1

List who actually writes each content type

Go through your content types, such as blog posts, guides, news, product pages and service pages, and record who writes each one. Advice and opinion pieces should carry a named person. Product and service pages written collectively can carry the organisation. Note posts published under admin, editor or a company account, and anything with a byline that no longer matches the person who wrote it, so they can be reassigned in the next steps.

Step 2

Print the byline and dates in the server HTML

Edit the article template so the full author name, linked to the author page, and the published and updated dates in <time datetime> elements appear inside the <article> near the headline. Remove any script that builds the byline in the browser. Fetch a post with curl and search the output for the author name and the date to confirm a crawler that does not run scripts receives them.

Step 3

Publish an author page at a stable address

Create one page per writer at an address that will survive redesigns, such as /team/firstname-lastname/. Give it the exact byline name as its heading, the person's role, a short background in plain text, the topics they cover, links to profiles elsewhere that describe the same person, and a linked list of their articles. Point every byline for that writer at this page.

Step 4

Connect author, page and publisher in JSON-LD

Add or correct the structured data so each article has an author that refers to the writer's Person by @id and a publisher that refers to the organisation by @id. Describe the person fully on their author page, with name, url, jobTitle and sameAs. Make the dates match the visible ones and output the markup from the server, not from a tag manager.

Step 5

Make the publisher identifiable from every page

Check that the about page, contact page and, for advice content, an editorial policy exist and are linked from the footer of every page as ordinary HTML links. Use the same organisation name in the footer, the about page and the Organization markup. Fill in the address, logo and official profiles once in the organisation markup and refer to it from every article instead of repeating it.

Step 6

Link claims to their sources

Work through your most visited advice pages and find every statistic, rule, price or quoted statement. Link each one at the point where it appears to the primary source, using anchor text that names the source. Add the date the figure applies to. Replace plain-text reference lists with linked ones, and remove or update any claim you cannot source, because an answer engine may quote it without your context.

Step 7

Check the result as a crawler would

Fetch two or three articles and an author page with curl using an AI crawler user agent and confirm the byline, dates and footer links are present. Paste the page into the Schema Markup Validator and check that the article, person and organisation appear as connected entities with no errors. Then run the Agent Readiness Audit again and confirm the author and trust findings have cleared.

Awkward cases

Ghostwritten and edited content

If an agency drafts articles and your staff expert reviews and approves them, name the person who takes responsibility for the content. A separate "Reviewed by" line with its own link, and a matching reviewedBy property on the WebPage in structured data, is an honest way to show both roles.

Content produced with AI help

Google's guidance on helpful content suggests explaining how content was produced where readers would reasonably want to know, including the use of automation. A short note on the editorial policy page, plus a named human who checked the piece, is clearer than an anonymous byline.

Writers who leave

Keep the author page and their articles attributed to them; the work was still theirs. Update the page to say they previously wrote for you, and remove the worksFor link and any contact details that no longer apply.

Pen names

A consistent pen name with an author page is better than no name, but do not invent credentials, photos or external profiles for it. A fictional identity with made-up qualifications is exactly the kind of signal that erodes trust once discovered.

Several authors on one piece

List each name in the byline and give author an array of Person references in the same order.

Questions and answers

1. Do AI answer engines really look at who wrote a page?

The providers publish very little about how they choose and rank sources, so no one outside those companies can say exactly how much authorship counts. What is clear is that a system cannot use information it cannot find. A named author in the HTML, an author page and matching structured data make the answer to who wrote this explicit, instead of leaving it to guesswork. That costs little, helps human readers too, and removes one reason for a page to be passed over.

2. How is this different from E-E-A-T trust signals?

E-E-A-T guidance is mainly about what a human reader or a Google quality rater sees: the substance of a bio, reviews, guarantees, secure checkout and a clear refund policy. This guide covers the machine-readable layer underneath: whether the author name is in the server HTML, whether the author page exists at a stable address, and whether structured data connects the article, the person and the publisher. You need both, but they are fixed in different places.

3. My byline shows in the browser, so why does the audit say it is missing?

Probably because the byline is added by JavaScript after the page loads. Your browser runs the script and shows the name, but many AI crawlers read only the HTML the server sends and never run it. Fetch the page with curl and search for the author name to check. If it is missing, change the template so the byline is printed on the server, which also makes it available to any tool that reads the raw page.

4. Should the author in JSON-LD be a Person or an Organization?

Use a Person whenever an identifiable individual wrote or is responsible for the content, which should be the case for advice, reviews, opinion and guides. Use an Organization only where the content genuinely has no individual author, such as a product description or a company announcement. Naming the company as author of an article a person wrote hides the very information a machine is looking for. Put the company in the publisher property instead.

5. What should sameAs link to for an author?

Link to pages elsewhere on the web that describe the same person and that you would be comfortable having a reader check: a listing on a professional body's register, a university staff page, a conference speaker page or a professional networking profile. Avoid linking to pages that merely mention the name, or to a profile belonging to someone else with the same name. Keep the list short and accurate, and remove links when a person leaves or closes an account.

6. Do I need author pages if I am the only writer?

One author page is still worth having, and on a single-author site your about page can do the job if it is written about you. Give it your full name as it appears in bylines, your background and the subjects you write about, then link every byline to it. In structured data, describe yourself once as a Person with a fixed identifier on that page and refer to it from every article, so all of your work points back to the same identity.

7. Which dates should I show, and should I update dateModified often?

Show the date the piece was first published and, when you make a real change such as updated figures, new sections or corrected advice, the date of that update. Do not change the modified date for spelling fixes or template deploys, and never set it automatically on every build, because a date that always says today tells a machine nothing. Keep the visible dates and the datePublished and dateModified values in structured data identical.

8. Is rel=author still worth adding to links?

It is a standard HTML link type that says the link points to information about the author, so it is valid and harmless. Google stopped using it for its old authorship feature many years ago, and there is no public statement that current AI crawlers rely on it. Treat it as a small, correct label on the byline link. The things that matter more are the visible name, the author page it leads to and the structured data that repeats the same facts.

See whether crawlers can tell who wrote your pages

The Agent Readiness Audit requests your page with real AI crawler user agents, checks robots.txt and llms.txt, reviews JSON-LD coverage and semantic HTML, tests how much depends on JavaScript and measures how easily the content can be extracted.

Open Agent Readiness Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Agent Readiness Fixes  ·  Missing or Incomplete JSON-LD  ·  Writing Author Bios  ·  E-E-A-T Trust Signals  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.