Skip to content

answers QAPage: the Question node had no author and no date - #3318

Merged
Flotapponnier merged 1 commit into
devfrom
fix/qapage-recommended-fields
Oct 28, 2026
Merged

Flotapponnier merged 1 commit into
devfrom
fix/qapage-recommended-fields

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

Search Console, Q&A report, four "Improve item appearance" warnings on /answers/which-hyperliquid-frontend-has-the-most-builder-revenue, first detected 2026-10-21:

missing field where
author mainEntity
datePublished mainEntity
upvoteCount mainEntity.acceptedAnswer
datePublished mainEntity.acceptedAnswer

All four sit on the same node. The QAPage wrapper already carried author, datePublished and dateModified; the Question entity inside it, which is what Google reads for the Q&A rich result, carried none of them. The accepted answer had an author and nothing else.

Google reports one affected item because one answers URL has been crawled as a QAPage so far. Every page in the cluster is built by this same component, so the fix covers all of them.

What the values are, and why

upvoteCount: 0, permanently. Nothing on this site votes. Google's guidance is to send 0 rather than omit the field, and any other number would be an invented engagement figure sitting in structured data. The comment in the code says so, so nobody later "improves" it into something non-zero.

Dates keep the meaning they already had on the page node. datePublished is getBenchCreatedAt(bench.slug), when the question first had a page. dateModified is bench.lastRunAt, gated on citableAsOf exactly as the wrapper gates it, because the answer text is derived from the board and changes when the numbers do.

suggestedAnswer gets the same pair. It already carried a dateModified with no datePublished to anchor it, which is the shape that produced two of these four warnings on the accepted answer.

Gates: tsc --noEmit clean, bun test src/ 731 pass 0 fail, pnpm validate 257 specs valid, eslint clean on the changed file.

After the staging deploy I will parse the JSON-LD off the live page to confirm the four fields are present before anyone clicks VALIDATE FIX in Search Console, since validation failing once puts the issue back in the queue for another month.

One thing I did not change

QAPage is Google's type for pages where users submit answers to a question. These pages have one question and one site-written answer, which is closer to what FAQPage describes. The current type was a deliberate choice (there is a comment explaining the upgrade from Article), the items validate today, and switching types is a different decision from filling in four recommended fields, so I left it. Worth revisiting on its own if the Q&A results ever stop appearing.

Search Console flagged four recommended fields on
/answers/which-hyperliquid-frontend-has-the-most-builder-revenue, and all
four sit on the same node: author and datePublished on mainEntity, plus
upvoteCount and datePublished on mainEntity.acceptedAnswer.

The QAPage wrapper around the question already carried an author, a
datePublished and a dateModified. The Question entity inside it, which is
what Google reads for the Q&A result, carried none of them. One item is
reported only because one answers URL has been crawled as a QAPage so far;
every page in the cluster is built by this same code.

upvoteCount is 0 and is meant to stay 0. Nothing on this site votes, and
Google's guidance is to send 0 rather than omit the field. Any other number
would be an invented engagement figure in structured data.

The dates keep their meaning: datePublished is when the question first had
a page, dateModified is when the numbers behind the answer last refreshed.
suggestedAnswer gets the same pair, since it already carried a dateModified
with no datePublished to anchor it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Flotapponnier
Flotapponnier merged commit 9c2cbd0 into dev Oct 28, 2026
2 checks passed
Flotapponnier added a commit that referenced this pull request Oct 28, 2026
…3319)

Search Console flagged four recommended fields on
/answers/which-hyperliquid-frontend-has-the-most-builder-revenue, and all
four sit on the same node: author and datePublished on mainEntity, plus
upvoteCount and datePublished on mainEntity.acceptedAnswer.

The QAPage wrapper around the question already carried an author, a
datePublished and a dateModified. The Question entity inside it, which is
what Google reads for the Q&A result, carried none of them. One item is
reported only because one answers URL has been crawled as a QAPage so far;
every page in the cluster is built by this same code.

upvoteCount is 0 and is meant to stay 0. Nothing on this site votes, and
Google's guidance is to send 0 rather than omit the field. Any other number
would be an invented engagement figure in structured data.

The dates keep their meaning: datePublished is when the question first had
a page, dateModified is when the numbers behind the answer last refreshed.
suggestedAnswer gets the same pair, since it already carried a dateModified
with no datePublished to anchor it.


(cherry picked from commit 9c2cbd0)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant