Repository navigation
answers QAPage: the Question node had no author and no date (#3318 to main) - #3319
Merged
Merged
Conversation
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> (cherry picked from commit 9c2cbd0)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cherry-pick of #3318 (
dev9c2cbd0) ontomain, so the structured-data fix reaches the pages Search Console is actually reading.19 insertions, one file, zero deletions.
src/app/answers/[slug]/page.tsxwas identical betweenmainanddevapart from this change, so the pick applied cleanly and nothingmain-only moved.What it fixes
Search Console flagged four recommended fields on an
/answers/<slug>page, all on the same node:authoranddatePublishedonmainEntity, andupvoteCountanddatePublishedonmainEntity.acceptedAnswer. The QAPage wrapper already carried an author and dates; the Question entity Google actually reads for the Q&A result carried none. One URL is reported because one has been crawled as a QAPage so far, and every page in the cluster is built by this same code.upvoteCountis 0 and stays 0: nothing on this site votes, and Google asks for 0 rather than an omitted field. Any other number would be invented engagement in structured data.Checks on this base
pnpm validate254 specs validpnpm exec tsc --noEmitcleanpnpm exec eslintclean on the touched filebun test785 pass, 1 fail, and that failure is pre-existing onmain, not caused by this pick. See below.main's CI is already red, since 2026-10-27
src/lib/spec-provider-set.test.tsfails onorigin/mainwith nothing applied: it recordsf355324b6640e7e4whilemain's provider set now hashes tob767efc1bf40bf99. The same test passes ondev, which records its own hash for its own spec set.The guard is doing its job. Two merges moved a provider set on
mainafter the hash was last updated in #3296, and neither touched the hash or the four cache keys:Both changed only
benchmarks/*.yml.mainstill carriesbench-unfiltered-v102,all-benchmarks-v95,bench-filters-v43andproviders-v21.In practice the caches have since turned over on their own: production serves 106 providers on hyperliquid-frontends including Perpex. So the exposure window has closed and bumping the keys now would buy a cold cache and nothing else. The remaining problem is only that
main's CI is red, which greys out every PR opened against it, including this one.The fix is one line, updating the recorded hash on
mainto its current set, and it is deliberately not in this PR: this one is a faithful port of someone else's change, and that one is a decision about cache keys that deserves its own commit message. Say the word and it follows immediately.