Skip to content

seo batch B: answers OG + compare visible FAQ + bench grounding-first - #1486

Merged
Flotapponnier merged 1 commit into
devfrom
feat/seo-hygiene-p1-batch-b
Jul 26, 2026
Merged

seo batch B: answers OG + compare visible FAQ + bench grounding-first#1486
Flotapponnier merged 1 commit into
devfrom
feat/seo-hygiene-p1-batch-b

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

3 AI-citation surface fixes flagged by the GEO audit — see commit.

…ding-first on bench pages

Three AI-citation surface fixes flagged by the GEO audit:

- answers/[slug]: og:image + twitter:image swapped from the site-wide
  /opengraph-image to the referenced bench's card (/api/og/<slug>).
  Perplexity / ChatGPT / Claude Deep Research scrape og:image alongside
  the answer text; a generic homepage tile costs a real cite.
- compare/[slug]: added a visible <details>-based FAQ section rendering
  the same faqEntries the FAQPage JSON-LD emits. Google FAQ policy
  requires visible parity or it silently drops the rich result — the
  compare pages had jsonld without any visible questions.
- benchmarks/[slug]: promoted the current-leader headline sentence to
  the first visible paragraph under H1, blended with the subtitle. AI
  answer engines quote the first prose sentence verbatim; a concrete
  provider + number + unit citable claim beats the methodology-flavoured
  subtitle for extraction.
@Flotapponnier
Flotapponnier merged commit 2616705 into dev Jul 26, 2026
1 check failed
Flotapponnier added a commit that referenced this pull request Jul 26, 2026
* jsonld batch A: inline remaining cross-doc Dataset refs + FAQ tweaks (#1485)

Extends the isPartOf/isBasedOn fixes (PRs 1429, 1442, 1443, 1450, 1451)
to every remaining page that emitted @id-only or bare-URL refs Google
validates as standalone incomplete Datasets:

- compare/[slug]:
  - isBasedOn: [urls] → [Dataset nodes with name+description+creator+
    license+isAccessibleForFree] per shared bench
  - variableMeasured.PropertyValue gains numeric `value` when the
    winner has a positive p50 (Google Dataset Search extracts value)
  - FAQPage node gets an @id so it stops floating unmoored
- alternatives/[slug]: isBasedOn: url → inline Dataset
- answers/[slug]: isBasedOn: url → inline Dataset; Answer nodes
  (acceptedAnswer + suggestedAnswer) gain a `name` field
- products/[slug]: subjectOf Datasets gain @id + identifier +
  variableMeasured + datePublished so they align with the bench-page
  Dataset shape and stop reading as 'Unnamed item' in RRT

Co-authored-by: Florent Tapponnier <contact@mobula.io>

* seo batch B: per-bench OG on answers + visible FAQ on compare + grounding-first on bench pages (#1486)

Three AI-citation surface fixes flagged by the GEO audit:

- answers/[slug]: og:image + twitter:image swapped from the site-wide
  /opengraph-image to the referenced bench's card (/api/og/<slug>).
  Perplexity / ChatGPT / Claude Deep Research scrape og:image alongside
  the answer text; a generic homepage tile costs a real cite.
- compare/[slug]: added a visible <details>-based FAQ section rendering
  the same faqEntries the FAQPage JSON-LD emits. Google FAQ policy
  requires visible parity or it silently drops the rich result — the
  compare pages had jsonld without any visible questions.
- benchmarks/[slug]: promoted the current-leader headline sentence to
  the first visible paragraph under H1, blended with the subtitle. AI
  answer engines quote the first prose sentence verbatim; a concrete
  provider + number + unit citable claim beats the methodology-flavoured
  subtitle for extraction.

Co-authored-by: Florent Tapponnier <contact@mobula.io>

* citation: change citation_author from Org to Person name (#1487)

Highwire Press citation_author expects a person name; Google Scholar
routinely rejects records where the author field reads as a publisher
organisation. Match the Person already anchored in the JSON-LD Dataset
creator + StatisticalReport contributor so the two signals agree.

Notes on other audit items skipped:
- SITE.github (ChainBench vs Flotapponnier): both URLs return 200,
  ChainBench is the real org (we PR to it all day). Agent was wrong.
- JSON-LD body→head migration: Google + Bing + major AI crawlers all
  scan the full document for ld+json. Refactor cost > payoff.

Co-authored-by: Florent Tapponnier <contact@mobula.io>

---------

Co-authored-by: Florent Tapponnier <contact@mobula.io>
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